-
Notifications
You must be signed in to change notification settings - Fork 6
/
model.clj
69 lines (51 loc) · 1.41 KB
/
model.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
(ns clj-djl.model
(:refer-clojure :exclude [load])
(:import [ai.djl Model]))
(defn instance [name]
(Model/newInstance name))
(def new-instance instance)
(defn set-block [model block]
(.setBlock model block)
model)
(defn set-datatype [model data-type]
(.setDataType model data-type)
model)
(defn get-block [model]
(.getBlock model))
(defn set-property [model k v]
(.setProperty model k v)
model)
(defn model [{:keys [name block data-type]}]
(cond-> (Model/newInstance name)
block (set-block block)
data-type (set-datatype data-type)))
(def new-model model)
(defn save [model dir name]
(if (string? dir)
(.save model (java.nio.file.Paths/get dir (into-array [""])) name)
(.save model dir name))
model)
(defn predictor [model translator]
(.newPredictor model translator))
(def new-predictor predictor)
(defn predict [predictor img]
(.predict predictor img))
(defn load
([model dir]
(let [model-dir (java.nio.file.Paths/get dir (into-array [""]))]
(.load model model-dir)
model))
([model dir name]
(if (string? dir)
(.load model (java.nio.file.Paths/get dir (into-array [""])) name)
(.load model dir name))
model))
(defn trainer [model config]
(.newTrainer model config))
(def new-trainer trainer)
(defn get-parameters [layer]
(.getParameters layer))
(defn get-ndmanager [model]
(.getNDManager model))
(defn clear [block]
(.clear block))