diff --git a/Korean/Fraud detection analysis with NN/Fraud detection analysis with NN.ipynb b/Korean/Fraud detection analysis with NN/Fraud detection analysis with NN.ipynb index 1acf92e..0addaef 100644 --- a/Korean/Fraud detection analysis with NN/Fraud detection analysis with NN.ipynb +++ b/Korean/Fraud detection analysis with NN/Fraud detection analysis with NN.ipynb @@ -1975,27 +1975,27 @@ " \n", " \n", " \n", - " 99506\n", + " 143333\n", " 578.28934\n", " 0.0\n", " \n", " \n", - " 63634\n", + " 17480\n", " 578.28934\n", " 0.0\n", " \n", " \n", - " 15166\n", + " 6641\n", " 578.28934\n", " 0.0\n", " \n", " \n", - " 101509\n", + " 12369\n", " 578.28934\n", " 0.0\n", " \n", " \n", - " 102443\n", + " 87354\n", " 578.28934\n", " 0.0\n", " \n", @@ -2005,11 +2005,11 @@ ], "text/plain": [ " Fraud Normal\n", - "99506 578.28934 0.0\n", - "63634 578.28934 0.0\n", - "15166 578.28934 0.0\n", - "101509 578.28934 0.0\n", - "102443 578.28934 0.0" + "143333 578.28934 0.0\n", + "17480 578.28934 0.0\n", + "6641 578.28934 0.0\n", + "12369 578.28934 0.0\n", + "87354 578.28934 0.0" ] }, "execution_count": 30, @@ -2145,240 +2145,240 @@ " \n", " \n", " mean\n", - " -0.004768\n", - " 0.001993\n", - " 0.002366\n", - " -0.000931\n", - " 0.000704\n", - " -0.007082\n", - " 0.000202\n", - " -0.003762\n", - " -0.002018\n", - " -0.001879\n", - " 0.000481\n", - " -0.003350\n", - " -0.001521\n", - " 0.005754\n", - " -0.000489\n", - " 0.002001\n", - " -0.000204\n", - " 0.001523\n", - " -0.000089\n", - " 0.001411\n", - " 0.001693\n", - " -0.002300\n", - " 0.002855\n", - " 0.003686\n", - " -0.004290\n", - " 0.002193\n", - " -0.000018\n", - " 0.007927\n", - " 0.007131\n", - " -0.000248\n", - " -0.004430\n", + " 0.001775\n", + " 0.004433\n", + " 0.001241\n", + " -0.002806\n", + " -0.005931\n", + " -0.001400\n", + " -0.002919\n", + " 0.006406\n", + " -0.006651\n", + " -0.002855\n", + " 0.004204\n", + " -0.002575\n", + " 0.003172\n", + " 0.000578\n", + " -0.006489\n", + " -0.006705\n", + " -0.003444\n", + " -0.000166\n", + " 0.004815\n", + " -0.002209\n", + " -0.001280\n", + " -0.000847\n", + " 0.005033\n", + " -0.005521\n", + " 0.000037\n", + " -0.003663\n", + " -0.000076\n", + " 0.004578\n", + " 0.004613\n", + " 0.000661\n", + " -0.006340\n", " \n", " \n", " std\n", - " 1.000385\n", - " 1.006537\n", - " 1.007879\n", - " 1.002691\n", - " 0.998352\n", - " 0.977345\n", - " 0.988527\n", - " 0.975298\n", - " 1.034587\n", - " 1.004195\n", - " 1.009693\n", - " 1.004434\n", - " 1.004500\n", - " 1.003919\n", - " 1.017096\n", - " 1.004656\n", - " 1.003138\n", - " 1.009169\n", - " 1.002851\n", - " 1.002939\n", - " 1.016711\n", - " 1.023205\n", - " 1.004267\n", - " 0.959885\n", - " 0.995348\n", - " 1.000985\n", - " 0.998108\n", - " 0.992669\n", - " 1.037432\n", - " 1.000572\n", - " 0.950798\n", + " 1.001101\n", + " 0.994830\n", + " 0.996210\n", + " 0.986656\n", + " 0.997242\n", + " 0.977614\n", + " 0.990565\n", + " 0.969458\n", + " 1.003326\n", + " 1.001119\n", + " 0.994826\n", + " 0.993596\n", + " 0.989928\n", + " 1.002852\n", + " 0.998493\n", + " 1.001920\n", + " 0.997151\n", + " 0.993978\n", + " 1.000924\n", + " 0.996003\n", + " 0.992029\n", + " 1.008943\n", + " 1.002597\n", + " 0.982256\n", + " 0.995826\n", + " 1.004384\n", + " 1.002220\n", + " 0.984900\n", + " 0.990007\n", + " 0.982990\n", + " 0.928776\n", " \n", " \n", " min\n", " -1.996369\n", " -21.406457\n", - " -38.360304\n", - " -21.404182\n", - " -3.927001\n", + " -36.616183\n", + " -21.741294\n", + " -3.955598\n", " -23.251009\n", - " -12.971939\n", - " -25.677076\n", - " -61.302416\n", - " -8.630238\n", - " -19.239745\n", - " -4.026853\n", - " -17.196652\n", - " -5.819382\n", - " -19.186497\n", - " -4.797586\n", - " -16.125316\n", - " -28.279819\n", - " -11.332636\n", - " -8.861386\n", - " -30.673398\n", - " -47.418984\n", - " -15.065620\n", - " -42.324134\n", - " -4.636193\n", - " -13.477995\n", - " -5.255470\n", - " -55.906498\n", - " -35.478611\n", + " -15.009219\n", + " -25.218244\n", + " -42.215404\n", + " -8.613050\n", + " -20.376630\n", + " -4.587901\n", + " -17.783345\n", + " -4.027674\n", + " -20.044245\n", + " -4.397796\n", + " -15.478720\n", + " -29.626400\n", + " -11.081002\n", + " -8.523283\n", + " -29.624863\n", + " -31.162149\n", + " -13.089986\n", + " -36.151218\n", + " -4.566222\n", + " -13.584545\n", + " -5.401088\n", + " -24.515479\n", + " -24.804228\n", " -0.353229\n", " -0.046062\n", " \n", " \n", " 25%\n", - " -0.856021\n", - " -0.472942\n", - " -0.366656\n", - " -0.585138\n", - " -0.597622\n", - " -0.508522\n", - " -0.576883\n", - " -0.448482\n", - " -0.173143\n", - " -0.590320\n", - " -0.492822\n", - " -0.750437\n", - " -0.406913\n", - " -0.647891\n", - " -0.445573\n", - " -0.642237\n", - " -0.536930\n", - " -0.566836\n", - " -0.595161\n", - " -0.557570\n", - " -0.272606\n", - " -0.310118\n", - " -0.745583\n", - " -0.259064\n", - " -0.590843\n", - " -0.604940\n", - " -0.677063\n", - " -0.174297\n", - " -0.158592\n", - " -0.330280\n", + " -0.860612\n", + " -0.462792\n", + " -0.359678\n", + " -0.591207\n", + " -0.601024\n", + " -0.506230\n", + " -0.580421\n", + " -0.444144\n", + " -0.176127\n", + " -0.589594\n", + " -0.490031\n", + " -0.745758\n", + " -0.406042\n", + " -0.655290\n", + " -0.451371\n", + " -0.643494\n", + " -0.540564\n", + " -0.571829\n", + " -0.589950\n", + " -0.563178\n", + " -0.274852\n", + " -0.310767\n", + " -0.747075\n", + " -0.258595\n", + " -0.588752\n", + " -0.612822\n", + " -0.679188\n", + " -0.174095\n", + " -0.159881\n", + " -0.331279\n", " -0.046062\n", " \n", " \n", " 50%\n", - " -0.217462\n", - " 0.014133\n", - " 0.036854\n", - " 0.118945\n", - " -0.014677\n", - " -0.045092\n", - " -0.206683\n", - " 0.029832\n", - " 0.018708\n", - " -0.044567\n", - " -0.083744\n", - " -0.037589\n", - " 0.139974\n", - " -0.006722\n", - " 0.053213\n", - " 0.056163\n", - " 0.074026\n", - " -0.076685\n", - " -0.004712\n", - " 0.001053\n", - " -0.080358\n", - " -0.039791\n", - " 0.008516\n", - " -0.017514\n", - " 0.061571\n", - " 0.042715\n", - " -0.111943\n", - " 0.003774\n", - " 0.034889\n", - " -0.262472\n", + " -0.205438\n", + " 0.009624\n", + " 0.041337\n", + " 0.114507\n", + " -0.018562\n", + " -0.039359\n", + " -0.208009\n", + " 0.034818\n", + " 0.015724\n", + " -0.047991\n", + " -0.084941\n", + " -0.033111\n", + " 0.140522\n", + " -0.010926\n", + " 0.049060\n", + " 0.045656\n", + " 0.072575\n", + " -0.081757\n", + " -0.001062\n", + " -0.000870\n", + " -0.081319\n", + " -0.039553\n", + " 0.015440\n", + " -0.019763\n", + " 0.066587\n", + " 0.028921\n", + " -0.108500\n", + " 0.004913\n", + " 0.035269\n", + " -0.264951\n", " -0.046062\n", " \n", " \n", " 75%\n", - " 0.934320\n", - " 0.673028\n", - " 0.482594\n", - " 0.671589\n", - " 0.523343\n", - " 0.435323\n", - " 0.300665\n", - " 0.456326\n", - " 0.275194\n", - " 0.542193\n", - " 0.421564\n", - " 0.718128\n", - " 0.616078\n", - " 0.671850\n", - " 0.516948\n", - " 0.718100\n", - " 0.596353\n", - " 0.474466\n", - " 0.600518\n", - " 0.564201\n", - " 0.172891\n", - " 0.256410\n", - " 0.736106\n", - " 0.236828\n", - " 0.721614\n", - " 0.670631\n", - " 0.503737\n", - " 0.226841\n", - " 0.239133\n", + " 0.937963\n", + " 0.671790\n", + " 0.486854\n", + " 0.671008\n", + " 0.521349\n", + " 0.443249\n", + " 0.298778\n", + " 0.468235\n", + " 0.270448\n", + " 0.538766\n", + " 0.422601\n", + " 0.719480\n", + " 0.622925\n", + " 0.673880\n", + " 0.511166\n", + " 0.703773\n", + " 0.591952\n", + " 0.474241\n", + " 0.600049\n", + " 0.563023\n", + " 0.172138\n", + " 0.254958\n", + " 0.739301\n", + " 0.235829\n", + " 0.730778\n", + " 0.673369\n", + " 0.502075\n", + " 0.227578\n", + " 0.240531\n", " -0.041379\n", " -0.046062\n", " \n", " \n", " max\n", - " 1.641971\n", - " 1.234904\n", - " 10.858389\n", - " 6.187982\n", - " 11.805854\n", - " 20.660446\n", + " 1.641507\n", + " 1.253349\n", + " 11.011647\n", + " 2.705162\n", + " 11.918722\n", + " 20.838790\n", " 16.057594\n", " 27.728845\n", - " 16.400322\n", - " 14.194920\n", - " 21.807541\n", - " 11.000614\n", - " 7.854665\n", - " 4.490789\n", - " 10.981446\n", + " 16.049132\n", + " 8.117551\n", + " 14.080677\n", + " 11.775017\n", + " 4.476496\n", + " 4.486616\n", + " 8.089541\n", " 6.249731\n", " 7.352670\n", - " 10.052776\n", - " 6.014331\n", - " 6.845007\n", - " 51.134550\n", + " 9.293592\n", + " 5.622204\n", + " 5.792269\n", + " 49.443471\n", " 37.034649\n", - " 14.473016\n", - " 29.408551\n", - " 6.518749\n", + " 9.988628\n", + " 27.700472\n", + " 6.628356\n", " 14.425293\n", - " 6.467055\n", - " 25.110955\n", + " 6.468519\n", + " 26.033296\n", " 68.528383\n", - " 78.235134\n", + " 75.250448\n", " 21.709793\n", " \n", " \n", @@ -2388,68 +2388,68 @@ "text/plain": [ " Time V1 V2 V3 V4 \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean -0.004768 0.001993 0.002366 -0.000931 0.000704 \n", - "std 1.000385 1.006537 1.007879 1.002691 0.998352 \n", - "min -1.996369 -21.406457 -38.360304 -21.404182 -3.927001 \n", - "25% -0.856021 -0.472942 -0.366656 -0.585138 -0.597622 \n", - "50% -0.217462 0.014133 0.036854 0.118945 -0.014677 \n", - "75% 0.934320 0.673028 0.482594 0.671589 0.523343 \n", - "max 1.641971 1.234904 10.858389 6.187982 11.805854 \n", + "mean 0.001775 0.004433 0.001241 -0.002806 -0.005931 \n", + "std 1.001101 0.994830 0.996210 0.986656 0.997242 \n", + "min -1.996369 -21.406457 -36.616183 -21.741294 -3.955598 \n", + "25% -0.860612 -0.462792 -0.359678 -0.591207 -0.601024 \n", + "50% -0.205438 0.009624 0.041337 0.114507 -0.018562 \n", + "75% 0.937963 0.671790 0.486854 0.671008 0.521349 \n", + "max 1.641507 1.253349 11.011647 2.705162 11.918722 \n", "\n", " V5 V6 V7 V8 V9 \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean -0.007082 0.000202 -0.003762 -0.002018 -0.001879 \n", - "std 0.977345 0.988527 0.975298 1.034587 1.004195 \n", - "min -23.251009 -12.971939 -25.677076 -61.302416 -8.630238 \n", - "25% -0.508522 -0.576883 -0.448482 -0.173143 -0.590320 \n", - "50% -0.045092 -0.206683 0.029832 0.018708 -0.044567 \n", - "75% 0.435323 0.300665 0.456326 0.275194 0.542193 \n", - "max 20.660446 16.057594 27.728845 16.400322 14.194920 \n", + "mean -0.001400 -0.002919 0.006406 -0.006651 -0.002855 \n", + "std 0.977614 0.990565 0.969458 1.003326 1.001119 \n", + "min -23.251009 -15.009219 -25.218244 -42.215404 -8.613050 \n", + "25% -0.506230 -0.580421 -0.444144 -0.176127 -0.589594 \n", + "50% -0.039359 -0.208009 0.034818 0.015724 -0.047991 \n", + "75% 0.443249 0.298778 0.468235 0.270448 0.538766 \n", + "max 20.838790 16.057594 27.728845 16.049132 8.117551 \n", "\n", " V10 V11 V12 V13 V14 \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean 0.000481 -0.003350 -0.001521 0.005754 -0.000489 \n", - "std 1.009693 1.004434 1.004500 1.003919 1.017096 \n", - "min -19.239745 -4.026853 -17.196652 -5.819382 -19.186497 \n", - "25% -0.492822 -0.750437 -0.406913 -0.647891 -0.445573 \n", - "50% -0.083744 -0.037589 0.139974 -0.006722 0.053213 \n", - "75% 0.421564 0.718128 0.616078 0.671850 0.516948 \n", - "max 21.807541 11.000614 7.854665 4.490789 10.981446 \n", + "mean 0.004204 -0.002575 0.003172 0.000578 -0.006489 \n", + "std 0.994826 0.993596 0.989928 1.002852 0.998493 \n", + "min -20.376630 -4.587901 -17.783345 -4.027674 -20.044245 \n", + "25% -0.490031 -0.745758 -0.406042 -0.655290 -0.451371 \n", + "50% -0.084941 -0.033111 0.140522 -0.010926 0.049060 \n", + "75% 0.422601 0.719480 0.622925 0.673880 0.511166 \n", + "max 14.080677 11.775017 4.476496 4.486616 8.089541 \n", "\n", " V15 V16 V17 V18 V19 \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean 0.002001 -0.000204 0.001523 -0.000089 0.001411 \n", - "std 1.004656 1.003138 1.009169 1.002851 1.002939 \n", - "min -4.797586 -16.125316 -28.279819 -11.332636 -8.861386 \n", - "25% -0.642237 -0.536930 -0.566836 -0.595161 -0.557570 \n", - "50% 0.056163 0.074026 -0.076685 -0.004712 0.001053 \n", - "75% 0.718100 0.596353 0.474466 0.600518 0.564201 \n", - "max 6.249731 7.352670 10.052776 6.014331 6.845007 \n", + "mean -0.006705 -0.003444 -0.000166 0.004815 -0.002209 \n", + "std 1.001920 0.997151 0.993978 1.000924 0.996003 \n", + "min -4.397796 -15.478720 -29.626400 -11.081002 -8.523283 \n", + "25% -0.643494 -0.540564 -0.571829 -0.589950 -0.563178 \n", + "50% 0.045656 0.072575 -0.081757 -0.001062 -0.000870 \n", + "75% 0.703773 0.591952 0.474241 0.600049 0.563023 \n", + "max 6.249731 7.352670 9.293592 5.622204 5.792269 \n", "\n", " V20 V21 V22 V23 V24 \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean 0.001693 -0.002300 0.002855 0.003686 -0.004290 \n", - "std 1.016711 1.023205 1.004267 0.959885 0.995348 \n", - "min -30.673398 -47.418984 -15.065620 -42.324134 -4.636193 \n", - "25% -0.272606 -0.310118 -0.745583 -0.259064 -0.590843 \n", - "50% -0.080358 -0.039791 0.008516 -0.017514 0.061571 \n", - "75% 0.172891 0.256410 0.736106 0.236828 0.721614 \n", - "max 51.134550 37.034649 14.473016 29.408551 6.518749 \n", + "mean -0.001280 -0.000847 0.005033 -0.005521 0.000037 \n", + "std 0.992029 1.008943 1.002597 0.982256 0.995826 \n", + "min -29.624863 -31.162149 -13.089986 -36.151218 -4.566222 \n", + "25% -0.274852 -0.310767 -0.747075 -0.258595 -0.588752 \n", + "50% -0.081319 -0.039553 0.015440 -0.019763 0.066587 \n", + "75% 0.172138 0.254958 0.739301 0.235829 0.730778 \n", + "max 49.443471 37.034649 9.988628 27.700472 6.628356 \n", "\n", " V25 V26 V27 V28 Amount \\\n", "count 56961.000000 56961.000000 56961.000000 56961.000000 56961.000000 \n", - "mean 0.002193 -0.000018 0.007927 0.007131 -0.000248 \n", - "std 1.000985 0.998108 0.992669 1.037432 1.000572 \n", - "min -13.477995 -5.255470 -55.906498 -35.478611 -0.353229 \n", - "25% -0.604940 -0.677063 -0.174297 -0.158592 -0.330280 \n", - "50% 0.042715 -0.111943 0.003774 0.034889 -0.262472 \n", - "75% 0.670631 0.503737 0.226841 0.239133 -0.041379 \n", - "max 14.425293 6.467055 25.110955 68.528383 78.235134 \n", + "mean -0.003663 -0.000076 0.004578 0.004613 0.000661 \n", + "std 1.004384 1.002220 0.984900 0.990007 0.982990 \n", + "min -13.584545 -5.401088 -24.515479 -24.804228 -0.353229 \n", + "25% -0.612822 -0.679188 -0.174095 -0.159881 -0.331279 \n", + "50% 0.028921 -0.108500 0.004913 0.035269 -0.264951 \n", + "75% 0.673369 0.502075 0.227578 0.240531 -0.041379 \n", + "max 14.425293 6.468519 26.033296 68.528383 75.250448 \n", "\n", " Amount_max_fraud \n", "count 56961.000000 \n", - "mean -0.004430 \n", - "std 0.950798 \n", + "mean -0.006340 \n", + "std 0.928776 \n", "min -0.046062 \n", "25% -0.046062 \n", "50% -0.046062 \n", @@ -2545,7 +2545,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 35, "metadata": { "_cell_guid": "b764085a-53cb-44b1-82f5-e1e55a006189", "_uuid": "90f9779d5395f8251c9fda66f04bbd478de7013d" @@ -2569,7 +2569,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 36, "metadata": { "_cell_guid": "f65afcbb-8b50-4341-ab1f-7e0c123228ac", "_uuid": "b705e2acc952ec62a1bd4ba471c832f71153d9e0" @@ -2607,7 +2607,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 37, "metadata": { "_cell_guid": "5f23426d-1a1f-444b-b283-d49e209fadfb", "_uuid": "19d65b6f8a52be7ed465746c8c5782f3af94b45f" @@ -2625,7 +2625,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 38, "metadata": { "_cell_guid": "7d907d74-1a9f-4846-8a28-36317e9f0c4e", "_uuid": "421e4fa26c569fedc5240bb3bdddd8f3e2f93aff" @@ -2645,7 +2645,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 40, "metadata": { "_cell_guid": "3f0b796a-8454-4cc9-b5ec-3075b9565bc3", "_uuid": "825805efc899b013c6bf7eaebdf10a68aee89d1a", @@ -2656,39 +2656,31 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch: 0 Acc = 0.97385 Cost = 74900.29688 Valid_Acc = 0.97560 Valid_Cost = 8298.27441\n", - "Epoch: 5 Acc = 0.98792 Cost = 62739.53906 Valid_Acc = 0.98866 Valid_Cost = 8505.66211\n", - "Epoch: 10 Acc = 0.98640 Cost = 56056.46875 Valid_Acc = 0.98757 Valid_Cost = 9226.98047\n", - "Epoch: 15 Acc = 0.98759 Cost = 45483.69141 Valid_Acc = 0.98848 Valid_Cost = 11663.91504\n", - "Epoch: 20 Acc = 0.99055 Cost = 41097.17188 Valid_Acc = 0.99070 Valid_Cost = 17758.85156\n", - "Epoch: 25 Acc = 0.99403 Cost = 39547.51172 Valid_Acc = 0.99368 Valid_Cost = 25988.91211\n", - "Epoch: 30 Acc = 0.99438 Cost = 33360.22656 Valid_Acc = 0.99414 Valid_Cost = 33413.13281\n" - ] - }, - { - "ename": "ValueError", - "evalue": "Parent directory of model_not_overfitted doesn't exist, can't save.", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1277\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1278\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1279\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[1;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[0;32m 1262\u001b[0m return self._call_tf_sessionrun(\n\u001b[1;32m-> 1263\u001b[1;33m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[0;32m 1264\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[1;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[0;32m 1349\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1350\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1351\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNotFoundError\u001b[0m: Failed to create a directory: ; No such file or directory\n\t [[Node: save_5/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_save_5/Const_0_0, save_5/SaveV2/tensor_names, save_5/SaveV2/shape_and_slices, Variable, Variable/Adam, Variable/Adam_1, Variable_1, Variable_1/Adam, Variable_1/Adam_1, Variable_10, Variable_10/Adam, Variable_10/Adam_1, Variable_11, Variable_11/Adam, Variable_11/Adam_1, Variable_12, Variable_12/Adam, Variable_12/Adam_1, Variable_13, Variable_13/Adam, Variable_13/Adam_1, Variable_14, Variable_14/Adam, Variable_14/Adam_1, Variable_15, Variable_15/Adam, Variable_15/Adam_1, Variable_2, Variable_2/Adam, Variable_2/Adam_1, Variable_3, Variable_3/Adam, Variable_3/Adam_1, Variable_4, Variable_4/Adam, Variable_4/Adam_1, Variable_5, Variable_5/Adam, Variable_5/Adam_1, Variable_6, Variable_6/Adam, Variable_6/Adam_1, Variable_7, Variable_7/Adam, Variable_7/Adam_1, Variable_8, Variable_8/Adam, Variable_8/Adam_1, Variable_9, Variable_9/Adam, Variable_9/Adam_1, beta1_power, beta1_power_1, beta2_power, beta2_power_1)]]", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\u001b[0m in \u001b[0;36msave\u001b[1;34m(self, sess, save_path, global_step, latest_filename, meta_graph_suffix, write_meta_graph, write_state, strip_default_attrs)\u001b[0m\n\u001b[0;32m 1619\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msaver_def\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msave_tensor_name\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1620\u001b[1;33m {self.saver_def.filename_tensor_name: checkpoint_file})\n\u001b[0m\u001b[0;32m 1621\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 876\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[1;32m--> 877\u001b[1;33m run_metadata_ptr)\n\u001b[0m\u001b[0;32m 878\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run\u001b[1;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1099\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[1;32m-> 1100\u001b[1;33m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[0;32m 1101\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_run\u001b[1;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1271\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[1;32m-> 1272\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1273\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1290\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1291\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnode_def\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mop\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmessage\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1292\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNotFoundError\u001b[0m: Failed to create a directory: ; No such file or directory\n\t [[Node: save_5/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_save_5/Const_0_0, save_5/SaveV2/tensor_names, save_5/SaveV2/shape_and_slices, Variable, Variable/Adam, Variable/Adam_1, Variable_1, Variable_1/Adam, Variable_1/Adam_1, Variable_10, Variable_10/Adam, Variable_10/Adam_1, Variable_11, Variable_11/Adam, Variable_11/Adam_1, Variable_12, Variable_12/Adam, Variable_12/Adam_1, Variable_13, Variable_13/Adam, Variable_13/Adam_1, Variable_14, Variable_14/Adam, Variable_14/Adam_1, Variable_15, Variable_15/Adam, Variable_15/Adam_1, Variable_2, Variable_2/Adam, Variable_2/Adam_1, Variable_3, Variable_3/Adam, Variable_3/Adam_1, Variable_4, Variable_4/Adam, Variable_4/Adam_1, Variable_5, Variable_5/Adam, Variable_5/Adam_1, Variable_6, Variable_6/Adam, Variable_6/Adam_1, Variable_7, Variable_7/Adam, Variable_7/Adam_1, Variable_8, Variable_8/Adam, Variable_8/Adam_1, Variable_9, Variable_9/Adam, Variable_9/Adam_1, beta1_power, beta1_power_1, beta2_power, beta2_power_1)]]\n\nCaused by op 'save_5/SaveV2', defined at:\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n app.start()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 497, in start\n self.io_loop.start()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\asyncio\\base_events.py\", line 422, in run_forever\n self._run_once()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\asyncio\\base_events.py\", line 1434, in _run_once\n handle._run()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\asyncio\\events.py\", line 145, in _run\n self._callback(*self._args)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 122, in _handle_events\n handler_func(fileobj, events)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tornado\\stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\zmq\\eventloop\\zmqstream.py\", line 450, in _handle_events\n self._handle_recv()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\zmq\\eventloop\\zmqstream.py\", line 480, in _handle_recv\n self._run_callback(callback, msg)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\zmq\\eventloop\\zmqstream.py\", line 432, in _run_callback\n callback(*args, **kwargs)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tornado\\stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 283, in dispatcher\n return self.dispatch_shell(stream, msg)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 233, in dispatch_shell\n handler(stream, idents, msg)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 399, in execute_request\n user_expressions, allow_stdin)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 208, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 537, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2662, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2785, in _run_cell\n interactivity=interactivity, compiler=compiler, result=result)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2901, in run_ast_nodes\n if self.run_code(code, result):\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2961, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 15, in \n saver = tf.train.Saver(max_to_keep=1)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 1281, in __init__\n self.build()\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 1293, in build\n self._build(self._filename, build_save=True, build_restore=True)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 1330, in _build\n build_save=build_save, build_restore=build_restore)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 775, in _build_internal\n save_tensor = self._AddSaveOps(filename_tensor, saveables)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 275, in _AddSaveOps\n save = self.save_op(filename_tensor, saveables)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\", line 193, in save_op\n tensors)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\ops\\gen_io_ops.py\", line 1686, in save_v2\n shape_and_slices=shape_and_slices, tensors=tensors, name=name)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py\", line 787, in _apply_op_helper\n op_def=op_def)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 3155, in create_op\n op_def=op_def)\n File \"C:\\Users\\pmon2\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nNotFoundError (see above for traceback): Failed to create a directory: ; No such file or directory\n\t [[Node: save_5/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_save_5/Const_0_0, save_5/SaveV2/tensor_names, save_5/SaveV2/shape_and_slices, Variable, Variable/Adam, Variable/Adam_1, Variable_1, Variable_1/Adam, Variable_1/Adam_1, Variable_10, Variable_10/Adam, Variable_10/Adam_1, Variable_11, Variable_11/Adam, Variable_11/Adam_1, Variable_12, Variable_12/Adam, Variable_12/Adam_1, Variable_13, Variable_13/Adam, Variable_13/Adam_1, Variable_14, Variable_14/Adam, Variable_14/Adam_1, Variable_15, Variable_15/Adam, Variable_15/Adam_1, Variable_2, Variable_2/Adam, Variable_2/Adam_1, Variable_3, Variable_3/Adam, Variable_3/Adam_1, Variable_4, Variable_4/Adam, Variable_4/Adam_1, Variable_5, Variable_5/Adam, Variable_5/Adam_1, Variable_6, Variable_6/Adam, Variable_6/Adam_1, Variable_7, Variable_7/Adam, Variable_7/Adam_1, Variable_8, Variable_8/Adam, Variable_8/Adam_1, Variable_9, Variable_9/Adam, Variable_9/Adam_1, beta1_power, beta1_power_1, beta2_power, beta2_power_1)]]\n", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mnewCost\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mvalid_newCost\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0msave_flag\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0msave_flag\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m \u001b[0msave_path\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msaver\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msave\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"model_not_overfitted\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 55\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"The save path not overfitted :\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msave_path\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 56\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\u001b[0m in \u001b[0;36msave\u001b[1;34m(self, sess, save_path, global_step, latest_filename, meta_graph_suffix, write_meta_graph, write_state, strip_default_attrs)\u001b[0m\n\u001b[0;32m 1635\u001b[0m \"Parent directory of {} doesn't exist, can't save.\".format(\n\u001b[0;32m 1636\u001b[0m save_path))\n\u001b[1;32m-> 1637\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1638\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1639\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mwrite_meta_graph\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: Parent directory of model_not_overfitted doesn't exist, can't save." + "Epoch: 0 Acc = 0.93682 Cost = 72292.81250 Valid_Acc = 0.93725 Valid_Cost = 8597.14648\n", + "Epoch: 5 Acc = 0.93256 Cost = 59755.20703 Valid_Acc = 0.93174 Valid_Cost = 7915.83301\n", + "Epoch: 10 Acc = 0.93574 Cost = 53739.06250 Valid_Acc = 0.93490 Valid_Cost = 7608.52051\n", + "Epoch: 15 Acc = 0.95158 Cost = 42080.82031 Valid_Acc = 0.95004 Valid_Cost = 7097.75000\n", + "Epoch: 20 Acc = 0.96637 Cost = 31364.65234 Valid_Acc = 0.96545 Valid_Cost = 6864.34570\n", + "Epoch: 25 Acc = 0.98125 Cost = 21488.47266 Valid_Acc = 0.97978 Valid_Cost = 7460.70605\n", + "Epoch: 30 Acc = 0.98849 Cost = 14415.88770 Valid_Acc = 0.98785 Valid_Cost = 8910.00977\n", + "Epoch: 35 Acc = 0.98893 Cost = 13119.75000 Valid_Acc = 0.98820 Valid_Cost = 11685.54688\n", + "Epoch: 40 Acc = 0.98359 Cost = 12100.78711 Valid_Acc = 0.98227 Valid_Cost = 11338.14648\n", + "Epoch: 45 Acc = 0.98684 Cost = 10194.38477 Valid_Acc = 0.98617 Valid_Cost = 12333.08691\n", + "Epoch: 50 Acc = 0.95153 Cost = 30340.25000 Valid_Acc = 0.94993 Valid_Cost = 12908.94727\n", + "Epoch: 55 Acc = 0.99233 Cost = 6217.56738 Valid_Acc = 0.99122 Valid_Cost = 18185.65234\n", + "Epoch: 60 Acc = 0.98603 Cost = 10973.65039 Valid_Acc = 0.98490 Valid_Cost = 22597.33984\n", + "Epoch: 65 Acc = 0.99398 Cost = 5309.19678 Valid_Acc = 0.99333 Valid_Cost = 24412.04297\n", + "Epoch: 70 Acc = 0.99533 Cost = 4424.54004 Valid_Acc = 0.99438 Valid_Cost = 33113.28516\n", + "Epoch: 75 Acc = 0.98873 Cost = 9013.62500 Valid_Acc = 0.98718 Valid_Cost = 20797.70117\n", + "Epoch: 80 Acc = 0.99629 Cost = 3814.94922 Valid_Acc = 0.99551 Valid_Cost = 32202.07227\n", + "Epoch: 85 Acc = 0.99641 Cost = 3504.27686 Valid_Acc = 0.99547 Valid_Cost = 39097.82812\n", + "Epoch: 90 Acc = 0.99131 Cost = 6182.81982 Valid_Acc = 0.98978 Valid_Cost = 30556.54883\n", + "Epoch: 95 Acc = 0.97816 Cost = 17193.08203 Valid_Acc = 0.97647 Valid_Cost = 24212.60938\n", + "Epoch: 100 Acc = 0.99717 Cost = 2946.98804 Valid_Acc = 0.99614 Valid_Cost = 41408.02344\n", + "\n", + "Optimization Finished!\n", + "\n", + "save path : ./model/model.ckpt\n" ] } ], @@ -2700,16 +2692,16 @@ "stop_early = 0 # To keep track of the number of epochs before early stopping\n", "\n", "\n", + "# Save the best weights so that they can be used to make the final predictions\n", + "save_flag = True\n", + "saver = tf.train.Saver()\n", + "model_path_name = './model/model.ckpt'\n", + "\n", "\n", "# Initialize variables and tensorflow session\n", "with tf.Session() as sess:\n", " sess.run(tf.global_variables_initializer())\n", " \n", - " # Save the best weights so that they can be used to make the final predictions\n", - " checkpoint = \"best_model.ckpt\"\n", - " saver = tf.train.Saver(max_to_keep=1)\n", - " save_flag = True\n", - " \n", " for epoch in range(training_epochs): \n", " for batch in range(int(n_samples/batch_size)):\n", " batch_x = inputX[batch*batch_size : (1+batch)*batch_size]\n", @@ -2744,36 +2736,20 @@ " stop_early = 0\n", " \n", " # save not overfit & best accuracy model\n", + " '''\n", " if newCost < valid_newCost and save_flag:\n", " save_flag = False\n", " save_path = saver.save(sess, \"model_not_overfitted\")\n", " print(\"The save path not overfitted :\", save_path)\n", - " \n", + " '''\n", " print()\n", " print(\"Optimization Finished!\")\n", " print()\n", " \n", - " save_path = saver.save(sess, \"model_test\")\n", + " save_path = saver.save(sess, model_path_name)\n", " print(\"save path :\", save_path)" ] }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "print(saver)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -2785,7 +2761,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "metadata": { "_cell_guid": "c04813ad-3bbb-45c5-8098-06a78605d7b2", "_uuid": "2cc553c14ddcfcee1e3f833238da31fa18688c1e" @@ -2793,7 +2769,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -2831,22 +2807,18 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 42, "metadata": { "_cell_guid": "362ce01d-2582-47ea-9c04-3f2eb71dd87b", "_uuid": "a37daaf1fe266f2ee7840d08b9406bfa1b9ee841" }, "outputs": [ { - "ename": "ValueError", - "evalue": "The passed save_path is not a valid checkpoint: best_model.ckpt", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m# Load the best weights\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0msaver\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrestore\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheckpoint\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m testing_predictions, testing_accuracy = sess.run([predicted, accuracy], \n\u001b[0;32m 6\u001b[0m feed_dict={x: inputX_test, y_:inputY_test, pkeep: 1})\n", - "\u001b[1;32m~\\Anaconda3\\envs\\practice\\lib\\site-packages\\tensorflow\\python\\training\\saver.py\u001b[0m in \u001b[0;36mrestore\u001b[1;34m(self, sess, save_path)\u001b[0m\n\u001b[0;32m 1715\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mcheckpoint_exists\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcompat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msave_path\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1716\u001b[0m raise ValueError(\"The passed save_path is not a valid checkpoint: \"\n\u001b[1;32m-> 1717\u001b[1;33m + compat.as_text(save_path))\n\u001b[0m\u001b[0;32m 1718\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1719\u001b[0m \u001b[0mlogging\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Restoring parameters from %s\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcompat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msave_path\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: The passed save_path is not a valid checkpoint: best_model.ckpt" + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Restoring parameters from ./model/model.ckpt\n", + "Testing Accuracy = 0.9968049\n" ] } ], @@ -2854,12 +2826,19 @@ "predicted = tf.argmax(y, 1)\n", "with tf.Session() as sess: \n", " # Load the best weights\n", - " saver.restore(sess, checkpoint)\n", + " saver.restore(sess, model_path_name)\n", " testing_predictions, testing_accuracy = sess.run([predicted, accuracy], \n", " feed_dict={x: inputX_test, y_:inputY_test, pkeep: 1})\n", " print(\"Testing Accuracy =\", testing_accuracy)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "최종 저장되었던 모델을 불러와 **Test 셋으로 99.68% 의 정확도를 얻을 수 있습니다.**" + ] + }, { "cell_type": "markdown", "metadata": { @@ -2867,8 +2846,6 @@ "_uuid": "09dbb6a1dbb178b242f9f2834f8deb390590c0f1" }, "source": [ - "**We have obtained 99.46% acuracy on the test dataset!**\n", - "\n", "## 2.2 Train Neural Net with Keras\n", "\n", "Below I am implementing a similar NN with Keras starting from the original dataset and based on the understanding in EDA above.\n",