From 5d7fda41349f4c0675f115a21340bb7eb9188bb9 Mon Sep 17 00:00:00 2001 From: Johannes Hofmanninger Date: Mon, 17 Jun 2019 15:41:43 +0200 Subject: [PATCH] compatible with oder pytorch version --- ig_example_onmnist.ipynb | 67 +++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/ig_example_onmnist.ipynb b/ig_example_onmnist.ipynb index e4c594d..5849d81 100644 --- a/ig_example_onmnist.ipynb +++ b/ig_example_onmnist.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -98,9 +98,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test set: Average loss: 0.3967, Accuracy: 8889/10000 (89%)\n", + "Test set: Average loss: 0.2454, Accuracy: 9276/10000 (93%)\n", + "Test set: Average loss: 0.1800, Accuracy: 9480/10000 (95%)\n", + "Test set: Average loss: 0.1437, Accuracy: 9596/10000 (96%)\n", + "Test set: Average loss: 0.1182, Accuracy: 9653/10000 (97%)\n", + "Test set: Average loss: 0.0988, Accuracy: 9707/10000 (97%)\n", + "Test set: Average loss: 0.0898, Accuracy: 9738/10000 (97%)\n", + "Test set: Average loss: 0.0801, Accuracy: 9761/10000 (98%)\n", + "Test set: Average loss: 0.0756, Accuracy: 9779/10000 (98%)\n", + "Test set: Average loss: 0.0668, Accuracy: 9803/10000 (98%)\n" + ] + } + ], "source": [ "args = {}\n", "args['log_interval'] = 100\n", @@ -150,9 +167,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "# we simply take image 0\n", "testimg = testset[0][0]\n", @@ -168,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -190,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -198,7 +228,7 @@ "sm = torch.nn.Softmax(dim=1) # according to the authors we should apply the gradient calculation on a softmax layer\n", "\n", "# don't forget to set requires_grad to True for the input images\n", - "data = torch.tensor(scaled_inputs, requires_grad=True, dtype=torch.float32).to(device)\n", + "data = torch.tensor(scaled_inputs, requires_grad=True, dtype=torch.float32, device=device)\n", "output = model(data) # forward pass\n", "pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\n", "output_sc = sm(output) #softmax output as recommended by the authors" @@ -206,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -221,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -233,12 +263,12 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -265,12 +295,12 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD8CAYAAAB3u9PLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAEYJJREFUeJzt3W2spGV9x/HvT1ZpRJRFFrJdti6YtS0kLdANpaFtsLTyVAVjbNYXuj5lbYVEWvti1ReSpqSo9aHEFrNU4tqgQFUiLbQVN7TWtCAHugLrSjnAKofdskexgrXFgP++mOuww2HOw56ZOTML308ymftc93Xf85/r3Gd+cz/MnFQVkiS9YNQFSJLGg4EgSQIMBElSYyBIkgADQZLUGAiSJMBAkCQ1BoIkCTAQJEnNilEXAHDUUUfVunXrRl2GJB1U7rjjju9V1apBrW8sAmHdunVMTEyMugxJOqgk+c4g1+chI0kSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRIwJp9U1vhYt+XGeefvvuy8ZapE0nJzD0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRKwiEBIsjbJLUl2JdmZ5D2t/ZIkDyfZ0W7ndi3zviSTSe5NctYwn4AkaTAW8w9yngTeW1V3JjkcuCPJzW3ex6vqz7s7JzkB2AicCPws8NUkr6qqpwZZuCRpsBbcQ6iqvVV1Z5t+HNgFrJlnkfOBa6rqiap6EJgETh1EsZKk4TmgcwhJ1gEnA7e1pouS3JXkqiQrW9sa4KGuxaaYP0AkSWNg0YGQ5CXAF4GLq+ox4ArglcBJwF7gozNdeyxePda3OclEkonp6ekDLlySNFiLCoQkL6QTBldX1ZcAquqRqnqqqn4KXMn+w0JTwNquxY8F9sxeZ1VtraoNVbVh1apV/TwHSdIALOYqowCfBnZV1ce62ld3dXs9cE+bvgHYmOTQJMcB64FvDK5kSdIwLOYqo9OBNwN3J9nR2t4PvCnJSXQOB+0G3gVQVTuTXAd8i84VShd6hZEkjb8FA6Gqvk7v8wI3zbPMpcClfdQlSVpmflJZkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkScAiAiHJ2iS3JNmVZGeS97T2I5PcnOS+dr+ytSfJ5Ukmk9yV5JRhPwlJUv8Ws4fwJPDeqvpF4DTgwiQnAFuA7VW1HtjefgY4B1jfbpuBKwZetSRp4BYMhKraW1V3tunHgV3AGuB8YFvrtg24oE2fD3y2Om4FjkiyeuCVS5IG6oDOISRZB5wM3AYcU1V7oRMawNGt2xrgoa7Fplrb7HVtTjKRZGJ6evrAK5ckDdSiAyHJS4AvAhdX1WPzde3RVs9qqNpaVRuqasOqVasWW4YkaUgWFQhJXkgnDK6uqi+15kdmDgW1+32tfQpY27X4scCewZQrSRqWxVxlFODTwK6q+ljXrBuATW16E/Dlrva3tKuNTgN+OHNoSZI0vlYsos/pwJuBu5PsaG3vBy4DrkvyDuC7wBvbvJuAc4FJ4MfA2wZasSRpKBYMhKr6Or3PCwCc2aN/ARf2WZckaZn5SWVJEmAgSJIaA0GSBBgIkqTGQJAkAYu77FR62rotN845b/dl5y1jJZIGzT0ESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqVkwEJJclWRfknu62i5J8nCSHe12bte89yWZTHJvkrOGVbgkabAWs4fwGeDsHu0fr6qT2u0mgCQnABuBE9syf5XkkEEVK0kangUDoaq+Bjy6yPWdD1xTVU9U1YPAJHBqH/VJkpZJP+cQLkpyVzuktLK1rQEe6uoz1dokSWNuqYFwBfBK4CRgL/DR1p4efavXCpJsTjKRZGJ6enqJZUiSBmVJgVBVj1TVU1X1U+BK9h8WmgLWdnU9Ftgzxzq2VtWGqtqwatWqpZQhSRqgJQVCktVdP74emLkC6QZgY5JDkxwHrAe+0V+JkqTlsGKhDkk+D5wBHJVkCvggcEaSk+gcDtoNvAugqnYmuQ74FvAkcGFVPTWc0iVJg7RgIFTVm3o0f3qe/pcCl/ZTlCRp+flJZUkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpGbBQEhyVZJ9Se7pajsyyc1J7mv3K1t7klyeZDLJXUlOGWbxkqTBWcwewmeAs2e1bQG2V9V6YHv7GeAcYH27bQauGEyZkqRhWzAQquprwKOzms8HtrXpbcAFXe2frY5bgSOSrB5UsZKk4VnqOYRjqmovQLs/urWvAR7q6jfV2iRJY27QJ5XTo616dkw2J5lIMjE9PT3gMiRJB2qpgfDIzKGgdr+vtU8Ba7v6HQvs6bWCqtpaVRuqasOqVauWWIYkaVCWGgg3AJva9Cbgy13tb2lXG50G/HDm0JIkabytWKhDks8DZwBHJZkCPghcBlyX5B3Ad4E3tu43AecCk8CPgbcNoWZJ0hAsGAhV9aY5Zp3Zo28BF/ZblCRp+flJZUkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWpWjLoAPXes23LjvPN3X3beMlUiaSncQ5AkAQaCJKkxECRJgOcQnpcWOtYv6fmpr0BIsht4HHgKeLKqNiQ5ErgWWAfsBn6vqn7QX5mSpGEbxCGjV1fVSVW1of28BdheVeuB7e1nSdKYG8Y5hPOBbW16G3DBEB5DkjRg/QZCAV9JckeSza3tmKraC9Duj+61YJLNSSaSTExPT/dZhiSpX/2eVD69qvYkORq4Ocm3F7tgVW0FtgJs2LCh+qxDktSnvvYQqmpPu98HXA+cCjySZDVAu9/Xb5GSpOFbciAkOSzJ4TPTwGuAe4AbgE2t2ybgy/0WKUkavn4OGR0DXJ9kZj2fq6p/THI7cF2SdwDfBd7Yf5mSpGFbciBU1QPAL/do/z5wZj9FSZKWn19dIUkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAkwECRJjYEgSQIMBElS4/9Ufg7yfyZLWgr3ECRJgIEgSWoMBEkS4DkELaOFzm3svuy8ZapEUi/uIUiSAANBktQYCJIkwECQJDWeVD4I+cEzScPgHoIkCXAPYWy5FyBpuRkIOij4GQZp+AwEjQ33iqTRMhCGxHe0kg42BoKe8/oN5/mWN9j1XGIgjIiHRySNGwNBzwkGrNS/oQVCkrOBvwAOAf66qi4b1mNJB6NRnmfyMJh6GUogJDkE+Evgd4Ap4PYkN1TVt4bxeKPiu1INUz/bVz8v6l4Q8fw1rD2EU4HJqnoAIMk1wPnAwAOh3xfl+TZuX/CfH4b5ex7VNnSwPidP8I/WsAJhDfBQ189TwK8O6bH64ou++uH2Mz6GuWfTz7oPpj2uYQVCerTVMzokm4HN7ccfJbm3z8c8Cvhen+tYbgdbzQdbvWDNy2UgNedDA6hk8ese2Dj3U/cBLju75lcs/ZGfbViBMAWs7fr5WGBPd4eq2gpsHdQDJpmoqg2DWt9yONhqPtjqBWteLta8PIZd87C+7fR2YH2S45K8CNgI3DCkx5IkDcBQ9hCq6skkFwH/ROey06uqaucwHkuSNBhD+xxCVd0E3DSs9fcwsMNPy+hgq/lgqxeseblY8/IYas2pqoV7SZKe8/yPaZIkYAwDIcmRSW5Ocl+7XzlHv02tz31JNnW1/0qSu5NMJrk8SVr7JUkeTrKj3c7tWuZ9rf+9Sc4ao5o/kuTbSe5Kcn2SI1r7uiT/2/VcPnUAtZ7dnudkki095h+a5No2/7Yk67rm9RynudbZLiq4rT3fa9sFBgdk0PUmWZvkliS7kuxM8p6u/nNuI6OsubXvbtvIjiQTXe2L2vaWu+YkP981jjuSPJbk4jZvpOOc5OVtG/hRkk/OWmauv8WRjvNcNSd5cZIb03md2Jnksq55b00y3TXO71ywwKoaqxvwYWBLm94CfKhHnyOBB9r9yja9ss37BvBrdD4L8Q/AOa39EuCPe6zrBOCbwKHAccD9wCFjUvNrgBVt+kMz6wXWAfcsYWwPac/veOBF7XmfMKvPu4FPtemNwLXzjdN86wSuAza26U8BfzAG9a4GTml9Dgf+s6ventvIqGtu83YDRy1l2xtVzbPW/1/AK8ZknA8Dfh34feCTs5aZ629x1OPcs2bgxcCr2/SLgH/tqvmts5/fQrex20Og8xUX29r0NuCCHn3OAm6uqker6gfAzcDZSVYDL62qf6/OiHx2juVnP941VfVEVT0ITNL56o2R11xVX6mqJ9vyt9L5PEc/nv5Kkar6CTDzlSJzPZcvAGe2d0lzjVPPdbZlfqutA+Yel2Wtt6r2VtWdAFX1OLCLzifrB2UYYzyfxWx7o675TOD+qvrOEmobeM1V9T9V9XXg/7o7L/D6MdJxnqvmqvpxVd3Spn8C3EkfrxPjGAjHVNVegHZ/dI8+vb4aY027TfVon3FROodfrura5ZtrXeNS84y303nHMuO4JP+R5F+S/MYi61zMc326TwujHwIvX6D+Xu0vB/67K9CWMq7DqPdpbXf8ZOC2ruZe28g41FzAV5Lckc6n/GcsZtsbVc0zNgKfn9U2ynGeb51z/S2OepwXlM4h5dcC27ua39DG+QtJ1s6x6NNGEghJvprknh632Wk55yp6tNU87QBXAK8ETgL2Ah9dYF3jUPPMY38AeBK4ujXtBX6uqk4G/gj4XJKX9lFDP3Uu+XktwjDq7SyUvAT4InBxVT3WmufaRg7EsGo+vapOAc4BLkzym0uobS7DHOcXAa8D/rZr/qjHuZ919mMYNXcWSlbQCd3Lq32pKPB3wLqq+iXgq+zf85jTSP5BTlX99lzzkjySZHVV7W27cPt6dJsCzuj6+Vjgn1v7sbPa97THfKTrMa4E/r5rXfN+zcaoam7r3gT8LnBm242lqp4AnmjTdyS5H3gVMMH8FvNcZ/pMtY3sZcCjCyzbq/17wBFJVrR3Oj3HdRT1JnkhnTC4uqq+NNNhnm1k5DVX1cz9viTX0zn88DVgMdveSGpuzgHu7B7bMRjn+dY519/iqMd5IVuB+6rqEzMNVfX9rvlX0jkPOb8DPTEy7BvwEZ558ubDPfocCTxI5+TsyjZ9ZJt3O3Aa+08KndvaV3ct/4d0jnsCnMgzT4o9wIGfVB5WzWfT+crwVbPWtYr9JxuPBx6eWdcCda5oz+849p/UOnFWnwt55kmt6+Ybp/nWSeddYfdJ5Xcf4LgOo97QOTb8iR6P13MbGYOaDwMOb30OA/4NOHux294oau5a7hrgbeM0zl3z38qzTyrP9bc40nFeoOY/pfMG5wXzjPPrgVsXrPFAn9Swb3SOl20H7mv3My+aG+j857WZfm+ncwJrsnuDa/3uoXM2/5Ps//Dd3wB3A3fR+V6l7sH6QOt/L+0M/ZjUPEnneOKOdpvZUN4A7Gwb1J3Aaw+g1nPpXFlzP/CB1vYnwOva9M/QeSGfpHPFxfELjVOvdbb249s6Jts6D13C2A60XjpXalTbDmbGdeaPfs5tZMQ1H99+199sv/fuMe657Y265tb+YuD7wMtmPdY4jPNuOu+8f0TnXfnMlWZz/S2Owzg/q2Y6exlF5+KIme35na3/n7H/deIW4BcWqs9PKkuSgPG8ykiSNAIGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiQA/h95I3rnmlztLwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -284,13 +314,6 @@ "source": [ "plt.hist(avg_grads.flatten(),bins=40);" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {