|
16 | 16 | "name": "stdout", |
17 | 17 | "output_type": "stream", |
18 | 18 | "text": [ |
19 | | - "0.4.1\n" |
| 19 | + "1.2.0\n" |
20 | 20 | ] |
21 | 21 | } |
22 | 22 | ], |
|
78 | 78 | { |
79 | 79 | "data": { |
80 | 80 | "text/plain": [ |
81 | | - "tensor([[ 0.1351, -0.0034, 0.0948, -0.1652, 0.1512, 0.0887, -0.0032, 0.0692,\n", |
82 | | - " 0.0942, 0.0956],\n", |
83 | | - " [ 0.1624, -0.0383, 0.1557, -0.0735, 0.1931, 0.1699, -0.0067, 0.0353,\n", |
84 | | - " 0.1712, 0.1568]], grad_fn=<ThAddmmBackward>)" |
| 81 | + "tensor([[ 0.0234, -0.2646, -0.1168, -0.2127, 0.0884, -0.0456, 0.0811, 0.0297,\n", |
| 82 | + " 0.2032, 0.1364],\n", |
| 83 | + " [ 0.1479, -0.1545, -0.0265, -0.2119, -0.0543, -0.0086, 0.0902, -0.1017,\n", |
| 84 | + " 0.1504, 0.1144]], grad_fn=<AddmmBackward>)" |
85 | 85 | ] |
86 | 86 | }, |
87 | 87 | "execution_count": 3, |
|
107 | 107 | { |
108 | 108 | "cell_type": "code", |
109 | 109 | "execution_count": 4, |
110 | | - "metadata": {}, |
| 110 | + "metadata": { |
| 111 | + "collapsed": true |
| 112 | + }, |
111 | 113 | "outputs": [], |
112 | 114 | "source": [ |
113 | 115 | "class MySequential(nn.Module):\n", |
|
146 | 148 | { |
147 | 149 | "data": { |
148 | 150 | "text/plain": [ |
149 | | - "tensor([[ 0.1883, -0.1269, -0.1886, 0.0638, -0.1004, -0.0600, 0.0760, -0.1788,\n", |
150 | | - " -0.1844, -0.2131],\n", |
151 | | - " [ 0.1319, -0.0490, -0.1365, 0.0133, -0.0483, -0.0861, 0.0369, -0.0830,\n", |
152 | | - " -0.0462, -0.2066]], grad_fn=<ThAddmmBackward>)" |
| 151 | + "tensor([[ 0.1273, 0.1642, -0.1060, 0.1401, 0.0609, -0.0199, -0.0140, -0.0588,\n", |
| 152 | + " 0.1765, -0.1296],\n", |
| 153 | + " [ 0.0267, 0.1670, -0.0626, 0.0744, 0.0574, 0.0413, 0.1313, -0.1479,\n", |
| 154 | + " 0.0932, -0.0615]], grad_fn=<AddmmBackward>)" |
153 | 155 | ] |
154 | 156 | }, |
155 | 157 | "execution_count": 5, |
|
199 | 201 | "print(net)" |
200 | 202 | ] |
201 | 203 | }, |
| 204 | + { |
| 205 | + "cell_type": "code", |
| 206 | + "execution_count": 7, |
| 207 | + "metadata": {}, |
| 208 | + "outputs": [], |
| 209 | + "source": [ |
| 210 | + "# net(torch.zeros(1, 784)) # 会报NotImplementedError" |
| 211 | + ] |
| 212 | + }, |
| 213 | + { |
| 214 | + "cell_type": "code", |
| 215 | + "execution_count": 8, |
| 216 | + "metadata": { |
| 217 | + "collapsed": true |
| 218 | + }, |
| 219 | + "outputs": [], |
| 220 | + "source": [ |
| 221 | + "class MyModule(nn.Module):\n", |
| 222 | + " def __init__(self):\n", |
| 223 | + " super(MyModule, self).__init__()\n", |
| 224 | + " self.linears = nn.ModuleList([nn.Linear(10, 10) for i in range(10)])\n", |
| 225 | + "\n", |
| 226 | + " def forward(self, x):\n", |
| 227 | + " # ModuleList can act as an iterable, or be indexed using ints\n", |
| 228 | + " for i, l in enumerate(self.linears):\n", |
| 229 | + " x = self.linears[i // 2](x) + l(x)\n", |
| 230 | + " return x" |
| 231 | + ] |
| 232 | + }, |
| 233 | + { |
| 234 | + "cell_type": "code", |
| 235 | + "execution_count": 9, |
| 236 | + "metadata": {}, |
| 237 | + "outputs": [ |
| 238 | + { |
| 239 | + "name": "stdout", |
| 240 | + "output_type": "stream", |
| 241 | + "text": [ |
| 242 | + "net1:\n", |
| 243 | + "torch.Size([10, 10])\n", |
| 244 | + "torch.Size([10])\n", |
| 245 | + "net2:\n" |
| 246 | + ] |
| 247 | + } |
| 248 | + ], |
| 249 | + "source": [ |
| 250 | + "class Module_ModuleList(nn.Module):\n", |
| 251 | + " def __init__(self):\n", |
| 252 | + " super(Module_ModuleList, self).__init__()\n", |
| 253 | + " self.linears = nn.ModuleList([nn.Linear(10, 10)])\n", |
| 254 | + " \n", |
| 255 | + "class Module_List(nn.Module):\n", |
| 256 | + " def __init__(self):\n", |
| 257 | + " super(Module_List, self).__init__()\n", |
| 258 | + " self.linears = [nn.Linear(10, 10)]\n", |
| 259 | + "\n", |
| 260 | + "net1 = Module_ModuleList()\n", |
| 261 | + "net2 = Module_List()\n", |
| 262 | + "\n", |
| 263 | + "print(\"net1:\")\n", |
| 264 | + "for p in net1.parameters():\n", |
| 265 | + " print(p.size())\n", |
| 266 | + "\n", |
| 267 | + "print(\"net2:\")\n", |
| 268 | + "for p in net2.parameters():\n", |
| 269 | + " print(p)" |
| 270 | + ] |
| 271 | + }, |
202 | 272 | { |
203 | 273 | "cell_type": "markdown", |
204 | 274 | "metadata": {}, |
|
208 | 278 | }, |
209 | 279 | { |
210 | 280 | "cell_type": "code", |
211 | | - "execution_count": 7, |
| 281 | + "execution_count": 10, |
212 | 282 | "metadata": {}, |
213 | 283 | "outputs": [ |
214 | 284 | { |
|
236 | 306 | "print(net)" |
237 | 307 | ] |
238 | 308 | }, |
| 309 | + { |
| 310 | + "cell_type": "code", |
| 311 | + "execution_count": 11, |
| 312 | + "metadata": {}, |
| 313 | + "outputs": [], |
| 314 | + "source": [ |
| 315 | + "# net(torch.zeros(1, 784)) # 会报NotImplementedError" |
| 316 | + ] |
| 317 | + }, |
239 | 318 | { |
240 | 319 | "cell_type": "markdown", |
241 | 320 | "metadata": {}, |
|
245 | 324 | }, |
246 | 325 | { |
247 | 326 | "cell_type": "code", |
248 | | - "execution_count": 8, |
| 327 | + "execution_count": 12, |
249 | 328 | "metadata": { |
250 | 329 | "collapsed": true |
251 | 330 | }, |
|
275 | 354 | }, |
276 | 355 | { |
277 | 356 | "cell_type": "code", |
278 | | - "execution_count": 9, |
| 357 | + "execution_count": 13, |
279 | 358 | "metadata": {}, |
280 | 359 | "outputs": [ |
281 | 360 | { |
|
290 | 369 | { |
291 | 370 | "data": { |
292 | 371 | "text/plain": [ |
293 | | - "tensor(12.1594, grad_fn=<SumBackward0>)" |
| 372 | + "tensor(0.8907, grad_fn=<SumBackward0>)" |
294 | 373 | ] |
295 | 374 | }, |
296 | | - "execution_count": 9, |
| 375 | + "execution_count": 13, |
297 | 376 | "metadata": {}, |
298 | 377 | "output_type": "execute_result" |
299 | 378 | } |
|
307 | 386 | }, |
308 | 387 | { |
309 | 388 | "cell_type": "code", |
310 | | - "execution_count": 10, |
| 389 | + "execution_count": 14, |
311 | 390 | "metadata": {}, |
312 | 391 | "outputs": [ |
313 | 392 | { |
|
331 | 410 | { |
332 | 411 | "data": { |
333 | 412 | "text/plain": [ |
334 | | - "tensor(0.1509, grad_fn=<SumBackward0>)" |
| 413 | + "tensor(-0.4605, grad_fn=<SumBackward0>)" |
335 | 414 | ] |
336 | 415 | }, |
337 | | - "execution_count": 10, |
| 416 | + "execution_count": 14, |
338 | 417 | "metadata": {}, |
339 | 418 | "output_type": "execute_result" |
340 | 419 | } |
|
367 | 446 | ], |
368 | 447 | "metadata": { |
369 | 448 | "kernelspec": { |
370 | | - "display_name": "Python [default]", |
| 449 | + "display_name": "Python 3", |
371 | 450 | "language": "python", |
372 | 451 | "name": "python3" |
373 | 452 | }, |
|
381 | 460 | "name": "python", |
382 | 461 | "nbconvert_exporter": "python", |
383 | 462 | "pygments_lexer": "ipython3", |
384 | | - "version": "3.6.3" |
| 463 | + "version": "3.6.2" |
385 | 464 | } |
386 | 465 | }, |
387 | 466 | "nbformat": 4, |
|
0 commit comments