Created
April 24, 2017 20:12
-
-
Save spitis/b5b49b5c8714e7b6b32865da3c302420 to your computer and use it in GitHub Desktop.
ewc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Train a single network for 3 MNIST tasks sequentially" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# automatically reload edited modules\n", | |
"%load_ext autoreload\n", | |
"%autoreload 2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import tensorflow as tf\n", | |
"import numpy as np\n", | |
"from copy import deepcopy\n", | |
"from tensorflow.examples.tutorials.mnist import input_data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline\n", | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.image as mpimg\n", | |
"from IPython import display" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# import class Model\n", | |
"from model import Model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# mnist imshow convenience function\n", | |
"# input is a 1D array of length 784\n", | |
"def mnist_imshow(img):\n", | |
" plt.imshow(img.reshape([28,28]), cmap=\"gray\")\n", | |
" plt.axis('off')\n", | |
"\n", | |
"# return a new mnist dataset w/ pixels randomly permuted\n", | |
"def permute_mnist(mnist):\n", | |
" perm_inds = list(range(mnist.train.images.shape[1]))\n", | |
" np.random.shuffle(perm_inds)\n", | |
" mnist2 = deepcopy(mnist)\n", | |
" sets = [\"train\", \"validation\", \"test\"]\n", | |
" for set_name in sets:\n", | |
" this_set = getattr(mnist2, set_name) # shallow copy\n", | |
" this_set._images = np.transpose(np.array([this_set.images[:,c] for c in perm_inds]))\n", | |
" return mnist2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# classification accuracy plotting\n", | |
"def plot_test_acc(plot_handles):\n", | |
" plt.legend(handles=plot_handles, loc=\"center right\")\n", | |
" plt.xlabel(\"Iterations\")\n", | |
" plt.ylabel(\"Test Accuracy\")\n", | |
" plt.ylim(0,1)\n", | |
" display.display(plt.gcf())\n", | |
" display.clear_output(wait=True)\n", | |
" \n", | |
"# train/compare vanilla sgd and ewc\n", | |
"def train_task(sess, m, num_iter, disp_freq, trainset, testsets, lams=[0], restore_weights=False):\n", | |
" for l in range(len(lams)):\n", | |
" # lams[l] sets weight on old task(s)\n", | |
" if restore_weights:\n", | |
" sess.run(m.restore_sticky_weights)\n", | |
"\n", | |
" # initialize test accuracy array for each task \n", | |
" test_accs = []\n", | |
" for task in range(len(testsets)):\n", | |
" test_accs.append(np.zeros(num_iter/disp_freq))\n", | |
" \n", | |
" # train on current task\n", | |
" for iter in range(num_iter):\n", | |
" X, Y = trainset.train.next_batch(50)\n", | |
" feed_dict = {m.x: X, m.y: Y}\n", | |
" if lams[l] != 0:\n", | |
" feed_dict[m.ewc_loss_coef] = lams[l]\n", | |
" sess.run(m.ts, feed_dict=feed_dict)\n", | |
" if iter % disp_freq == 0:\n", | |
" plt.subplot(1, len(lams), l+1)\n", | |
" plots = []\n", | |
" colors = ['r', 'b', 'g']\n", | |
" for task in range(len(testsets)):\n", | |
" feed_dict={m.x: testsets[task].test.images, m.y: testsets[task].test.labels}\n", | |
" test_accs[task][iter//disp_freq] = m.acc.eval(feed_dict=feed_dict)\n", | |
" c = chr(ord('A') + task)\n", | |
" plot_h, = plt.plot(range(1,iter+2,disp_freq), test_accs[task][:iter//disp_freq+1], colors[task], label=\"task \" + c)\n", | |
" plots.append(plot_h)\n", | |
" plot_test_acc(plots)\n", | |
" if l == 0: \n", | |
" plt.title(\"vanilla sgd\")\n", | |
" else:\n", | |
" plt.title(\"ewc\")\n", | |
" plt.gcf().set_size_inches(len(lams)*5, 3.5)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Extracting MNIST_data/train-images-idx3-ubyte.gz\n", | |
"Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", | |
"Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", | |
"Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" | |
] | |
} | |
], | |
"source": [ | |
"mnist = input_data.read_data_sets('MNIST_data', one_hot=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"sess = tf.InteractiveSession()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Tensor(\"gradients/fully_connected/MatMul_grad/MatMul_1:0\", shape=(784, 400), dtype=float32) Tensor(\"fully_connected/weights/read:0\", shape=(784, 400), dtype=float32)\n", | |
"Tensor(\"gradients/fully_connected/BiasAdd_grad/BiasAddGrad:0\", shape=(400,), dtype=float32) Tensor(\"fully_connected/biases/read:0\", shape=(400,), dtype=float32)\n", | |
"Tensor(\"gradients/fully_connected_1/MatMul_grad/MatMul_1:0\", shape=(400, 400), dtype=float32) Tensor(\"fully_connected_1/weights/read:0\", shape=(400, 400), dtype=float32)\n", | |
"Tensor(\"gradients/fully_connected_1/BiasAdd_grad/BiasAddGrad:0\", shape=(400,), dtype=float32) Tensor(\"fully_connected_1/biases/read:0\", shape=(400,), dtype=float32)\n", | |
"Tensor(\"gradients/fully_connected_2/MatMul_grad/MatMul_1:0\", shape=(400, 10), dtype=float32) Tensor(\"fully_connected_2/weights/read:0\", shape=(400, 10), dtype=float32)\n", | |
"Tensor(\"gradients/fully_connected_2/BiasAdd_grad/BiasAddGrad:0\", shape=(10,), dtype=float32) Tensor(\"fully_connected_2/biases/read:0\", shape=(10,), dtype=float32)\n" | |
] | |
} | |
], | |
"source": [ | |
"m = Model()\n", | |
"x, y = m.x, m.y" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# initialize variables\n", | |
"sess.run(tf.global_variables_initializer())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### train on task A, test on task A" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n/wHnMJJ+BsHhkwAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fe35abbc630>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# training 1st task\n", | |
"train_task(sess, m, 10000, 250, mnist, [mnist], lams=[0])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[None, None]" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sess.run([m.update_fisher, m.update_sticky_weights])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"['fully_connected/weights:0',\n", | |
" 'fully_connected/biases:0',\n", | |
" 'fully_connected_1/weights:0',\n", | |
" 'fully_connected_1/biases:0',\n", | |
" 'fully_connected_2/weights:0',\n", | |
" 'fully_connected_2/biases:0',\n", | |
" 'grad_variance/gv_fully_connected/weights_0:0',\n", | |
" 'grad_variance/fisher_fully_connected/weights_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected/weights_0:0',\n", | |
" 'grad_variance/gv_fully_connected/biases_0:0',\n", | |
" 'grad_variance/fisher_fully_connected/biases_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected/biases_0:0',\n", | |
" 'grad_variance/gv_fully_connected_1/weights_0:0',\n", | |
" 'grad_variance/fisher_fully_connected_1/weights_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected_1/weights_0:0',\n", | |
" 'grad_variance/gv_fully_connected_1/biases_0:0',\n", | |
" 'grad_variance/fisher_fully_connected_1/biases_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected_1/biases_0:0',\n", | |
" 'grad_variance/gv_fully_connected_2/weights_0:0',\n", | |
" 'grad_variance/fisher_fully_connected_2/weights_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected_2/weights_0:0',\n", | |
" 'grad_variance/gv_fully_connected_2/biases_0:0',\n", | |
" 'grad_variance/fisher_fully_connected_2/biases_0:0',\n", | |
" 'sticky_weights/sticky_fully_connected_2/biases_0:0']" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"[v.name for v in tf.global_variables()]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"g = tf.get_default_graph()\n", | |
"v = g.get_tensor_by_name('grad_variance/gv_fully_connected/weights_0:0')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAEKCAYAAAAy4ujqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnW3MbdtV18d8nnPOvWlK3yxNkZR+wDRBK4ICRuiLlEg1\nEYQEURNfkGiI8QVCRAqphRhN5JNFY2LS+EEbsQomJlUI+sF7S1sUNJRKigLXQmuVon2xhd577vOy\n/LD3OOf//J//GHOsvZ9z9trPmv9kZb3POddc8zfGmHOttXebpsmGhobWpZNDF2BoaOjxa4A/NLRC\nDfCHhlaoAf7Q0Ao1wB8aWqEG+ENDK9QA/5aqtfaq1tpnWmvt0GU5pFprr2ut/WLhuB9orb3zcZRp\nCVoN+K21t7TWfpy2/XJr7d/Stl9qrX3rdvlvtdY+2Fo7a6297XGWd19N0/TRaZpeNK3kRY3W2mVr\n7bNbY/fZ1tonzcymaXrvNE1fUkxmFXVltiLwzew9ZvYH3AO21l5pZnfM7Mtp2xeb2dPbc37ZzL7H\nzP7N3Mxaa6c3UeihsiYz+9Ktsfu8aZpedqiCHMO9XxP4P2tm98zsy7brrzez/2Bm/522PTNN08fN\nzKZpeuc0TT9pZr/ZS3wbKv5oa+2drbVPm9mfa63da629vbX2sdba/2yt/b3W2t3t8U+11r55u/w1\nW4/1R7brb2qt/VyQzw+21v7+dvlOa+03W2s/tF1/srX2bGvtJa21V2/TPNnu+7bW2jNbj/hMa+1P\nQZrf3lr7UGvtE621n2itfVGQt6f5ba21j2yP/47W2le01n6+tfbJ1to/oHPCtLd185HW2v9rrf1s\na+11VJ//orX2T7Zl/q+ttd+b3YLtxGV+Y2vto7D+vdt78ZnW2i+21r4WDn8iyq+19gWttR9rrf3G\ntv7+KpX1yr1PyrkIrQb8aZrOzOw/mdkbtpveYJso4L1i2676RjP7l9M0vcTMfsTM3mpmX2VmX2pm\nv2e7/NbtsU+b2R+EfJ+BcrzRzJ4K8nh6u9/M7CvN7NfhvK82s/82TdOnt+uTmVlr7QVm9sNm9uZp\nml60Pe4D231/zMzeYmbfZGafb2Y/ZWb/vHOdX2Vmv8PM/oSZvd3Mvt/M3mRmrzWzb22tvb6Y9s/Y\npm5eapv6+tHW2j3Y/w3b7S82s3eb2T/slCuS18NrzOwvm9nv29bDm83sV3v5bSPCd5vZz5nZF5jZ\n15nZd7bW/hCci/f+n+1YzsenaZpWM5nZD5jZv9ouf8A2Yf2badufEee908zeVkj7Kdr2K7aBzde/\n3sz+x3b5TWb2ge3yT5jZt5vZ+7frT5nZNwX5PGlmn7MNLN9rZt9nZh8xsxeY2Q+a2du3x73azC5s\nY9xfYGafNLNvNrMnKb0fN7M/D+snZvZbZvYqkben+UrY9n/N7I/D+o+Z2V+bm/Z2/yfN7HdDff47\n2PclZvZbSf1fmtmnzexT23S8Ht5oZh/ZLn+xbQzl15nZHXH/ZH5m9vvN7Ffp+LeY2T+O7v3Sp9V4\n/K3eY2ava6291MxePk3TM2b2fjP76u2219p+Hv+jtP7bbQOl69e228zMftrMXtNae4VtooF/amav\naq39Ntt41KfNzFprvwCDVl8zTdNzZvafbRMtvME2RuL9ZvY62zTyp400TdPnbOOd/5KZ/e/W2ru3\n3s9sA/MPb8P0T5rZJ2zjIb8wuc7fgOVnzezjtP7CStqttb++7QZ8qrX2KTN7kZm9HNL6dVj+nJk9\n6V2XQF8+TdNLp2l62TRN3yXq4Rkz+y7bGMiPt9Z+ZDuu08vvi8zsC/06tmX9PjN7BRzP937RWhv4\nP21mLzGzv2hm7zMzm6bps2b2v7bbPjZN06/tkT6PCn/MNo3f9eptXjZN07Nm9l/M7DvN7BemaTrf\nlu+7zexXpmn61Pa4106bwaoXTdP0vm0677FNxPBlthm7eI9tIpevtMBwTdP076dp+noze6VtxjXe\nsd31UTP7ji0sL9uC88Jpmv7jzrXwUGHa2/7895jZt2y3v9TMPmOinz5D3XOnaXrXNE2vt4f35YcK\n6X7UNpEaXseLp2n6Bkx6h/IeTKsCH7zld9umv+l633bbFWi2g2dP2qae7rbWnuh4HNa7zOytrbWX\nt9ZebmZ/0zbdBtd7zOyv2EMv/RStR3razP6smX1oazCeMrO/YGYfnqbpE3gJ2+t4RWvtG7d9/TPb\nDFZebo/5R2b2/a2137k99sWttW9J8p4DZpb2523L8om2GQR923Zbpr3eSWitvaa19rXbcYTnbROd\nXGanbOc/Y2afba39je0A6mlr7Xe11r5in/IcUqsCf6unbTPQ9F7Y9lPbbQzcO2wT8v1J2wxgfc7M\n/vSMvP62bQzNB83s57fLf4fK8kJ7aHB8vQf++23T13/azGyapg/ZphHzee6FTmxj2D5mmz75G2wT\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fe35abf18d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"F_row_mean = np.mean(sess.run(v), 1)\n", | |
"mnist_imshow(F_row_mean)\n", | |
"plt.title(\"W1 row-wise mean Fisher\");" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### train on task B, test on tasks A and B" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nMAyjRPwPrpjGC/Vij/MAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fe35aba7c18>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# permuting mnist for 2nd task\n", | |
"mnist2 = permute_mnist(mnist)\n", | |
"\n", | |
"plt.subplot(1,2,1)\n", | |
"mnist_imshow(mnist.train.images[5])\n", | |
"plt.title(\"original task image\")\n", | |
"plt.subplot(1,2,2)\n", | |
"mnist_imshow(mnist2.train.images[5])\n", | |
"plt.title(\"new task image\");" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fe35425c668>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# training 2nd task\n", | |
"train_task(sess, m, 10000, 250, mnist2, [mnist, mnist2], lams=[0, 15], restore_weights=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.96810019" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sess.run(m.acc, {m.x:mnist.test.images, m.y:mnist.test.labels})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[None, None]" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sess.run([m.update_fisher, m.update_sticky_weights])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAEKCAYAAAAy4ujqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWuMbd2a1/WMteq2a9eu297vft/T5NAfMJ2gLYICRuiL\nNJHWRBASRE28INEQ4wVCRBrSNsRoIp9sNCYmHT9oR2wEE5NWCPrBcw7djYKGpiWNAseGbvtyznnf\nvet+XWtOP1T95vrP/3rGXKv2fveuOr1rJDNzrlW15mWM5/88/+cyxixt28Zje2yP7cNqo/u+gcf2\n2B7b+2+PwH9sj+0DbI/Af2yP7QNsj8B/bI/tA2yPwH9sj+0DbI/Af2yP7QNsj8D/ZdpKKV8spRyV\nUsp938t9tlLKd5RS/uYS//fHSyk//D7u6SG0Dwb4pZTvK6X8efvub5dS/if77m+VUn7P7fF/UEr5\nqVLKdSnlB97n/b5ta9v259q23W4/kEKNUkpTSjm+VXbHpZRXERFt2/5Y27a/esnTfBB9FfEBAT8i\nvhIR/xgWsJTySUSsRMSvs+9+VUR8+fY3fzsi/nBE/I93vVgpZfx53PRjW7q1EfFrbpXds7Zt9+/r\nRr4Zxv5DAv5fjYi1iPi1t5+/MyL+14j4f+y7r7Zt+7WIiLZtf7ht278YESeLTn5LFf9sKeWHSykH\nEfGvlFLWSik/WEr5+VLK/1dK+U9KKau3//+lUsrvuj3+zbcW65+6/fw9pZS/VrnOnyil/Ke3xyul\nlJNSyp+8/bxRSjkvpeyWUr719pyj27/93lLKV28t4ldLKf+CnPP3lVJ+upTyWSnlL5RSfmXl2pzz\n95ZSfvb2/39/KeXXl1L+einlVSnlP7PfVM992zc/W0o5LKX81VLKd1h//plSyn91e8//VynlHx4a\ngtvN7/m7Syk/J5//yO1YHJVS/mYp5bfIv6/XrldK+UIp5c+VUr5+23//tt1rb+wH7vNBtA8G+G3b\nXkfE/x4R33X71XfFDQv4seS7N22/IyL+u7ZtdyPiT0fE90fEb4yIXxMR/9Dt8fff/u+XI+Ifl+t+\nVe7juyPiS5VrfPn27xERvyEifkl+95si4v9u2/bg9nMbEVFK2YyIPxUR39u27fbt//3k7d/+mYj4\nvoj4nRHxUUT8pYj4bxc852+MiL8vIv65iPjBiPhjEfE9EfHtEfF7SinfueS5/0rc9M1e3PTXny2l\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f672c4ec6d8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"F_row_mean = np.mean(sess.run(v), 1)\n", | |
"mnist_imshow(F_row_mean)\n", | |
"plt.title(\"W1 row-wise mean Fisher\");" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### train on task C, test on tasks A, B, and C" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# permuting mnist for 3rd task\n", | |
"mnist3 = permute_mnist(mnist)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n/3wzXen8wiTMAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f672c705c18>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# training 3rd task\n", | |
"train_task(sess, m, 10000, 250, mnist3, [mnist, mnist2, mnist3], lams=[0, 15], restore_weights=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tensorflow as tf | |
class Model: | |
def __init__(self): | |
self.x = x = tf.placeholder(tf.float32, [None, 784]) | |
self.y = y = tf.placeholder(tf.int64, [None]) | |
self.ewc_loss_coef = tf.placeholder_with_default(0., []) | |
self.beta = tf.placeholder_with_default(0.95, []) | |
self.dropout = tf.placeholder_with_default(1., []) | |
x = tf.cond(tf.less(self.dropout, 1.), lambda: tf.nn.dropout(x, 0.8), lambda: x) | |
hx = tf.contrib.layers.fully_connected( | |
inputs=x, num_outputs=1500, activation_fn=tf.nn.relu) | |
hx = tf.nn.dropout(hx, self.dropout) | |
hx = tf.contrib.layers.fully_connected( | |
inputs=hx, num_outputs=1500, activation_fn=tf.nn.relu) | |
hx = tf.nn.dropout(hx, self.dropout) | |
hx = tf.contrib.layers.fully_connected( | |
inputs=hx, num_outputs=1500, activation_fn=tf.nn.relu) | |
hx = tf.nn.dropout(hx, self.dropout) | |
self.logits = logits = tf.contrib.layers.fully_connected( | |
inputs=hx, num_outputs=10) | |
self.softmax = tf.nn.softmax(logits) | |
self.var_list = tvs = tf.trainable_variables() | |
self.cross_entropy = cross_entropy = tf.reduce_mean( | |
tf.nn.sparse_softmax_cross_entropy_with_logits( | |
labels=y, logits=self.logits)) | |
opt = tf.train.GradientDescentOptimizer(0.1) | |
self.grads = grads = tf.gradients(cross_entropy, tvs) | |
# create gradient variance accumulators and update ops | |
grad_variances, fisher, sticky_weights = [], [], [] | |
update_grad_variances, update_fisher, replace_fisher, update_sticky_weights, restore_sticky_weights =\ | |
[], [], [], [], [] | |
ewc_losses = [] | |
for i, (g, v) in enumerate(zip(grads, tvs)): | |
print(g, v) | |
with tf.variable_scope("grad_variance"): | |
grad_variances.append( | |
tf.get_variable( | |
"gv_{}".format(v.name.replace(":", "_")), | |
v.get_shape().as_list(), | |
dtype=tf.float32, | |
trainable=False, | |
initializer=tf.zeros_initializer())) | |
fisher.append( | |
tf.get_variable( | |
"fisher_{}".format(v.name.replace(":", "_")), | |
v.get_shape().as_list(), | |
dtype=tf.float32, | |
trainable=False, | |
initializer=tf.zeros_initializer())) | |
with tf.variable_scope("sticky_weights"): | |
sticky_weights.append( | |
tf.get_variable( | |
"sticky_{}".format(v.name.replace(":", "_")), | |
v.get_shape().as_list(), | |
dtype=tf.float32, | |
trainable=False, | |
initializer=tf.zeros_initializer())) | |
update_grad_variances.append( | |
tf.assign(grad_variances[i], self.beta * grad_variances[i] + ( | |
1 - self.beta) * g * g * tf.to_float(tf.shape(x)[0]))) | |
update_fisher.append(tf.assign(fisher[i], fisher[i] + grad_variances[i])) | |
replace_fisher.append(tf.assign(fisher[i], grad_variances[i])) | |
update_sticky_weights.append(tf.assign(sticky_weights[i], v)) | |
restore_sticky_weights.append(tf.assign(v, sticky_weights[i])) | |
ewc_losses.append( | |
tf.reduce_sum(tf.square(v - sticky_weights[i]) * fisher[i])) | |
ewc_loss = cross_entropy + self.ewc_loss_coef * .5 * tf.add_n(ewc_losses) | |
grads_ewc = tf.gradients(ewc_loss, tvs) | |
self.sticky_weights = sticky_weights | |
self.grad_variances = grad_variances | |
with tf.control_dependencies(update_grad_variances): | |
self.update_grad_variances = tf.no_op('update_grad_variances') | |
with tf.control_dependencies(update_grad_variances): | |
self.ts = tf.cond( | |
tf.equal(self.ewc_loss_coef, tf.constant(0.)), | |
lambda: opt.apply_gradients(zip(grads, tvs)), | |
lambda: opt.apply_gradients(zip(grads_ewc, tvs))) | |
with tf.control_dependencies(update_fisher): | |
self.update_fisher = tf.no_op('update_fisher') | |
with tf.control_dependencies(replace_fisher): | |
self.replace_fisher = tf.no_op('replace_fisher') | |
with tf.control_dependencies(update_sticky_weights): | |
self.update_sticky_weights = tf.no_op('update_sticky_weights') | |
with tf.control_dependencies(restore_sticky_weights): | |
self.restore_sticky_weights = tf.no_op('restore_sticky_weights') | |
self.acc = tf.reduce_mean( | |
tf.cast(tf.equal(y, tf.argmax(logits, 1)), tf.float32)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment