|
9 | 9 | }, |
10 | 10 | { |
11 | 11 | "cell_type": "code", |
12 | | - "execution_count": 9, |
| 12 | + "execution_count": 1, |
| 13 | + "metadata": {}, |
| 14 | + "outputs": [], |
| 15 | + "source": [ |
| 16 | + "interp.repositories() ++= Seq(\n", |
| 17 | + " coursier.MavenRepository(\"https://dl.bintray.com/scala-infer/maven\")\n", |
| 18 | + ")" |
| 19 | + ] |
| 20 | + }, |
| 21 | + { |
| 22 | + "cell_type": "code", |
| 23 | + "execution_count": 2, |
13 | 24 | "metadata": { |
14 | 25 | "collapsed": true |
15 | 26 | }, |
16 | 27 | "outputs": [ |
17 | | - { |
18 | | - "name": "stderr", |
19 | | - "output_type": "stream", |
20 | | - "text": [ |
21 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-platform-2019.0-1.4.3-sources.jar\n", |
22 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/mkl-platform/2019.0-1.4.3/mkl-platform-2019.0-1.4.3-sources.jar.sha1\n", |
23 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-platform-0.16-1.4.3-sources.jar\n", |
24 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/mkl-dnn-platform/0.16-1.4.3/mkl-dnn-platform-0.16-1.4.3-sources.jar.sha1\n", |
25 | | - "Downloading https://repo1.maven.org/maven2/org/nd4j/nd4j-backend-impls/1.0.0-beta3/nd4j-backend-impls-1.0.0-beta3-sources.jar\n", |
26 | | - "Downloading https://repo1.maven.org/maven2/org/nd4j/nd4j-backend-impls/1.0.0-beta3/nd4j-backend-impls-1.0.0-beta3-sources.jar.sha1\n", |
27 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/openblas-platform/0.3.3-1.4.3/openblas-platform-0.3.3-1.4.3-sources.jar\n", |
28 | | - "Downloading https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/openblas-platform/0.3.3-1.4.3/openblas-platform-0.3.3-1.4.3-sources.jar.sha1\n" |
29 | | - ] |
30 | | - }, |
31 | 28 | { |
32 | 29 | "data": { |
33 | 30 | "text/plain": [ |
34 | | - "\u001b[32mimport \u001b[39m\u001b[36m$ivy.$ \u001b[39m" |
| 31 | + "\u001b[32mimport \u001b[39m\u001b[36m$ivy.$ \u001b[39m" |
35 | 32 | ] |
36 | 33 | }, |
37 | | - "execution_count": 9, |
| 34 | + "execution_count": 2, |
38 | 35 | "metadata": {}, |
39 | 36 | "output_type": "execute_result" |
40 | 37 | } |
41 | 38 | ], |
42 | 39 | "source": [ |
43 | | - "interp.repositories() ++= Seq(\n", |
44 | | - " coursier.MavenRepository(\"https://dl.bintray.com/fvlankvelt/maven\")\n", |
45 | | - ")\n", |
46 | | - "import $ivy.`fvlankvelt::scala-infer:0.1`" |
| 40 | + "import $ivy.`scala-infer::scala-infer:0.3`" |
47 | 41 | ] |
48 | 42 | }, |
49 | 43 | { |
50 | 44 | "cell_type": "code", |
51 | | - "execution_count": 10, |
| 45 | + "execution_count": 4, |
52 | 46 | "metadata": {}, |
53 | 47 | "outputs": [ |
54 | 48 | { |
55 | 49 | "data": { |
56 | 50 | "text/plain": [ |
57 | 51 | "\u001b[32mimport \u001b[39m\u001b[36mscappla._\n", |
58 | 52 | "\u001b[39m\n", |
59 | | - "\u001b[32mimport \u001b[39m\u001b[36mscappla.Real._\n", |
60 | | - "\u001b[39m\n", |
61 | 53 | "\u001b[32mimport \u001b[39m\u001b[36mscappla.Functions._\n", |
62 | 54 | "\n", |
63 | 55 | "\u001b[39m\n", |
64 | | - "defined \u001b[32mclass\u001b[39m \u001b[36mParam\u001b[39m" |
| 56 | + "defined \u001b[32mclass\u001b[39m \u001b[36mVar\u001b[39m" |
65 | 57 | ] |
66 | 58 | }, |
67 | | - "execution_count": 10, |
| 59 | + "execution_count": 4, |
68 | 60 | "metadata": {}, |
69 | 61 | "output_type": "execute_result" |
70 | 62 | } |
71 | 63 | ], |
72 | 64 | "source": [ |
73 | 65 | "import scappla._\n", |
74 | | - "import scappla.Real._\n", |
75 | 66 | "import scappla.Functions._\n", |
76 | 67 | "\n", |
77 | | - "case class Param(name: String, v: Double = 0.0) extends Real {\n", |
| 68 | + "case class Var(name: String, v: Double = 0.0) extends AbstractReal {\n", |
78 | 69 | " \n", |
79 | 70 | " override def dv(d: Double): Unit = {\n", |
80 | 71 | " println(s\"grad $name = $d\")\n", |
|
94 | 85 | }, |
95 | 86 | { |
96 | 87 | "cell_type": "code", |
97 | | - "execution_count": 11, |
| 88 | + "execution_count": 5, |
98 | 89 | "metadata": {}, |
99 | 90 | "outputs": [ |
100 | 91 | { |
101 | 92 | "data": { |
102 | 93 | "text/plain": [ |
103 | | - "\u001b[36mx\u001b[39m: \u001b[32mParam\u001b[39m = \u001b[33mParam\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m)\n", |
104 | | - "\u001b[36my\u001b[39m: \u001b[32mParam\u001b[39m = \u001b[33mParam\u001b[39m(\u001b[32m\"y\"\u001b[39m, \u001b[32m3.0\u001b[39m)\n", |
105 | | - "\u001b[36mz\u001b[39m: \u001b[32mExpr\u001b[39m[\u001b[32mDouble\u001b[39m] = \u001b[33mDAdd\u001b[39m(\u001b[33mParam\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m), \u001b[33mParam\u001b[39m(\u001b[32m\"y\"\u001b[39m, \u001b[32m3.0\u001b[39m))\n", |
106 | | - "\u001b[36mres10_3\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m5.0\u001b[39m" |
| 94 | + "\u001b[36mx\u001b[39m: \u001b[32mVar\u001b[39m = \u001b[33mVar\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m)\n", |
| 95 | + "\u001b[36my\u001b[39m: \u001b[32mVar\u001b[39m = \u001b[33mVar\u001b[39m(\u001b[32m\"y\"\u001b[39m, \u001b[32m3.0\u001b[39m)\n", |
| 96 | + "\u001b[36mz\u001b[39m: \u001b[32mValue\u001b[39m[\u001b[32mDouble\u001b[39m, \u001b[32mUnit\u001b[39m] = \u001b[33mVPlus\u001b[39m(\u001b[33mVar\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m), \u001b[33mVar\u001b[39m(\u001b[32m\"y\"\u001b[39m, \u001b[32m3.0\u001b[39m))\n", |
| 97 | + "\u001b[36mres4_3\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m5.0\u001b[39m" |
107 | 98 | ] |
108 | 99 | }, |
109 | | - "execution_count": 11, |
| 100 | + "execution_count": 5, |
110 | 101 | "metadata": {}, |
111 | 102 | "output_type": "execute_result" |
112 | 103 | } |
113 | 104 | ], |
114 | 105 | "source": [ |
115 | | - "val x = Param(\"x\", 2.0)\n", |
116 | | - "val y = Param(\"y\", 3.0)\n", |
| 106 | + "val x = Var(\"x\", 2.0)\n", |
| 107 | + "val y = Var(\"y\", 3.0)\n", |
117 | 108 | "val z = x + y\n", |
118 | 109 | "z.v" |
119 | 110 | ] |
120 | 111 | }, |
121 | 112 | { |
122 | 113 | "cell_type": "code", |
123 | | - "execution_count": 12, |
| 114 | + "execution_count": 6, |
124 | 115 | "metadata": {}, |
125 | 116 | "outputs": [ |
126 | 117 | { |
|
147 | 138 | }, |
148 | 139 | { |
149 | 140 | "cell_type": "code", |
150 | | - "execution_count": 13, |
| 141 | + "execution_count": 7, |
151 | 142 | "metadata": {}, |
152 | 143 | "outputs": [ |
153 | 144 | { |
154 | 145 | "data": { |
155 | 146 | "text/plain": [ |
156 | | - "\u001b[36mw\u001b[39m: \u001b[32mReal\u001b[39m = Log(x)\n", |
157 | | - "\u001b[36mres12_1\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m0.6931471805599453\u001b[39m" |
| 147 | + "\u001b[36mw\u001b[39m: \u001b[32mValue\u001b[39m[\u001b[32mDouble\u001b[39m, \u001b[32mUnit\u001b[39m] = \u001b[33mVLog\u001b[39m(\u001b[33mVar\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m))\n", |
| 148 | + "\u001b[36mres6_1\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m0.6931471805599453\u001b[39m" |
158 | 149 | ] |
159 | 150 | }, |
160 | | - "execution_count": 13, |
| 151 | + "execution_count": 7, |
161 | 152 | "metadata": {}, |
162 | 153 | "output_type": "execute_result" |
163 | 154 | } |
|
176 | 167 | }, |
177 | 168 | { |
178 | 169 | "cell_type": "code", |
179 | | - "execution_count": 14, |
| 170 | + "execution_count": 8, |
180 | 171 | "metadata": {}, |
181 | 172 | "outputs": [ |
182 | 173 | { |
|
201 | 192 | }, |
202 | 193 | { |
203 | 194 | "cell_type": "code", |
204 | | - "execution_count": 15, |
| 195 | + "execution_count": 9, |
205 | 196 | "metadata": {}, |
206 | 197 | "outputs": [ |
207 | 198 | { |
208 | 199 | "data": { |
209 | 200 | "text/plain": [ |
210 | | - "\u001b[36mu\u001b[39m: \u001b[32mReal\u001b[39m = Log(Const(1.0000) / (Exp(-x) + Const(1.0000)))\n", |
211 | | - "\u001b[36mres14_1\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m-0.12692801104297263\u001b[39m" |
| 201 | + "\u001b[36mu\u001b[39m: \u001b[32mValue\u001b[39m[\u001b[32mDouble\u001b[39m, \u001b[32mUnit\u001b[39m] = \u001b[33mVLog\u001b[39m(\u001b[33mVSigmoid\u001b[39m(\u001b[33mVar\u001b[39m(\u001b[32m\"x\"\u001b[39m, \u001b[32m2.0\u001b[39m)))\n", |
| 202 | + "\u001b[36mres8_1\u001b[39m: \u001b[32mDouble\u001b[39m = \u001b[32m-0.12692801104297263\u001b[39m" |
212 | 203 | ] |
213 | 204 | }, |
214 | | - "execution_count": 15, |
| 205 | + "execution_count": 9, |
215 | 206 | "metadata": {}, |
216 | 207 | "output_type": "execute_result" |
217 | 208 | } |
|
223 | 214 | }, |
224 | 215 | { |
225 | 216 | "cell_type": "code", |
226 | | - "execution_count": 16, |
| 217 | + "execution_count": 10, |
227 | 218 | "metadata": {}, |
228 | 219 | "outputs": [ |
229 | 220 | { |
|
0 commit comments