├── README.md ├── mnist-autograd.ipynb ├── pretrained-resnet.ipynb └── wide-resnet-multiGPU.ipynb /README.md: -------------------------------------------------------------------------------- 1 | Torch tutorials for Deep Learning, Tools and Methods workshop (July 4-5-6, Idiap) 2 | ============ 3 | 4 | Worksop website: http://www.idiap.ch/workshop/dltm/ 5 | 6 | 1. MNIST-autograd example shows usage of autograd to train neural networks and visualize t-SNE embeddings of learned features 7 | 2. pretrained-resnet shows how to load pretrain ResNet networks, visualize it and propagate a single image to predict it's classes 8 | 3. wide-resnet-multiGPU shows how to train state-of-the-art networks on CIFAR using multiple GPUs on a single machine. 9 | 10 | # Credits 11 | 12 | Sergey Zagoruyko, Soumith Chintala, July 2016 13 | -------------------------------------------------------------------------------- /mnist-autograd.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# torch-autograd example\n", 8 | "\n", 9 | "In this example we show how to train a model without torch nn layers.\n", 10 | "We define an arbitrary function using `torch.` operators, which are automatically differentiated\n", 11 | "into a neural network model. This is useful in case of complicated models, or 2-nd order derivatives needed.\n", 12 | "\n", 13 | "In the end we will do t-SNE embedding of the learned features.\n", 14 | "\n", 15 | "The notebook can run without GPU support and needs the following rocks:\n", 16 | "\n", 17 | "```\n", 18 | "luarocks install autograd\n", 19 | "luarocks install mnist\n", 20 | "luarocks install manifold\n", 21 | "```" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 1, 27 | "metadata": { 28 | "collapsed": false 29 | }, 30 | "outputs": [], 31 | "source": [ 32 | "-- normally we would avoid having global variables\n", 33 | "-- but local variables live only in one cell\n", 34 | "\n", 35 | "grad = require 'autograd' -- automatic differentiation \n", 36 | "mnist = require 'mnist' -- MNIST dataset loader\n", 37 | "manifold = require 'manifold' -- for t-SNE embeddings\n", 38 | "optim = require 'optim'\n", 39 | "\n", 40 | "grad.optimize(true) -- will make autograd optimize graphs by default" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 2, 46 | "metadata": { 47 | "collapsed": true 48 | }, 49 | "outputs": [], 50 | "source": [ 51 | "-- define all parameters in this structure\n", 52 | "opt = {\n", 53 | " learningRate = 1e-1,\n", 54 | " learningRateDecayRatio = 0.1,\n", 55 | " momentum = 0.9,\n", 56 | " weightDecay = 0.0005,\n", 57 | " dampening = 0,\n", 58 | " type = 'float',\n", 59 | " batchSize = 128,\n", 60 | "}" 61 | ] 62 | }, 63 | { 64 | "cell_type": "markdown", 65 | "metadata": {}, 66 | "source": [ 67 | "## MLP model definition" 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "execution_count": 3, 73 | "metadata": { 74 | "collapsed": false 75 | }, 76 | "outputs": [], 77 | "source": [ 78 | "-- define a simple NN layer W * x + b\n", 79 | "function Linear(params, x)\n", 80 | " local W,b = params[1], params[2]\n", 81 | " local y = x * torch.transpose(W,1,2)\n", 82 | " return y + torch.expandAs(b:view(1,b:size(1)), y)\n", 83 | "end\n", 84 | "\n", 85 | "-- create parameter tensors and initialize with Xavier-init\n", 86 | "function LinearParams(ni,no)\n", 87 | " local stdv = 1/math.sqrt(no); \n", 88 | " return {torch.randn(no,ni):uniform(-stdv,stdv), torch.zeros(no)} \n", 89 | "end\n", 90 | "\n", 91 | "-- cast function that supports float, double and cuda\n", 92 | "cast = function(x) return grad.util.cast(x, opt.type); end\n", 93 | "\n", 94 | "-- create a structure that holds all parameters\n", 95 | "params = cast{\n", 96 | " LinearParams(28*28,512),\n", 97 | " LinearParams(512,64),\n", 98 | " LinearParams(64,10), \n", 99 | "}\n", 100 | "\n", 101 | "-- define forward propagation function, that takes\n", 102 | "-- * W - params structure like the one above\n", 103 | "-- * x - input\n", 104 | "-- It goes over params and computes a simple MLP with tanh\n", 105 | "-- activation functions\n", 106 | "f = function(W, x)\n", 107 | " local output = x:view(-1,28*28)\n", 108 | " for i,w in ipairs(W) do\n", 109 | " output = Linear(w, i == 1 and output or torch.tanh(output))\n", 110 | " end\n", 111 | " return output\n", 112 | "end\n", 113 | "\n", 114 | "-- define loss functions that in addition to params\n", 115 | "-- and input takes targets tensor\n", 116 | "h = function(W, x, y_hat)\n", 117 | " local y = f(W, x)\n", 118 | " return grad.loss.crossEntropy(y, y_hat) / y:size(1)\n", 119 | "end" 120 | ] 121 | }, 122 | { 123 | "cell_type": "markdown", 124 | "metadata": {}, 125 | "source": [ 126 | "## Prepare data and show a few examples" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 4, 132 | "metadata": { 133 | "collapsed": false 134 | }, 135 | "outputs": [ 136 | { 137 | "data": { 138 | "image/png": "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", 139 | "text/plain": [ 140 | "Console does not support images" 141 | ] 142 | }, 143 | "metadata": { 144 | "image/png": { 145 | "height": 180, 146 | "width": 180 147 | } 148 | }, 149 | "output_type": "display_data" 150 | } 151 | ], 152 | "source": [ 153 | "trainData = cast(mnist.traindataset())\n", 154 | "testData = cast(mnist.testdataset())\n", 155 | "\n", 156 | "-- simply normalize range to [0,1] range\n", 157 | "trainData.label:add(1); trainData.data:div(256)\n", 158 | "testData.label:add(1); testData.data:div(256)\n", 159 | "\n", 160 | "-- show a few examples from the training set\n", 161 | "itorch.image(trainData.data:narrow(1,1,36))" 162 | ] 163 | }, 164 | { 165 | "cell_type": "markdown", 166 | "metadata": {}, 167 | "source": [ 168 | "## Training\n", 169 | "\n", 170 | "Up to this point we haven't used any dedicated nn or autograd functions, only simple torch tensors operation.\n", 171 | "We will now use $f$ and $h$ functions that we defined and will call autograd to do automatic differentiation to define train function, and will train the MLP on MNIST dataset" 172 | ] 173 | }, 174 | { 175 | "cell_type": "code", 176 | "execution_count": 5, 177 | "metadata": { 178 | "collapsed": false, 179 | "scrolled": false 180 | }, 181 | "outputs": [], 182 | "source": [ 183 | "-- this function does all magic. It automatically differentiates $h$ and \n", 184 | "-- uses opt structure to construct structures that do SGD\n", 185 | "-- returned $g$ is a function that calls SGD on one minibatch\n", 186 | "-- that takes inputs $x$ and $y_hat$ targets \n", 187 | "local g = grad.optim.sgd(grad(h), grad.util.deepCopy(opt), params)\n", 188 | "\n", 189 | "function train()\n", 190 | " local targets = cast(torch.Tensor(opt.batchSize,10))\n", 191 | " local inputs = cast(torch.Tensor(opt.batchSize,28*28))\n", 192 | " -- randomly permute the data\n", 193 | " local indices = torch.randperm(trainData.data:size(1)):long():split(opt.batchSize)\n", 194 | " indices[#indices] = nil -- avoid the last minibatch\n", 195 | "\n", 196 | " local loss = 0\n", 197 | " for t,v in ipairs(indices) do\n", 198 | " local inputs_ = trainData.data:index(1,v)\n", 199 | " local target_idx = trainData.label:index(1,v)\n", 200 | " targets:zero():scatter(2,target_idx:long():view(opt.batchSize,1),1)\n", 201 | " inputs:copy(inputs_)\n", 202 | "\n", 203 | " local grads,l = g(inputs, targets)\n", 204 | " loss = loss + l\n", 205 | " end\n", 206 | " return loss / #indices\n", 207 | "end\n", 208 | "\n", 209 | "function test()\n", 210 | " local confusion = optim.ConfusionMatrix(10)\n", 211 | " local inputs_split = testData.data:split(opt.batchSize)\n", 212 | " local targets_split = testData.label:split(opt.batchSize)\n", 213 | " \n", 214 | " for i,v in ipairs(inputs_split) do\n", 215 | " confusion:batchAdd(f(params, v), targets_split[i])\n", 216 | " end\n", 217 | " print(tostring(confusion))\n", 218 | " return confusion.totalValid\n", 219 | "end" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "metadata": {}, 225 | "source": [ 226 | "Alright, all the functions needed are defined! let's start training and plot the loss" 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "execution_count": 6, 232 | "metadata": { 233 | "collapsed": false, 234 | "scrolled": false 235 | }, 236 | "outputs": [ 237 | { 238 | "data": { 239 | "text/plain": [ 240 | "Epoch: 1\t\n" 241 | ] 242 | }, 243 | "execution_count": 6, 244 | "metadata": {}, 245 | "output_type": "execute_result" 246 | }, 247 | { 248 | "data": { 249 | "text/plain": [ 250 | "Epoch: 2\t\n" 251 | ] 252 | }, 253 | "execution_count": 6, 254 | "metadata": {}, 255 | "output_type": "execute_result" 256 | }, 257 | { 258 | "data": { 259 | "text/plain": [ 260 | "Epoch: 3\t\n" 261 | ] 262 | }, 263 | "execution_count": 6, 264 | "metadata": {}, 265 | "output_type": "execute_result" 266 | }, 267 | { 268 | "data": { 269 | "text/plain": [ 270 | "Epoch: 4\t\n" 271 | ] 272 | }, 273 | "execution_count": 6, 274 | "metadata": {}, 275 | "output_type": "execute_result" 276 | }, 277 | { 278 | "data": { 279 | "text/plain": [ 280 | "Epoch: 5\t\n" 281 | ] 282 | }, 283 | "execution_count": 6, 284 | "metadata": {}, 285 | "output_type": "execute_result" 286 | }, 287 | { 288 | "data": { 289 | "text/plain": [ 290 | "Epoch: 6\t\n" 291 | ] 292 | }, 293 | "execution_count": 6, 294 | "metadata": {}, 295 | "output_type": "execute_result" 296 | }, 297 | { 298 | "data": { 299 | "text/plain": [ 300 | "Epoch: 7\t\n" 301 | ] 302 | }, 303 | "execution_count": 6, 304 | "metadata": {}, 305 | "output_type": "execute_result" 306 | }, 307 | { 308 | "data": { 309 | "text/plain": [ 310 | "Epoch: 8\t\n" 311 | ] 312 | }, 313 | "execution_count": 6, 314 | "metadata": {}, 315 | "output_type": "execute_result" 316 | }, 317 | { 318 | "data": { 319 | "text/plain": [ 320 | "Epoch: 9\t\n" 321 | ] 322 | }, 323 | "execution_count": 6, 324 | "metadata": {}, 325 | "output_type": "execute_result" 326 | }, 327 | { 328 | "data": { 329 | "text/plain": [ 330 | "Epoch: 10\t\n" 331 | ] 332 | }, 333 | "execution_count": 6, 334 | "metadata": {}, 335 | "output_type": "execute_result" 336 | }, 337 | { 338 | "data": { 339 | "text/plain": [ 340 | "Epoch: 11\t\n" 341 | ] 342 | }, 343 | "execution_count": 6, 344 | "metadata": {}, 345 | "output_type": "execute_result" 346 | }, 347 | { 348 | "data": { 349 | "text/plain": [ 350 | "Epoch: 12\t\n" 351 | ] 352 | }, 353 | "execution_count": 6, 354 | "metadata": {}, 355 | "output_type": "execute_result" 356 | }, 357 | { 358 | "data": { 359 | "text/plain": [ 360 | "Epoch: 13\t\n" 361 | ] 362 | }, 363 | "execution_count": 6, 364 | "metadata": {}, 365 | "output_type": "execute_result" 366 | }, 367 | { 368 | "data": { 369 | "text/plain": [ 370 | "Epoch: 14\t\n" 371 | ] 372 | }, 373 | "execution_count": 6, 374 | "metadata": {}, 375 | "output_type": "execute_result" 376 | }, 377 | { 378 | "data": { 379 | "text/plain": [ 380 | "Epoch: 15\t\n" 381 | ] 382 | }, 383 | "execution_count": 6, 384 | "metadata": {}, 385 | "output_type": "execute_result" 386 | }, 387 | { 388 | "data": { 389 | "text/plain": [ 390 | "Epoch: 16\t\n" 391 | ] 392 | }, 393 | "execution_count": 6, 394 | "metadata": {}, 395 | "output_type": "execute_result" 396 | }, 397 | { 398 | "data": { 399 | "text/plain": [ 400 | "Epoch: 17\t\n" 401 | ] 402 | }, 403 | "execution_count": 6, 404 | "metadata": {}, 405 | "output_type": "execute_result" 406 | }, 407 | { 408 | "data": { 409 | "text/plain": [ 410 | "Epoch: 18\t\n" 411 | ] 412 | }, 413 | "execution_count": 6, 414 | "metadata": {}, 415 | "output_type": "execute_result" 416 | }, 417 | { 418 | "data": { 419 | "text/plain": [ 420 | "Epoch: 19\t\n" 421 | ] 422 | }, 423 | "execution_count": 6, 424 | "metadata": {}, 425 | "output_type": "execute_result" 426 | }, 427 | { 428 | "data": { 429 | "text/plain": [ 430 | "Epoch: 20\t\n" 431 | ] 432 | }, 433 | "execution_count": 6, 434 | "metadata": {}, 435 | "output_type": "execute_result" 436 | }, 437 | { 438 | "data": { 439 | "text/html": [ 440 | "\n", 498 | "
\n" 499 | ] 500 | }, 501 | "metadata": {}, 502 | "output_type": "display_data" 503 | } 504 | ], 505 | "source": [ 506 | "local Plot = require 'itorch.Plot'\n", 507 | "\n", 508 | "local nEpochs = 20\n", 509 | "\n", 510 | "local losses = {}\n", 511 | "for i=1,nEpochs do\n", 512 | " print('Epoch: '..i)\n", 513 | " table.insert(losses, train())\n", 514 | "end\n", 515 | "\n", 516 | "Plot():line(torch.range(1,#losses), torch.Tensor(losses)):draw()" 517 | ] 518 | }, 519 | { 520 | "cell_type": "code", 521 | "execution_count": 7, 522 | "metadata": { 523 | "collapsed": false 524 | }, 525 | "outputs": [], 526 | "source": [ 527 | "-- print confusion matrix\n", 528 | "test()" 529 | ] 530 | }, 531 | { 532 | "cell_type": "markdown", 533 | "metadata": {}, 534 | "source": [ 535 | "## Visualize t-SNE embedding of the learned features\n", 536 | "\n", 537 | "t-Distributed Stochastic Neighbor Embedding (t-SNE) is a (prize-winning) technique\n", 538 | "for dimensionality reduction that is particularly well suited for the visualization\n", 539 | "of high-dimensional datasets. The technique can be implemented via Barnes-Hut approximations,\n", 540 | "allowing it to be applied on large real-world datasets.\n", 541 | "\n", 542 | "For more information see https://lvdmaaten.github.io/tsne/" 543 | ] 544 | }, 545 | { 546 | "cell_type": "code", 547 | "execution_count": 8, 548 | "metadata": { 549 | "collapsed": false, 550 | "scrolled": false 551 | }, 552 | "outputs": [ 553 | { 554 | "data": { 555 | "text/plain": [ 556 | "ConfusionMatrix:\n", 557 | "[[ 971 0 1 0 0 0 3 1 3 1] 99.082% \n", 558 | " [ 0 1123 3 1 0 1 3 1 3 0] 98.943% \n", 559 | " [ 4 1 1005 3 3 0 4 6 6 0] 97.384% \n", 560 | " [ 0 0 3 997 0 2 0 3 5 0] 98.713% \n", 561 | " [ 0 0 1 0 971 0 5 2 1 2] 98.880% \n", 562 | " [ 5 1 0 9 4 858 6 1 6 2] 96.188% \n", 563 | " [ 6 3 0 0 3 4 939 0 3 0] 98.017% \n", 564 | " [ 1 6 11 2 1 0 0 1003 2 2] 97.568% \n", 565 | " [ 4 0 2 5 1 1 3 2 955 1] 98.049% \n", 566 | " [ 4 5 0 12 28 1 0 14 7 938]] 92.963% \n", 567 | " + average row correct: 97.578655481339% \n", 568 | " + average rowUcol correct (VOC measure): 95.284997224808% \n", 569 | " + global correct: 97.6%\t\n", 570 | "0.976\t\n" 571 | ] 572 | }, 573 | "execution_count": 8, 574 | "metadata": {}, 575 | "output_type": "execute_result" 576 | }, 577 | { 578 | "data": { 579 | "text/plain": [ 580 | "extracted features size:\t 1000\n", 581 | " 64\n", 582 | "[torch.LongStorage of size 2]\n", 583 | "\n", 584 | "Computing P-values...\t\n" 585 | ] 586 | }, 587 | "execution_count": 8, 588 | "metadata": {}, 589 | "output_type": "execute_result" 590 | }, 591 | { 592 | "data": { 593 | "text/plain": [ 594 | "Running t-SNE...\t\n" 595 | ] 596 | }, 597 | "execution_count": 8, 598 | "metadata": {}, 599 | "output_type": "execute_result" 600 | }, 601 | { 602 | "data": { 603 | "text/plain": [ 604 | "Iteration 10: KL divergence is 44.832246592819\t\n" 605 | ] 606 | }, 607 | "execution_count": 8, 608 | "metadata": {}, 609 | "output_type": "execute_result" 610 | }, 611 | { 612 | "data": { 613 | "text/plain": [ 614 | "Iteration 20: KL divergence is 37.892226289938\t\n" 615 | ] 616 | }, 617 | "execution_count": 8, 618 | "metadata": {}, 619 | "output_type": "execute_result" 620 | }, 621 | { 622 | "data": { 623 | "text/plain": [ 624 | "Iteration 30: KL divergence is 36.228972974459\t\n" 625 | ] 626 | }, 627 | "execution_count": 8, 628 | "metadata": {}, 629 | "output_type": "execute_result" 630 | }, 631 | { 632 | "data": { 633 | "text/plain": [ 634 | "Iteration 40: KL divergence is 36.135559825456\t\n" 635 | ] 636 | }, 637 | "execution_count": 8, 638 | "metadata": {}, 639 | "output_type": "execute_result" 640 | }, 641 | { 642 | "data": { 643 | "text/plain": [ 644 | "Iteration 50: KL divergence is 36.168377493549\t\n" 645 | ] 646 | }, 647 | "execution_count": 8, 648 | "metadata": {}, 649 | "output_type": "execute_result" 650 | }, 651 | { 652 | "data": { 653 | "text/plain": [ 654 | "Iteration 60: KL divergence is 36.059750194989\t\n" 655 | ] 656 | }, 657 | "execution_count": 8, 658 | "metadata": {}, 659 | "output_type": "execute_result" 660 | }, 661 | { 662 | "data": { 663 | "text/plain": [ 664 | "Iteration 70: KL divergence is 36.221346905569\t\n" 665 | ] 666 | }, 667 | "execution_count": 8, 668 | "metadata": {}, 669 | "output_type": "execute_result" 670 | }, 671 | { 672 | "data": { 673 | "text/plain": [ 674 | "Iteration 80: KL divergence is 36.199052022455\t\n" 675 | ] 676 | }, 677 | "execution_count": 8, 678 | "metadata": {}, 679 | "output_type": "execute_result" 680 | }, 681 | { 682 | "data": { 683 | "text/plain": [ 684 | "Iteration 90: KL divergence is 36.177214337047\t\n" 685 | ] 686 | }, 687 | "execution_count": 8, 688 | "metadata": {}, 689 | "output_type": "execute_result" 690 | }, 691 | { 692 | "data": { 693 | "text/plain": [ 694 | "Iteration 100: KL divergence is 36.198799815465\t\n" 695 | ] 696 | }, 697 | "execution_count": 8, 698 | "metadata": {}, 699 | "output_type": "execute_result" 700 | }, 701 | { 702 | "data": { 703 | "text/plain": [ 704 | "Iteration 110: KL divergence is 36.275038084313\t\n" 705 | ] 706 | }, 707 | "execution_count": 8, 708 | "metadata": {}, 709 | "output_type": "execute_result" 710 | }, 711 | { 712 | "data": { 713 | "text/plain": [ 714 | "Iteration 120: KL divergence is 36.40139803708\t\n" 715 | ] 716 | }, 717 | "execution_count": 8, 718 | "metadata": {}, 719 | "output_type": "execute_result" 720 | }, 721 | { 722 | "data": { 723 | "text/plain": [ 724 | "Iteration 130: KL divergence is 36.417330315211\t\n" 725 | ] 726 | }, 727 | "execution_count": 8, 728 | "metadata": {}, 729 | "output_type": "execute_result" 730 | }, 731 | { 732 | "data": { 733 | "text/plain": [ 734 | "Iteration 140: KL divergence is 36.33617387188\t\n" 735 | ] 736 | }, 737 | "execution_count": 8, 738 | "metadata": {}, 739 | "output_type": "execute_result" 740 | }, 741 | { 742 | "data": { 743 | "text/plain": [ 744 | "Iteration 150: KL divergence is 36.468170785624\t\n" 745 | ] 746 | }, 747 | "execution_count": 8, 748 | "metadata": {}, 749 | "output_type": "execute_result" 750 | }, 751 | { 752 | "data": { 753 | "text/plain": [ 754 | "Iteration 160: KL divergence is 36.59012101625\t\n" 755 | ] 756 | }, 757 | "execution_count": 8, 758 | "metadata": {}, 759 | "output_type": "execute_result" 760 | }, 761 | { 762 | "data": { 763 | "text/plain": [ 764 | "Iteration 170: KL divergence is 36.653457419649\t\n" 765 | ] 766 | }, 767 | "execution_count": 8, 768 | "metadata": {}, 769 | "output_type": "execute_result" 770 | }, 771 | { 772 | "data": { 773 | "text/plain": [ 774 | "Iteration 180: KL divergence is 36.704379962344\t\n" 775 | ] 776 | }, 777 | "execution_count": 8, 778 | "metadata": {}, 779 | "output_type": "execute_result" 780 | }, 781 | { 782 | "data": { 783 | "text/plain": [ 784 | "Iteration 190: KL divergence is 36.889479682786\t\n" 785 | ] 786 | }, 787 | "execution_count": 8, 788 | "metadata": {}, 789 | "output_type": "execute_result" 790 | }, 791 | { 792 | "data": { 793 | "text/plain": [ 794 | "Iteration 200: KL divergence is 1.373272642535\t\n" 795 | ] 796 | }, 797 | "execution_count": 8, 798 | "metadata": {}, 799 | "output_type": "execute_result" 800 | }, 801 | { 802 | "data": { 803 | "text/plain": [ 804 | "Iteration 210: KL divergence is 0.92240953400252\t\n" 805 | ] 806 | }, 807 | "execution_count": 8, 808 | "metadata": {}, 809 | "output_type": "execute_result" 810 | }, 811 | { 812 | "data": { 813 | "text/plain": [ 814 | "Iteration 220: KL divergence is 0.68873145509082\t\n" 815 | ] 816 | }, 817 | "execution_count": 8, 818 | "metadata": {}, 819 | "output_type": "execute_result" 820 | }, 821 | { 822 | "data": { 823 | "text/plain": [ 824 | "Iteration 230: KL divergence is 0.62434793633371\t\n" 825 | ] 826 | }, 827 | "execution_count": 8, 828 | "metadata": {}, 829 | "output_type": "execute_result" 830 | }, 831 | { 832 | "data": { 833 | "text/plain": [ 834 | "Iteration 240: KL divergence is 0.59571542173665\t\n" 835 | ] 836 | }, 837 | "execution_count": 8, 838 | "metadata": {}, 839 | "output_type": "execute_result" 840 | }, 841 | { 842 | "data": { 843 | "text/plain": [ 844 | "Iteration 250: KL divergence is 0.58293889121261\t\n" 845 | ] 846 | }, 847 | "execution_count": 8, 848 | "metadata": {}, 849 | "output_type": "execute_result" 850 | }, 851 | { 852 | "data": { 853 | "text/plain": [ 854 | "Iteration 260: KL divergence is 0.5743162170098\t\n" 855 | ] 856 | }, 857 | "execution_count": 8, 858 | "metadata": {}, 859 | "output_type": "execute_result" 860 | }, 861 | { 862 | "data": { 863 | "text/plain": [ 864 | "Iteration 270: KL divergence is 0.56730572485952\t\n" 865 | ] 866 | }, 867 | "execution_count": 8, 868 | "metadata": {}, 869 | "output_type": "execute_result" 870 | }, 871 | { 872 | "data": { 873 | "text/plain": [ 874 | "Iteration 280: KL divergence is 0.56358339477389\t\n" 875 | ] 876 | }, 877 | "execution_count": 8, 878 | "metadata": {}, 879 | "output_type": "execute_result" 880 | }, 881 | { 882 | "data": { 883 | "text/plain": [ 884 | "Iteration 290: KL divergence is 0.56319721618965\t\n" 885 | ] 886 | }, 887 | "execution_count": 8, 888 | "metadata": {}, 889 | "output_type": "execute_result" 890 | }, 891 | { 892 | "data": { 893 | "text/plain": [ 894 | "Iteration 300: KL divergence is 0.56166916702289\t\n" 895 | ] 896 | }, 897 | "execution_count": 8, 898 | "metadata": {}, 899 | "output_type": "execute_result" 900 | }, 901 | { 902 | "data": { 903 | "text/plain": [ 904 | "Iteration 310: KL divergence is 0.5598631917177\t\n" 905 | ] 906 | }, 907 | "execution_count": 8, 908 | "metadata": {}, 909 | "output_type": "execute_result" 910 | }, 911 | { 912 | "data": { 913 | "text/plain": [ 914 | "Iteration 320: KL divergence is 0.55872810565076\t\n" 915 | ] 916 | }, 917 | "execution_count": 8, 918 | "metadata": {}, 919 | "output_type": "execute_result" 920 | }, 921 | { 922 | "data": { 923 | "text/plain": [ 924 | "Iteration 330: KL divergence is 0.55802526356711\t\n" 925 | ] 926 | }, 927 | "execution_count": 8, 928 | "metadata": {}, 929 | "output_type": "execute_result" 930 | }, 931 | { 932 | "data": { 933 | "text/plain": [ 934 | "Iteration 340: KL divergence is 0.5570389370636\t\n" 935 | ] 936 | }, 937 | "execution_count": 8, 938 | "metadata": {}, 939 | "output_type": "execute_result" 940 | }, 941 | { 942 | "data": { 943 | "text/plain": [ 944 | "Iteration 350: KL divergence is 0.55558275749272\t\n" 945 | ] 946 | }, 947 | "execution_count": 8, 948 | "metadata": {}, 949 | "output_type": "execute_result" 950 | }, 951 | { 952 | "data": { 953 | "text/plain": [ 954 | "Iteration 360: KL divergence is 0.55452855164404\t\n" 955 | ] 956 | }, 957 | "execution_count": 8, 958 | "metadata": {}, 959 | "output_type": "execute_result" 960 | }, 961 | { 962 | "data": { 963 | "text/plain": [ 964 | "Iteration 370: KL divergence is 0.55411769127029\t\n" 965 | ] 966 | }, 967 | "execution_count": 8, 968 | "metadata": {}, 969 | "output_type": "execute_result" 970 | }, 971 | { 972 | "data": { 973 | "text/plain": [ 974 | "Iteration 380: KL divergence is 0.55323243503148\t\n" 975 | ] 976 | }, 977 | "execution_count": 8, 978 | "metadata": {}, 979 | "output_type": "execute_result" 980 | }, 981 | { 982 | "data": { 983 | "text/plain": [ 984 | "Iteration 390: KL divergence is 0.55242187666701\t\n" 985 | ] 986 | }, 987 | "execution_count": 8, 988 | "metadata": {}, 989 | "output_type": "execute_result" 990 | }, 991 | { 992 | "data": { 993 | "text/plain": [ 994 | "Iteration 400: KL divergence is 0.55172825521442\t\n" 995 | ] 996 | }, 997 | "execution_count": 8, 998 | "metadata": {}, 999 | "output_type": "execute_result" 1000 | }, 1001 | { 1002 | "data": { 1003 | "text/plain": [ 1004 | "Iteration 410: KL divergence is 0.5509642322378\t\n" 1005 | ] 1006 | }, 1007 | "execution_count": 8, 1008 | "metadata": {}, 1009 | "output_type": "execute_result" 1010 | }, 1011 | { 1012 | "data": { 1013 | "text/plain": [ 1014 | "Iteration 420: KL divergence is 0.54984678034629\t\n" 1015 | ] 1016 | }, 1017 | "execution_count": 8, 1018 | "metadata": {}, 1019 | "output_type": "execute_result" 1020 | }, 1021 | { 1022 | "data": { 1023 | "text/plain": [ 1024 | "Iteration 430: KL divergence is 0.54921555963339\t\n" 1025 | ] 1026 | }, 1027 | "execution_count": 8, 1028 | "metadata": {}, 1029 | "output_type": "execute_result" 1030 | }, 1031 | { 1032 | "data": { 1033 | "text/plain": [ 1034 | "Iteration 440: KL divergence is 0.54889042496932\t\n" 1035 | ] 1036 | }, 1037 | "execution_count": 8, 1038 | "metadata": {}, 1039 | "output_type": "execute_result" 1040 | }, 1041 | { 1042 | "data": { 1043 | "text/plain": [ 1044 | "Iteration 450: KL divergence is 0.54826420030084\t\n" 1045 | ] 1046 | }, 1047 | "execution_count": 8, 1048 | "metadata": {}, 1049 | "output_type": "execute_result" 1050 | }, 1051 | { 1052 | "data": { 1053 | "text/plain": [ 1054 | "Iteration 460: KL divergence is 0.54717133360816\t\n" 1055 | ] 1056 | }, 1057 | "execution_count": 8, 1058 | "metadata": {}, 1059 | "output_type": "execute_result" 1060 | }, 1061 | { 1062 | "data": { 1063 | "text/plain": [ 1064 | "Iteration 470: KL divergence is 0.54629575129946\t\n" 1065 | ] 1066 | }, 1067 | "execution_count": 8, 1068 | "metadata": {}, 1069 | "output_type": "execute_result" 1070 | }, 1071 | { 1072 | "data": { 1073 | "text/plain": [ 1074 | "Iteration 480: KL divergence is 0.54566296285421\t\n" 1075 | ] 1076 | }, 1077 | "execution_count": 8, 1078 | "metadata": {}, 1079 | "output_type": "execute_result" 1080 | }, 1081 | { 1082 | "data": { 1083 | "text/plain": [ 1084 | "Iteration 490: KL divergence is 0.54507518071351\t\n" 1085 | ] 1086 | }, 1087 | "execution_count": 8, 1088 | "metadata": {}, 1089 | "output_type": "execute_result" 1090 | }, 1091 | { 1092 | "data": { 1093 | "text/plain": [ 1094 | "Iteration 500: KL divergence is 0.54454016527357\t\n" 1095 | ] 1096 | }, 1097 | "execution_count": 8, 1098 | "metadata": {}, 1099 | "output_type": "execute_result" 1100 | }, 1101 | { 1102 | "data": { 1103 | "text/plain": [ 1104 | "Iteration 510: KL divergence is 0.54410356420332\t\n" 1105 | ] 1106 | }, 1107 | "execution_count": 8, 1108 | "metadata": {}, 1109 | "output_type": "execute_result" 1110 | }, 1111 | { 1112 | "data": { 1113 | "text/plain": [ 1114 | "Iteration 520: KL divergence is 0.54378856628179\t\n" 1115 | ] 1116 | }, 1117 | "execution_count": 8, 1118 | "metadata": {}, 1119 | "output_type": "execute_result" 1120 | }, 1121 | { 1122 | "data": { 1123 | "text/plain": [ 1124 | "Iteration 530: KL divergence is 0.54354779235814\t\n" 1125 | ] 1126 | }, 1127 | "execution_count": 8, 1128 | "metadata": {}, 1129 | "output_type": "execute_result" 1130 | }, 1131 | { 1132 | "data": { 1133 | "text/plain": [ 1134 | "Iteration 540: KL divergence is 0.5432343679296\t\n" 1135 | ] 1136 | }, 1137 | "execution_count": 8, 1138 | "metadata": {}, 1139 | "output_type": "execute_result" 1140 | }, 1141 | { 1142 | "data": { 1143 | "text/plain": [ 1144 | "Iteration 550: KL divergence is 0.54299156952762\t\n" 1145 | ] 1146 | }, 1147 | "execution_count": 8, 1148 | "metadata": {}, 1149 | "output_type": "execute_result" 1150 | }, 1151 | { 1152 | "data": { 1153 | "text/plain": [ 1154 | "Iteration 560: KL divergence is 0.54281569678148\t\n" 1155 | ] 1156 | }, 1157 | "execution_count": 8, 1158 | "metadata": {}, 1159 | "output_type": "execute_result" 1160 | }, 1161 | { 1162 | "data": { 1163 | "text/plain": [ 1164 | "Iteration 570: KL divergence is 0.54251440171716\t\n" 1165 | ] 1166 | }, 1167 | "execution_count": 8, 1168 | "metadata": {}, 1169 | "output_type": "execute_result" 1170 | }, 1171 | { 1172 | "data": { 1173 | "text/plain": [ 1174 | "Iteration 580: KL divergence is 0.54245152501447\t\n" 1175 | ] 1176 | }, 1177 | "execution_count": 8, 1178 | "metadata": {}, 1179 | "output_type": "execute_result" 1180 | }, 1181 | { 1182 | "data": { 1183 | "text/plain": [ 1184 | "Iteration 590: KL divergence is 0.54226076960872\t\n" 1185 | ] 1186 | }, 1187 | "execution_count": 8, 1188 | "metadata": {}, 1189 | "output_type": "execute_result" 1190 | }, 1191 | { 1192 | "data": { 1193 | "text/plain": [ 1194 | "Iteration 600: KL divergence is 0.54197757500354\t\n" 1195 | ] 1196 | }, 1197 | "execution_count": 8, 1198 | "metadata": {}, 1199 | "output_type": "execute_result" 1200 | }, 1201 | { 1202 | "data": { 1203 | "text/plain": [ 1204 | "Iteration 610: KL divergence is 0.54142295960272\t\n" 1205 | ] 1206 | }, 1207 | "execution_count": 8, 1208 | "metadata": {}, 1209 | "output_type": "execute_result" 1210 | }, 1211 | { 1212 | "data": { 1213 | "text/plain": [ 1214 | "Iteration 620: KL divergence is 0.54045132246731\t\n" 1215 | ] 1216 | }, 1217 | "execution_count": 8, 1218 | "metadata": {}, 1219 | "output_type": "execute_result" 1220 | }, 1221 | { 1222 | "data": { 1223 | "text/plain": [ 1224 | "Iteration 630: KL divergence is 0.54009947996406\t" 1225 | ] 1226 | }, 1227 | "execution_count": 8, 1228 | "metadata": {}, 1229 | "output_type": "execute_result" 1230 | }, 1231 | { 1232 | "data": { 1233 | "text/plain": [ 1234 | "\n" 1235 | ] 1236 | }, 1237 | "execution_count": 8, 1238 | "metadata": {}, 1239 | "output_type": "execute_result" 1240 | }, 1241 | { 1242 | "data": { 1243 | "text/plain": [ 1244 | "Iteration 640: KL divergence is 0.53990240976834\t\n" 1245 | ] 1246 | }, 1247 | "execution_count": 8, 1248 | "metadata": {}, 1249 | "output_type": "execute_result" 1250 | }, 1251 | { 1252 | "data": { 1253 | "text/plain": [ 1254 | "Iteration 650: KL divergence is 0.53970872062221\t\n" 1255 | ] 1256 | }, 1257 | "execution_count": 8, 1258 | "metadata": {}, 1259 | "output_type": "execute_result" 1260 | }, 1261 | { 1262 | "data": { 1263 | "text/plain": [ 1264 | "Iteration 660: KL divergence is 0.53956414683302\t\n" 1265 | ] 1266 | }, 1267 | "execution_count": 8, 1268 | "metadata": {}, 1269 | "output_type": "execute_result" 1270 | }, 1271 | { 1272 | "data": { 1273 | "text/plain": [ 1274 | "Iteration 670: KL divergence is 0.53925359384794\t\n" 1275 | ] 1276 | }, 1277 | "execution_count": 8, 1278 | "metadata": {}, 1279 | "output_type": "execute_result" 1280 | }, 1281 | { 1282 | "data": { 1283 | "text/plain": [ 1284 | "Iteration 680: KL divergence is 0.53913597206362\t\n" 1285 | ] 1286 | }, 1287 | "execution_count": 8, 1288 | "metadata": {}, 1289 | "output_type": "execute_result" 1290 | }, 1291 | { 1292 | "data": { 1293 | "text/plain": [ 1294 | "Iteration 690: KL divergence is 0.53900450710985\t\n" 1295 | ] 1296 | }, 1297 | "execution_count": 8, 1298 | "metadata": {}, 1299 | "output_type": "execute_result" 1300 | }, 1301 | { 1302 | "data": { 1303 | "text/plain": [ 1304 | "Iteration 700: KL divergence is 0.53892780033619\t\n" 1305 | ] 1306 | }, 1307 | "execution_count": 8, 1308 | "metadata": {}, 1309 | "output_type": "execute_result" 1310 | }, 1311 | { 1312 | "data": { 1313 | "text/plain": [ 1314 | "Iteration 710: KL divergence is 0.53879131015317\t\n" 1315 | ] 1316 | }, 1317 | "execution_count": 8, 1318 | "metadata": {}, 1319 | "output_type": "execute_result" 1320 | }, 1321 | { 1322 | "data": { 1323 | "text/plain": [ 1324 | "Iteration 720: KL divergence is 0.53866379792385\t\n" 1325 | ] 1326 | }, 1327 | "execution_count": 8, 1328 | "metadata": {}, 1329 | "output_type": "execute_result" 1330 | }, 1331 | { 1332 | "data": { 1333 | "text/plain": [ 1334 | "Iteration 730: KL divergence is 0.53857520561052\t\n" 1335 | ] 1336 | }, 1337 | "execution_count": 8, 1338 | "metadata": {}, 1339 | "output_type": "execute_result" 1340 | }, 1341 | { 1342 | "data": { 1343 | "text/plain": [ 1344 | "Iteration 740: KL divergence is 0.53849441691551\t\n" 1345 | ] 1346 | }, 1347 | "execution_count": 8, 1348 | "metadata": {}, 1349 | "output_type": "execute_result" 1350 | }, 1351 | { 1352 | "data": { 1353 | "text/plain": [ 1354 | "Iteration 750: KL divergence is 0.53841742362778\t\n" 1355 | ] 1356 | }, 1357 | "execution_count": 8, 1358 | "metadata": {}, 1359 | "output_type": "execute_result" 1360 | }, 1361 | { 1362 | "data": { 1363 | "text/plain": [ 1364 | "Iteration 760: KL divergence is 0.53834240528086\t\n" 1365 | ] 1366 | }, 1367 | "execution_count": 8, 1368 | "metadata": {}, 1369 | "output_type": "execute_result" 1370 | }, 1371 | { 1372 | "data": { 1373 | "text/plain": [ 1374 | "Iteration 770: KL divergence is 0.5382736379775\t" 1375 | ] 1376 | }, 1377 | "execution_count": 8, 1378 | "metadata": {}, 1379 | "output_type": "execute_result" 1380 | }, 1381 | { 1382 | "data": { 1383 | "text/plain": [ 1384 | "\n" 1385 | ] 1386 | }, 1387 | "execution_count": 8, 1388 | "metadata": {}, 1389 | "output_type": "execute_result" 1390 | }, 1391 | { 1392 | "data": { 1393 | "text/plain": [ 1394 | "Iteration 780: KL divergence is 0.53818641367611\t\n" 1395 | ] 1396 | }, 1397 | "execution_count": 8, 1398 | "metadata": {}, 1399 | "output_type": "execute_result" 1400 | }, 1401 | { 1402 | "data": { 1403 | "text/plain": [ 1404 | "Iteration 790: KL divergence is 0.53807373867898\t\n" 1405 | ] 1406 | }, 1407 | "execution_count": 8, 1408 | "metadata": {}, 1409 | "output_type": "execute_result" 1410 | }, 1411 | { 1412 | "data": { 1413 | "text/plain": [ 1414 | "Iteration 800: KL divergence is 0.53797382655477\t\n" 1415 | ] 1416 | }, 1417 | "execution_count": 8, 1418 | "metadata": {}, 1419 | "output_type": "execute_result" 1420 | }, 1421 | { 1422 | "data": { 1423 | "text/plain": [ 1424 | "Iteration 810: KL divergence is 0.53787749048371\t\n" 1425 | ] 1426 | }, 1427 | "execution_count": 8, 1428 | "metadata": {}, 1429 | "output_type": "execute_result" 1430 | }, 1431 | { 1432 | "data": { 1433 | "text/plain": [ 1434 | "Iteration 820: KL divergence is 0.53777649037375\t\n" 1435 | ] 1436 | }, 1437 | "execution_count": 8, 1438 | "metadata": {}, 1439 | "output_type": "execute_result" 1440 | }, 1441 | { 1442 | "data": { 1443 | "text/plain": [ 1444 | "Iteration 830: KL divergence is 0.53769671290208\t\n" 1445 | ] 1446 | }, 1447 | "execution_count": 8, 1448 | "metadata": {}, 1449 | "output_type": "execute_result" 1450 | }, 1451 | { 1452 | "data": { 1453 | "text/plain": [ 1454 | "Iteration 840: KL divergence is 0.53761931681676\t\n" 1455 | ] 1456 | }, 1457 | "execution_count": 8, 1458 | "metadata": {}, 1459 | "output_type": "execute_result" 1460 | }, 1461 | { 1462 | "data": { 1463 | "text/plain": [ 1464 | "Iteration 850: KL divergence is 0.53756297245859\t\n" 1465 | ] 1466 | }, 1467 | "execution_count": 8, 1468 | "metadata": {}, 1469 | "output_type": "execute_result" 1470 | }, 1471 | { 1472 | "data": { 1473 | "text/plain": [ 1474 | "Iteration 860: KL divergence is 0.53750581454043\t\n" 1475 | ] 1476 | }, 1477 | "execution_count": 8, 1478 | "metadata": {}, 1479 | "output_type": "execute_result" 1480 | }, 1481 | { 1482 | "data": { 1483 | "text/plain": [ 1484 | "Iteration 870: KL divergence is 0.53744879422127\t\n" 1485 | ] 1486 | }, 1487 | "execution_count": 8, 1488 | "metadata": {}, 1489 | "output_type": "execute_result" 1490 | }, 1491 | { 1492 | "data": { 1493 | "text/plain": [ 1494 | "Iteration 880: KL divergence is 0.53735823529746\t\n" 1495 | ] 1496 | }, 1497 | "execution_count": 8, 1498 | "metadata": {}, 1499 | "output_type": "execute_result" 1500 | }, 1501 | { 1502 | "data": { 1503 | "text/plain": [ 1504 | "Iteration 890: KL divergence is 0.53726742171474\t\n" 1505 | ] 1506 | }, 1507 | "execution_count": 8, 1508 | "metadata": {}, 1509 | "output_type": "execute_result" 1510 | }, 1511 | { 1512 | "data": { 1513 | "text/plain": [ 1514 | "Iteration 900: KL divergence is 0.53711245737398\t\n" 1515 | ] 1516 | }, 1517 | "execution_count": 8, 1518 | "metadata": {}, 1519 | "output_type": "execute_result" 1520 | }, 1521 | { 1522 | "data": { 1523 | "text/plain": [ 1524 | "Iteration 910: KL divergence is 0.53701863633265\t\n" 1525 | ] 1526 | }, 1527 | "execution_count": 8, 1528 | "metadata": {}, 1529 | "output_type": "execute_result" 1530 | }, 1531 | { 1532 | "data": { 1533 | "text/plain": [ 1534 | "Iteration 920: KL divergence is 0.53691653867263\t\n" 1535 | ] 1536 | }, 1537 | "execution_count": 8, 1538 | "metadata": {}, 1539 | "output_type": "execute_result" 1540 | }, 1541 | { 1542 | "data": { 1543 | "text/plain": [ 1544 | "Iteration 930: KL divergence is 0.53682792041563\t\n" 1545 | ] 1546 | }, 1547 | "execution_count": 8, 1548 | "metadata": {}, 1549 | "output_type": "execute_result" 1550 | }, 1551 | { 1552 | "data": { 1553 | "text/plain": [ 1554 | "Iteration 940: KL divergence is 0.53672063414213\t\n" 1555 | ] 1556 | }, 1557 | "execution_count": 8, 1558 | "metadata": {}, 1559 | "output_type": "execute_result" 1560 | }, 1561 | { 1562 | "data": { 1563 | "text/plain": [ 1564 | "Iteration 950: KL divergence is 0.53664642031735\t\n" 1565 | ] 1566 | }, 1567 | "execution_count": 8, 1568 | "metadata": {}, 1569 | "output_type": "execute_result" 1570 | }, 1571 | { 1572 | "data": { 1573 | "text/plain": [ 1574 | "Iteration 960: KL divergence is 0.53648353946723\t\n" 1575 | ] 1576 | }, 1577 | "execution_count": 8, 1578 | "metadata": {}, 1579 | "output_type": "execute_result" 1580 | }, 1581 | { 1582 | "data": { 1583 | "text/plain": [ 1584 | "Iteration 970: KL divergence is 0.53624323906328\t\n" 1585 | ] 1586 | }, 1587 | "execution_count": 8, 1588 | "metadata": {}, 1589 | "output_type": "execute_result" 1590 | }, 1591 | { 1592 | "data": { 1593 | "text/plain": [ 1594 | "Iteration 980: KL divergence is 0.53577900424047\t\n" 1595 | ] 1596 | }, 1597 | "execution_count": 8, 1598 | "metadata": {}, 1599 | "output_type": "execute_result" 1600 | }, 1601 | { 1602 | "data": { 1603 | "text/plain": [ 1604 | "Iteration 990: KL divergence is 0.53518656944691\t\n" 1605 | ] 1606 | }, 1607 | "execution_count": 8, 1608 | "metadata": {}, 1609 | "output_type": "execute_result" 1610 | } 1611 | ], 1612 | "source": [ 1613 | "-- take a subset of MNIST test dataset\n", 1614 | "x_subset = testData.data:narrow(1,1,1000)\n", 1615 | "\n", 1616 | "local W_t = grad.util.deepCopy(params)\n", 1617 | "W_t[#params] = nil -- remove the last layer\n", 1618 | "\n", 1619 | "-- extract features\n", 1620 | "local features = f(W_t, x_subset)\n", 1621 | "print('extracted features size:', #features)\n", 1622 | "\n", 1623 | "-- call t-SNE\n", 1624 | "p = manifold.embedding.tsne(features:double(), {dim=2, perplexity=30})" 1625 | ] 1626 | }, 1627 | { 1628 | "cell_type": "code", 1629 | "execution_count": 9, 1630 | "metadata": { 1631 | "collapsed": false 1632 | }, 1633 | "outputs": [ 1634 | { 1635 | "data": { 1636 | "image/png": "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", 1637 | "text/plain": [ 1638 | "Console does not support images" 1639 | ] 1640 | }, 1641 | "metadata": { 1642 | "image/png": { 1643 | "height": 900, 1644 | "width": 1200 1645 | } 1646 | }, 1647 | "output_type": "display_data" 1648 | } 1649 | ], 1650 | "source": [ 1651 | "-- visualized computed embedding\n", 1652 | "local images = x_subset\n", 1653 | "\n", 1654 | "local s = {900,1200}\n", 1655 | "local b = 16\n", 1656 | "local p_ = p:clone()\n", 1657 | "local px = p_:select(2,1)\n", 1658 | "local py = p_:select(2,2)\n", 1659 | "px = (px - px:min()) / (px:max() - px:min())\n", 1660 | "py = (py - py:min()) / (py:max() - py:min())\n", 1661 | "local im = torch.FloatTensor(1,s[1],s[2]):fill(0)\n", 1662 | "for i,v in ipairs(images:split(1)) do\n", 1663 | " local x = math.ceil(b + px[i]*s[1]*0.95)\n", 1664 | " local y = math.ceil(b + py[i]*s[2]*0.95)\n", 1665 | " local scaled = image.scale(v,b,b)\n", 1666 | " im[{{},{x-b/2,x+b/2-1},{y-b/2,y+b/2-1}}]:add(scaled)\n", 1667 | "end\n", 1668 | "\n", 1669 | "-- and clusters of data we shall see:\n", 1670 | "itorch.image(-im+1)" 1671 | ] 1672 | }, 1673 | { 1674 | "cell_type": "markdown", 1675 | "metadata": {}, 1676 | "source": [ 1677 | "# Homework\n", 1678 | "\n", 1679 | "As a homework you can try the following:\n", 1680 | " * Visualize t-SNE embedding over training, started from randomly initialized network\n", 1681 | " * Try more complicated network structure, e.g. convolutional network, LeNet\n", 1682 | " * Experiment with different optimization methods, try ADAM or L-BFGS\n", 1683 | " * Try out another loss function" 1684 | ] 1685 | }, 1686 | { 1687 | "cell_type": "markdown", 1688 | "metadata": { 1689 | "collapsed": true 1690 | }, 1691 | "source": [ 1692 | "## More examples\n", 1693 | "\n", 1694 | "For more examples on torch-autograd check these repositories:\n", 1695 | "* Original torch-autograd examples https://github.com/twitter/torch-autograd/tree/master/examples\n", 1696 | "* neural-style implemented in autograd https://github.com/szagoruyko/neural-style-autograd more natural implementation with ~100 less lines" 1697 | ] 1698 | } 1699 | ], 1700 | "metadata": { 1701 | "kernelspec": { 1702 | "display_name": "iTorch", 1703 | "language": "lua", 1704 | "name": "itorch" 1705 | }, 1706 | "language_info": { 1707 | "name": "lua", 1708 | "version": "5.1" 1709 | } 1710 | }, 1711 | "nbformat": 4, 1712 | "nbformat_minor": 0 1713 | } 1714 | --------------------------------------------------------------------------------