|
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