Skip to content

Instantly share code, notes, and snippets.

@farbodab
Created May 22, 2018 20:02
Show Gist options
  • Save farbodab/117097619c7dbc84fbc412b3744bd445 to your computer and use it in GitHub Desktop.
Save farbodab/117097619c7dbc84fbc412b3744bd445 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Put these at the top of every notebook, to get automatic reloading and inline plotting\n%reload_ext autoreload\n%autoreload 2\n%matplotlib inline",
"execution_count": 42,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# This file contains all the main external libs we'll use\nfrom fastai.imports import *",
"execution_count": 43,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from fastai.conv_learner import *",
"execution_count": 44,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "PATH = \"data/afdb_p_n/\"",
"execution_count": 45,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "os.listdir(PATH)",
"execution_count": 46,
"outputs": [
{
"data": {
"text/plain": "['.ipynb_checkpoints',\n 'NORMAL',\n 'models',\n 'train.csv',\n 'test.csv',\n 'SWT',\n 'tmp',\n 'STFT']"
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "files = os.listdir(f'{PATH}NORMAL')[:5]",
"execution_count": 62,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "img = plt.imread(f'{PATH}NORMAL/{files[0]}')\nplt.imshow(img);",
"execution_count": 63,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAD8CAYAAAB+fLH0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXucJVV1qL+1q+qc7p4H82DAAUFARwW8igQJSQzxEYWY3KBRczGJco0RzdUkBkMEja+oiZobTWKuJj4w+AajUWKIBPEZoyIIQRBRRN7DzDCvfp1H1d7r/rF3nT7VzKN7pptpYH2/X/epU6dO1d51dq299tpr7SWqimEYRo070AUwDGNpYULBMIwGJhQMw2hgQsEwjAYmFAzDaGBCwTCMBosmFETkdBG5SURuFpHzFus6hmEsLLIYfgoikgE/Ap4B3Al8F3iBqv5gwS9mGMaCsliawsnAzap6i6r2gU8BZyzStQzDWEDyRTrv4cAdQ+/vBH52dwcffPDBetRRRy1SUQzDALj66qvvVdV1eztusYSC7GJfY5wiImcDZwMceeSRXHXVVYtUFMMwAETktrkct1jDhzuBI4bePxy4e/gAVX2/qp6kqietW7dX4WUYxv3EYgmF7wIbRORoEWkBZwKXLNK1DMNYQBZl+KCqlYi8ErgMyIALVPWGxbiWYRgLy2LZFFDVS4FLF+v8hmEsDubRaBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEaD/VrNWURuBSYAD1SqepKIrAEuAo4CbgV+U1W3718xDcO4v1gITeGpqnqCqp6U3p8HXKGqG4Ar0nvDMB4gLMbw4QzgwrR9IfDsRbiGYRiLxP4KBQX+Q0SuTgljAQ5V1Y0A6fWQ/byGYRj3I/ubIeoXVPVuETkEuFxEfjjXL87OOm0YxtJgvzQFVb07vW4G/gU4GdgkIusB0uvm3XzXsk4bxhJkn4WCiCwTkRX1NvBM4Hpidumz0mFnAZ/f30IahnH/sT/Dh0OBfxGR+jyfUNUvish3gYtF5CXA7cDz97+YhmHcX+yzUFDVW4An7GL/VuDp+1MowzAOHObRaBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTTYq1AQkQtEZLOIXD+0b42IXC4iP06vq9N+EZG/E5GbReQ6ETlxMQtvGMbCMxdN4Z+A02ft2126+V8BNqS/s4H3LUwxDcO4v9irUFDVrwPbZu3eXbr5M4CPaOTbwKo6r6RhGA8M9tWmsLt084cDdwwdd2fadx9E5GwRuUpErtqyZcs+FsMwjIVmoQ2Nsot9uqsDLeu0YSxN9lUo7C7d/J3AEUPHPRy4e9+LZxjG/c2+CoXdpZu/BHhRmoU4BdhZDzMMw3hgsNes0yLySeApwMEicifwRuDt7Drd/KXAs4CbgWngxYtQZsMwFpG9CgVVfcFuPrpPunlVVeAV+1sowzAOHObRaBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCkuSgBLwEFej8PHVA54ABNCw4NdEw2D1Cx38Y6YcC31JY0liQmEpog6pfxoh/kqD5WscaPpbUBwIqCRhNCgLZAoq4F21wNc0liImFJYi2txUmbV81S7Xstr/S2pqDgMZJGEgjExJeOiw19Bp4wCQHsT4iAaE+NC6Ye1hgQmAS9dC62t4IOAlJ1v4SxpLFNMUliCVRgVe1CMK+IBoek+ImsMCCwZHQDSAuplzawUhDhl8GSBYH/JQwITCEiRzQuy7a5XBgSqEOG4IWhEWWKGX+nwysGtGu4UIiicrHPhFGLcYSw4T/UsaNzNUqMcQCk5IQmEBZboC5GnAEMlpR0MjPmonuVgv8hDAfuMliABpBEEP6AIdIKRZQyHaABf2ojleICPQ0h4C7HQw4UBVIPRxC35RYyliQmGJIi6O7T1w0x0bo+1vyNrn3ML+dB6oIEqdUOGAq27ewe3j8Voi9ZDGeLBjQmFvKBBKuhANb9U0nkAfqJI6H/vzkl6ID1aFAj366ZNkCZjzJSscXQHxO7j8dnjh334ZD0goIQOffBUGDkaaHuhQpotV4HfQJyXk8Dug2s40QFWCn/FFiF8PZFrR9iV9ycHliMI5H7iM//2mD4P2URzVXEeboUMPwPfYCfwnMA5QTqZ7UaHzuB/bId57vwNP1Jz66bWqK0EZ32lv4OiF9qgglaWcl0zTdG5VD9qJ95aAp6Simte08BTwsVthE0C5Nf4O6SKx/CVLyQNkX7NOv0lE7hKRa9Pfs4Y+Oz9lnb5JRE5brILfX2ws4fmv/ZuB4c1Lm4xAAYhA/Fmz6HCkkCvkvgQyWkBb48zBfJ2N4tSg4gRUmt/V4WNgZiwhkh6IHFxBB/jdP34XSBuykZkv1edT4qzGbgrgg6KqdUXnRUj/AvBH53yAEkCyZKt0zKc/evar/pYpycEtQxRGgJaWjAC5VumhKmK9pRiamclwvkcLQHJ0Hg+yJw3VfMVOGWWnKwCPpyCQMx8JUwLv/vsPpgc/azqHwbzOdX+wr1mnAd6tqiekv0sBROQ44Ezg+PSd94rIA3qK+8vX/oQ7/fJ4o1TwWQYoounmiUfJQR0tR3pikxuihmQImN81B4erDhryHk8x/GE9SSA5FTAeau/HfObHHjhDhd1IhKFm4YT5O0ZI/EbmKAEpWrG3xu3TVGq/tTpqapLF4mgJ2o/aA75RPMUNTLCVjxM3oiV9J8y3JebJi+tHO+Cy790NGoZu9X0f7d2hgJcsNY3obTJbsC+C68k+s69Zp3fHGcCnVLWnqj8lJoU5eT/Kd8DZUrbZmB+WftA0cafDfgIOCHgn4Pt0HdybFfTSfrL59SowrAFkdHr3/a5TZlkak9MRbiCT+iGnC+zIxwjShpDFGU0nQxe4r8AafisiAw1H5qMt6EyTF6Cnjp2dWJ8AqM5n8ABTnU4sV/ANoauSo9LGS0FGdMcORGOpUFG6HKo+ILzpw/9BZx7X9OlyaMVL/+KTvO3j/wFa1aM1mIfCXwG9kNGHVLpZLHgcy/6xPzaFV4rIdWl4sTrte9Blnc690qrqRpyGAhLHtKKgFAg+NhGZZgJ4xrkfi+NGieNJpIR5NckkRkTodrv3/TBeeLaCUH8ruilLRgeoWiOxdw2BYkjrkEbTnNUMkiZRNYTfPHozScIpxJ61H5Tp/tCV1M+r4Y1JSVGXS0AlBzdKHOWn+gYglOm8JYQeId4IAP79+k1MzuOaCmhUCum4EaZkFIIODXzmPpuvQJ675DquzVAWmBnOLRH2tTTvAx4JnABsBP467X/QZZ2WoLS1im6+EshSDWerfXUlp4BONjroRwaP3jz1Q0n/+v0Kcc3eJSnnSXDc9/QZkAv0+7FXri2SmRAFyn0uNAuNIiPLMkKIV9Ywv94s3q94rcwV9EpANZk05nczsrwYuF8P+1HUD6jo7LsdQJIgT3O7Zb5sXtqJq8+W5bhQUjiBLGokSXea87lKANUoRnw194fkALFPQkFVN6mqV9UAfICZIcKDLut0VXmEMo4gxaWRZBWNVwA+pKhGQEbp96BV9eOP7JXlCmgBjM7runXD6fR6hBB22wRnNyYhINqP4+h+0gg0QOgPHtI68HJgW5gVgFXv9yFQm4TmNXyoz081CKzyaZog21Wh90KXIt1/IdMkcDSeO4ovT+UAl44jn1FxtAQ8/UDUNuZI7SuGONqhQxFKoCAjpHs390en3yWNRWAm7CyGwMdb4ZaUqXGfhEKdhj7xHKCembgEOFNE2iJyNLABuHL/inhgmez1KV2yUNXTgDBkKfKgqbFT0J2CQpOurFVUa8XNuyeoZzs6naFhh8481LN7RZJx0Q+U04zpDmQh9XlOU4+VxVmHZO7aU2PUYQ1lPkKhtugNzWz0Kj9zDpmnlUWy1FA9QkVd57jUhANp02dolkYzBobVzA80vPnYGWd+5wAS4lCkDlsH5lODbg9wWdQeXbaktIJdsa9Zp58iIicQ792twMsAVPUGEbkY+AHRvvIKVZ27mXYJ0q96BJlpCFI3jBlrIGiJkAOebuXoSTGwQcQuJ6TnYf4yuKrC0PWbDNsRYOCyEMsk0PcgmpRsGbI4DKIgw8wXd/PMD2sIuofjZpesLlX9AHjvG1/epwdD3dB0qhBmPehCIKvrN7jajBVgvr1xHLLEKNFSsmi4UJeMmZ652hV6nuTnkYrOzIYM/w5LhH3NOv2hPRz/NuBt+1OopURZ9Qn18EBJ43JHD2gBQXKysBMYBanYWTrGs2XU0/GVg1xL4shy+byv3+v1UNXB7EckNiIZeqg17fVArhLL2Ac0Tw+S4JOwiFMAtYa9qxgKN5gliEKhnoGYa6ndQPVWIKjgfXyUotuDzOORglLTsE2ywTlFZtZ+QCsyyYES0aJpzZcs+RZk83IQGsi/sqIrOWUWSzszsVIB7Tmdq1NGh7Q4LbtrfWUpmRqXUlmWJBPTnoI8jkedj40zTY33gUwryFYPpsymO8qohNhcpJ081jIIc2tANTmAZGzvlQRXq8/xoUI9SBlHp5rHhi+xLG0CpDnxfr8bpy9dCaLRDqIlZAEvIBRxjQZXRcGRRbccgh8IhbyYWelpPr17tLl4piooQs50lQHTOHpUMdRq6Hxh6G9G4xn85a1kR+gS6iGJljOPV60xaBaHEJmbadk+x6nDS5+ReZQf0qRjAbm2aVUFaIl34AXQFj4tm9co9KyyA3R6VTTnVLHccTNqb9E+sdAxr/uHCYW9UFUVXiUZsJpd5X06ThFKX6UxLQNre7SIzc9QVw8/yioMTFPUp5EZG/ientS+n0/fuItmKVmcvaiPmKtUGGrkVRnNaRqqWHhxuFnTqbvz9qzdpobLMG/nyiEHsPlSl0p3c4LdPTySBFxd1LKKrSck+9J8znUgWEplWZL0ej1KFx2BIE/Dghl/gIbDgMuZ6EyjA6HQSz3+/FrloM/UkslunzIbmWVcdOzRbJYacbfbn/tF09Rl9LeIQrDKRymrGM2BJOfGOZ0rDPwspnqgrk1V9qLqrw6XhMawWWZ47D/jQ5ks9LWhdw8F2G1P6yS6ijuZV288M0Mz5LwlbqgjkFRON/OF2T4dSV2YKOMwrN8HcLMPnZm9WiKYUNgLVVURhqbu6sZ6HweUhC97Mz3ffoQaR6EQNQU/EAA6+K+7+ukkxirUs3FlWRIGqsoQ95FRs41zyR9A8mQg1IY6PGdU6VUQxKFVCSpRvdchlXu3xZqvV8EuLg80VpLalzOKA5XGHXS72Jo9ZIjfjXXolpAhUVPYVatZShIBEwp7xfe66JCfe3TKidtOZ97EAKCS0JtGXbWH4Je9M2hYAlOdksrXU3kzD0rYzXqN9WxBAHr9auiAvbW8psFxWqMCnLmBG8/c224dIyA5E91AGZTgS3AO33hCw0DR2pPA8aG+v/Pv7aFWguZnE4mTuoAUeDRGSyJD55D7FDwM/Y8Xjvdze88jKHECxg3pRDOzNNkSmqc0obAXdkxO0cpcMsDNUsfTTMTACajyTE916fk+XQ9IK/7oXpjPwHZgMZCcrVu3MuJmGrQSx8jNH67Z84rExtvrV8kYOds7aRc/vERtQdK0yY/v6PCE448lp4o9/HwabXIHxmVsm+jjnKOqKgiSApqGHXiYtQWoT/ERQlAHLk9z/PPoUofKKwJBhP486qA+3iNPjrgcVcUTF7CV+qRDl6rL3yihxBmebZMVGvr4PswEpu3BzfwAs7RKsxQp2lRV7cVWB0TNGgPWT0zWouszWqNjyaiUDQKo5kM9nlUp6Ha7+H4KCBpqSLt8PIaeXCUOfeL2XH7maDSoz7tt5xQPW7sSVwd7zIc8q0M1ufgznyPLMnylg16yFkC7pF60VjIUQSXWI84uyHxvJQw5aM3H7pplsdbRVUoGghb2/NAMjJJptiYAW7aNk6H4ZHAcduoadkdbKphQ2At3Twolo0m7lsGwYBjF0SJQZaNc+KVr6PiMsg8DT8fdGSB2Q0Z0ye3IKGOtjNNO/dlBnIOgsZMajkXQZu9VP8bTve6saM6a+yrhSkYgo5ASgJ/euZkNh62g8H1wRVoXcm4oOXnmAcc9W3eycvky+smjMa5GnTG8UGxdupnSK0HjlG8JtEdHB34aMnORPRVghoEXZcZ87K5lKl4fcHkrLknHkG8IMPuOxDpkg6hqD2yb7PGVb/4X+D6+6seOxXtMU3gAc2/ZIhRj5C52fnFFnyFXVw2xsQbPNmB8+eGUYZSqFz/LYSbQYK4oCHG1p2Mfs4HVI03bRLRs79la4YHp6Q7DP/Eex+0iKDIYIv3kjrtY2QYXyoGRda4EQPvd5MWX8dzf+CV6ZSpv8oGI5Z/d/OphUDSWVsC/XvafhBRtOd+grOFeOIQQg7LmSOaiF+bUtHLa6aeTF8WMQ9ewQJOhyNT6y0kQeeA711xDIKfIHJLiH3KXSicDP7IlhQmFvaB5G5+EgA5USDdz4+rpxhBjC6Z9hmSttGKRpmi7+f7sATSaN9esWk07n/F7mHO5tXYtnmFvYkmH/k9OTJHTNK3N9eoKSFHEOQsnrF45fA+G7saux0CDrQy47rrrOOGEE+I557kuZRSe0QYTQpi3v4KIsH18grVrod/vz/tXVGDnzp2oQPB+8Htkbj5RGPc/D1mhEH/gasiCHOL7EF+Vil6/4jefcRLPPnEdXSBXZYUquJBCeN3AUamPcMddU5xyWM7Tjl/LpM9AM0QDSgESF1uZ6XXLoXUS42zFoExlHzTnznsDG456OCN5mVxkRxCfjI5ZGiCHmZ6qkgKPQ3yHnQJfufqHeNpRpdUZuwjkKckMg6XiMpL7hSuoxLF9yxZaaRGD6GIcZgZNs+bfZjajT0PUptr0ETI6POpQkG6ckkTKmSFYmqUQjXe/j8NLQeUKsmqcm8bhn7cczBE6nmYfUmIaAFcNaU/1ehapXlqCllFLy4QpgTJ/GKE/PpemEUunFU4937t7nBOPgEPDvXENjRAgCB5HD5fu98x9QEp6ySdipITvbFOeeIjQFs9UUHCayljUdyGyhMwKD1mhMKMCliAx2k7J8a52oHF8/55JTtywirEwPmj0ItGiPzO2dEgAlxfcvX2a1/32z/I7TzqEblnGcFk/TY/kFOTd0BoI1cB4KBrdmiVNnYVMgA633HEvRx0srM6rFOE4DdpLykkbCR2qzDEtORKm4upDBMgqfu1P/4m+5oh0QCqQNLGaPGdUSO7PybVYiZGAGj3xtk9NMOYg0zocOf5Xoou0r8+hAdEqPizk0Z4AIPGhHW2PcWgGvaoXBWOYce0dPE0hkPlAy5dkPpAFQJZz3Y/vodLAWHJ2qqM2MwJ4T0vr4meMxcIBFZVr082W09KKvlvGn733C/ziseu5N8wz9kSEn9xyK0euBHw5Y+xNw4NB7IZUQ/5pMaTbKZCVXH/rNh57xHpEoSpnXLkHxd3lmwPLQ1YoaBICkfhDedLqyypAYNtElzXLYFR8XEpLo50gNsyEAH6aPMCmLVtZvgqKsVaMl5Fof27VV3Dl4Dowmq7uiPH/PZASj8NlcTKs1y85aE28TNQ8+zFOAaCKDayqzze8IrBCrwyc+WtPAXzywqwHAgpEIaNSUBGdewYzbGmptCAx7nPgTZhsAfX8fVZXry6/uChYqB/6eJ7ly1dGK35tm6iHXunexAVd/eCu1O7BPnNsn+7Haciikz5NNprk/ORl2LzTSxIiCr8+gO/QBX501zZO+9mjqea7LL4KnU4n1nUX/tUzU8fN/W5Ii9rRrVizYjROsdY2kVqgMni7pHjICgUJU8nII3jiEud56MYGEErwJbdv3MIRa2BFe3QmsMn7wRAgrdYFWR8vge0bN7IS8G6Eca/RWpVFX//4aIWhJccB0oMsIT2gBbkH1DHhVnLdjsARLTgo6zNdAozi3TJ6Er+LLMMBKwBkGVuBnTgqWUE7z3jsoavT8MFBpdFBRgu0nm9XT65hZjHoVJYe4KTFWA5e6iFPlQZYjqj3lFGICVQCfYEgw7GIURM64vAjyIFut5u0pGxwPsiTsBTIoJcV9LMcdZDR4Z477+CQ1WtZmRdRk/JZWp8CyIQuaVUjOuCKOPUqBW3tsVIrynwF0wrsvItDxkC681kSz6FkbNpyLwWwvJWMvRrXZxh2VPKS0xUGwXIdgX4W7/VWCo5/+BpEoSzjBOewX8NS5CErFCB6kYl6YjON9uMZqZ1z69YOLaAsUpQeFeRCryL1bmU8PixHxXHzPZspgJUOpqsApYIPTEnMUYBv09aSsdDBC0zVKwpVFaIBFypwcIdkPO51n+Wir1/NCmA0S5qC92RpxaHo0N+jBHYC9O/ln/7tBzzlnE+xEWhVkzzisDF83k4LryiFANpBqOijeCnoi6MvtTWAgUYQXMaKHDR0GZ7Jy6sSQo5qgWpBFpQ8lLRCh0z9wBiqSTwcdsjBZMBUt0NtdPcQbSFaMFJ18eR0KWjrNK1qIkWgjnLv5gkOO/hh0FoZNbgsqw0fUGXkQFbG+1rPmpRAJW1KySnCFN+/rWSqvY4VAveWu46TnB3wVPfolcDmLdtpAYULSYDrjME39BGN7WiESRwe3CjL8LQGOTjg2MPWIC6jX9b6zuBKuyzPgeYhKxS8W5ZCYOtxnmMQ6lwFkIzt41OxUyrqQKg4jRaTL1fE2ARAYkj1ZC+GJ69dBv3ptPxZWqQ0A8qMOL5Pfq6jlLS1BM0BRRxMC3ztmu340GJdZ2OMEhw5KNrYnIDvxCLLCEg1o67ngavv2sZEe3Wc8fAlqw8CX/XpeoWsNeTRp2QIjoALnhblkLEw9oiSOUYEiuEITRiMM2acbwSkIGZjKAg+DorKkDFewppVy+PwwWvtq5x6XAbDmsF4XEfAjQw8Nnds28whK5chRRwO1ClsQgCyPPpH5aBZXOCmvhc5IY0wMjaPd+l5GMHT242iLiIzqj0Msm+pQK/sx3PW/lYN+ZEPjqs0TwZdJZBBcGgGeTbCQcvicX0fGt+vndSWkj0BHspCod6QAqUdBQSBMe1BofQRbrtnC2PAQU5ib1z1qWhz2jnvA98DrfA5oBvpAHdtmuRgYFRhuteDvILcMQaMhIo6hEG1RRZKdpQFl9xa8N/TaeIywBglF3z4Hzjz8Wu48q9eEIco7VVM98Bno2i+jLYE0IqeLGPMe1Zo4Lwv3Mt1t9zBW/7oNN70yR9zyMOOYCXQ0hFGRGISBAEYhVDQCiBVQFzGtBRDC6K2ccDDDz84+inUPXtyHJrOctQFkBKRMj4QAn0RfPC4zCMKHZdx451dHvmwNSwDtk1OpxWX+0OL2gZ6ro1IRQulp1H97wv88h++nU07t/L4Ixxr2hmUkGk0IpQ4ECUXyKSHMA5akGlczfnbP95C3wGSccMNN3DIipzRPNDt7d63wznX1BiSr0S/ikupLB8pBqZWqIVivXx/QGQkmpxqV+wsoyNw5Oq1jI0IpTqmOmWq927c1JcID1mh0NKSjDJNFUaLtvcVPWlz0ZV38caLvsrtO0vGgFWjbbrTgBvhrgo2t46gseqOHM4Pd8JZZz2XrJpkZAVs3D4BVQ6+Fce9LmeECrwgkvH1ezJOOe/TvPyDX+VFf3lh1ChCj3EKOrKclz7n50FGKDwcswq2jO8kqzpIBdfcvpWbJjq0iVaJL96yk89+6y5u+ssXcMbawBduuJOX/vqprFAYPWgZXQdV0WJ7ANwUSIdphRf91Sc56dyP8MjXX44AI5TgCnYAxx25joNWQOmKwWKrPWBMY5P2FKAFTkvytLT6xy6/mpe9/WNQeSaAK669gSccXbACuHvb9qguhXp5dyETaKfEeoKnTYlX+PCXfsA1y36BMh/jGSc+glZ7hIkuKc9Dcv7RPq1QQekgrOQnZYuSggngeR+/g5NefTHoBDffdgfrH/U/WD0ilGHXzb3WEkRkRjBIloyxsdgrxkaGpkDT3JNUxHU4u2TVJE5jvfOwDcImesDj1i8D7ZG1R5ju96m9T2XIGInooMNYCjxkhYJKMVAHa0NbL29x1Q5422ev4nPf34zP2/GBGCnIS8Bl/PieQC+0wMXptRy4PSv4yn9v4zGHrQYXTXE3XP+DdPJo9a97Gc1GuKsPv/f/vsAa1+Hi1zyF0PP03BhIwSs/8UM2PPJRHDYCfTcCAquWw5bt/XgWcbz0bz/Hs9/yKfCBftbmM1++lovf/CyoJhkr4NePKDn1cesogNV5xTRw1aaK9/zz16hNnj6DW7ZM0SdnLIzjFRwVPYEb74AnPOZR5AJVXgxmWmIP7wbjaAR6rmDSFdwt8PeXX8c3NyloYBL4yje/RTtdsTtwJ6wfOtB+HFiVFPTJ6WUFtzr48Bev5K9e+ov88fN+mUPbkLWKaMchqdwh+pd4l9PLC77bhd957Ye4ZgtceUuHJz/uKEYl8AO3hru3T3PMmoJ+ENTv2aXRe98YSkTnp/i0tlqt+2j5XYmzLh03xvZ8OUEyVgJb3RrGs0OZqGD56oOBQNFu0+mXDBbeAZaahlAz94wWDzImgJUU4McBx7Rbzjbg3Le+n/e95WzcFKwop1gOHLosY/M4PPqgUb595X8Rsil6UtAWz+3Az7/mW6zT23nVqb8JZcGYg5/ctQnyEQjbqBghAKOdnfx09GB+6w0f4xtv/x0OLbdC3mH9WMEjXncVZdXhULmD777hN1jmd9DLVpH5adaMjfGj7Q7cKNsdbBo9gqKs8JnjhW/7PJs6fU4Y2YGyikngH3/v5IEt7OBVq/mV93yfjZs3cpQbj+P2/r1Mt0c5/pEH85ZXPI8/eetFsXfoBW4A/uTdH+XKd72QCeCwdetTCPE0ByFUouSaQ2hx3YTwgrdeyMTkATzFAAAXVklEQVTIw+j7nBc/9SmsX3cw69/yBcpsPQ9zq1kZtuPdarJ+QVdgpBhhhQIuIFnMAXn0n32NnaxgNEwyWk1ydLWTs48p6R7zSAAOX7uKTTvBr465I0Xioi9v/fq9fPyLVzLW28n5v/0UXviuT3LP6NFse+PJZM89g8ed/xnGyile/j8fj+/Ctn6PCVqs8FNU2SjTOFYScNqDapQsZJz0p5/gtvajuPUvTkaAw9YezAiwakVa6EamKGWECkebEnyPK366nHM+dAkv2NDmzb97Gk8677NMt9dw1lOO45xnPgJknEOWraTaugNczjSwXFJnJFHadYFl90O7nwsPWaGwkuiIE/IxAMaoGAvCf73jdyF0YXXs8brAYRtW8aWv386TjziS73zr2xx+yMm0qwpczvNf/WH+6/Uv5GGrfi42mqJilJJlWcY4sDKMsFPgf537AZ62YR135Ieyrh04FCBfCxL417e8kHM+cAXPfPpTOeOYnRAyYFV8GPM4N/K5r/4XF18xwmg1zgWvfS6f+chnedT5l3Fsawf/9udnDebxl+PoZatohymQUY5ardz9ra/w8Tf8IW/8i/cyIbC8fTC//vrP8foXPoNDKHne05/AI19/GVOScWS1naNaXcZ0J6UcxGMe9Qi2AevcOiaBlQqPf/WF3LP80bSqCY4IgYvecBqPbcV+rwX8zsnP4Yw/+TB/8JLfghCXYhtbkUKGgzCRwwpdDnT4/U/fyXt++0SecewKOgEOcvEcCrTLLiLw8MNH+O6Xb2X6qKO45adbWH/Mel725x/lht463vV7p/M/j+xSujFOe9wjoUgzEjLK9//yuTHewAd2jji627azosqo8mXkVKzEAxm3ZaP8+p9cwO2jR3G46/PqZz2cx//ZpUywited+kQy4OhjT2THNDy8NUahcd1ONKfKC97wwQv4/Zf+Lhf+/Qf50PmXcd7zn0peTvI3n/8a73jqGRCEozY8ku9e+U0IJ7MiTaF6Fw3YObBMy2SwPfDsdfggIkeIyFdE5EYRuUFE/ijtXyMil4vIj9Pr6rRfROTvUubp60TkxMWuxD4RKgSHJ4/ZimujkXYhdOI8ustoEwXIF7/5Pa6/cytdn7G6UHyec6/LUZdxzCplzHfS9CS40GNk1cxirl+7dhObWcHXfngb//3DWzju2MfE6USBTnC0meSdL3s6v/QoF+ceXU6VER1yKBgL8LJnPoG12TTHrnGcsBaeevIGNMv5g98+g7XJ5dfhEK1t9HE+/Q/+14n8+9/8IaesAen3eM83tnPKOR9kuldy6qMPgrLDk094FBJ6jKD8wsNHed+fvxRkhDZwwoZHcO+mkqJfslJjUFhv2XpCb4JzfvVE3vMnL+LIFuShQyt48CVrFD799hfzjOPagJBnytrDj4zTslnK9lT1uOb2PpdfeztPO3YFK8rtHEKXdphCkk+E5C00H2EZ8OmvXcuXdsC5f/NRfrAZ7t3Z4/K3nc4zj3EgMQv4qqJiVehSL3ogvgcheqz2gdsmHdvzNrkP9Mij+7kXzv7Li+m1V7OCKR6W7eDsJx9Ge3wjy/o7+LVTj2MEOGzdaq65fhNkLSCjG4DudjrAVAg8cTUsa+WMuMBzTljNmT93BC9/5knJY9Zx7GOOZmenF13jXUFfcrI0pR0d4+aXVnBRUdU9/gHrgRPT9grgR8BxwDuB89L+84B3pO1nAf9OHJKdAnxnb9f4mZ/5Gb3/KVWDpjxXqpWq9kLMjNtT1a5X7QdVVa9dVT3h1Z/UDa/+V/35V12gb/7EZXr0n/6LHvKaL+lV96iOq6r6SS01xHOW2/WdX79LX/hn/6DjpeoJf/yP+ry/vULXv+6L+qRXvkd/0ovn7fl4TV91VbWrGipVr9oJql1VrdSr9qZVy66qn1D1XVU/rV3f066qTqqq+p5WvquV1nXxqtpXVU37JlRDT9VP6xU3bdNDz71CH/Har+rlN9ytqqX6oNpR1an6q+VW9b3pWA/1epNXffuX7tSOxuNeesF39Y2fv04rLVX9ZlWdVtVpnVJVDbEOpVaqoa/qe6p+UjVM6yU3TupR5/6bvvi9X1ad3qGf+95m3fDqz+tFN5ZaqmrwpWqo4u+gqhpK1XRN1VKf/Kcf1GPPvUif+KYv6vHnXKxv/Og3VKc3qpbxXoyn71Xq0+9Waql+sH+nqj7mvE/q6vP+Q7eqxnvU3aoTqnrcn35Sv3WvqpYT8Z5Vqlp1VXs7Y1Ppjeukqj7m9f+h7730u9pN3+93VT90XV9f8y/Xq/Z3aC9o+v2n4u3r1b9LXzep6lPO+4Ce84nvzfw22lcNdX0n5t509xHgKt3Ls6g6h9U3VHWjqn4vbU8ANxKTxp4BXJgOuxB4dto+A/hIKse3gVWzMkotHaSKbsMp2KeQ2LEURBW20OTBF/qs9NvIijFOP/VJnHTMIUwVqxjLPMcemhyHNYv5FgCkzYt+8TB+Mu356gTkwfH7v34qfWlx/st+i0OL6GbdchUtCYQsmePUQxVn/FsQp95yicFPLoOQEWjTdi3afc8yeoAnc20GPsgEUJlxOPKBnrSo3ChPevRqHtv/EZ997S/xlOPWR+ObxPKP+RBt6m4MV4zGKVdKljn48OXX8ebLfspz3voRvvLDuzj7V/8HmfaSAj6Kr6JLNP1pkD45fSoKcDnq2iAFz3jMMnqjK7j89h790YM4/9NfZ0S7/OpjczLVaLiV6LMQl6IPqA9xWXZVPvPnL+aCs3+BYw9byUiY4IzTngwjD6PMWhS1s5GHTEtqpTwjzhEJfVoE/uw3TmIFO3jqay6KgR6Z5xt3BEamt3LcWqLvRFW7TitkFaUCEuM5JkvhurtjaBqhw5u/sZm//qeLeeWzjwentGQKfAl5QUcrqA3VwFoCJz764XzuylvpEM2rVUpk1wKQsQVs2PuH6DziSUXkKODrwOOA21V11dBn21V1tYh8AXi7qv5n2n8F8BpVvWrWuc4GzgY48sgjf+a2227bz6rMkzRZXE8zDeLhlcF0hKcOzvH0pI0ALY0G6fH0nTEgY5w+K2mlB7Mn0C638tyP/pBv3On58stP5XEHwzYHBxEt9ypVDEvWIsYeJIfdioKcDlCkYU0sUp6msLwj+goGqFyelkuL03UxGEeBgj5RuHkgD1PgWsmNehJoo1mB0IlPQHDgMqpBrsx4zZGqD67FE875B6baa1nhp7nk/57FEf0SrZO+ukA/LTKj0aePXHv0JD4QebpfEnZwr1vFs869gI2ttbz86cfxh0/bwIr0Q9Suvw4QrfCSp+2SSgryFBvSZXkSFFWqc7p3YdZ4fOBdVftwBwjxQX/EeVcwFnZQqGfSHco333E6a5VGajlPnG3JqddPrLj0Rzt5y/sv5a/PfSHZGDz/nZfwez9/LG/45cPRVo6nFR2/CMkFrCALHUo3AggFFZ+9Wbirl/GC4+Fg343DES2ZkvaiGxpF5GpVPWmvB85FnUiCYzlwNfAb6f2OWZ9vT6//Bjx5aP8VwM/s6dwHYvgQtK+qPqp7od7ntVJfv03Di3hcJ30++I6WWqvp6vta6UDjTqphV3eq6vVbVVWnVUNn5pwa1dxOOkv9nagwTw4dF88bt7vxZfB9TcOKqH5X6mfOESa1HsnEMsftXvq8qr8/qHuqs+/HIYCWGoLGYYSfVK3q2+BVy3hM8L3mearJoTr4wXXUl6qhH++376sGr2n0lK7VHxSjGiqjhmnVOBAZqNjx3P3BsXW5e4P71m3Us654o5ydUjer6l9++hr9vqr+3Kv+UcugsV7qVYPXoFMaQl1+H/9Cqaod/T8fvEKPPf8LuuE1/zIYfvq6Aj6VpfKqfa9xCKMatNRpr6rVhPZU9bRz36u3j8f7Xaa24geNbvFgoYYPScIUwGeAj6vqZ9PuTfWwIL1uTvsfEJmnA4IS4hBCoud/lPDJNUVD9KdNUYIO6OFS0A300xIkaUWRGEdBhbp4joqcFQGOXwUxeCgt5SaAVrWn8yBQakZf09pJDiWFCROoUu9fSTxkEJ0n+aCHHWg7MjOpJPSii7BGzUGoyOikRUljL97HzQQmkUHIYzh4K0ddjPF0klLfuYKgJcF5dpB8F1JvHNO6EkOhB2Wsa1bQS7pLq7ctxkNJXFNB0j3PtKRgpreO7tjx3C2tyENJVLzjdfup+RZAdDB3SArZir9hD1KgktbllJwVwHnPPoENwPvfcjZ5iOUM6pK2IzECE4gL88bvqRb84W8/jcevH+ENLzotrXsRNUPq9RcJ6TtxrQUPaOgz6gAZQVX51Dt/n/VjymANTzLccKq7A8xcZh+EmDvyRlV919BHlwBnpe2zgM8P7X9RmoU4BdipqhsXsMwLQhZyRGP8f/0Xm3RqGOKospQWzHtaPjASpgZqfitMMeOIU6WoP0eZYgnzIDNPaRhFKcj9OBDVXgmeVughGmMh8rR02zjLqXPCknzoCY4cR9t3yH0HTVF6vaxNX+KQJj4QJVkoqWhTSRQAnjat0CMLcd2G+EjlyQGp3hfSw5fCoB1UWQxY0lDQz0qqvKBybbwD50ZwIWOt9mjTQZ2nmy2bCd1Oc/BxzdcYaF0CbTcF4hlvr0GKXpz5qTNG4+KMkNbBSKPRaxJmwoxdAThaWtLWHq0whYSptEhLgU9Drpwqqu/ShmSjiGs8OMp8PMZiZZ5W6HP88grNApVkOPWIBFRHyTWuT+GjxEqLwQiPKSb51CtO4XceLdCKs0Qj5Thknr6DFj36Dro5ZNojSx4NEAguoy3KQaSAdo1iskee4mqWBnPxU/gF4IXA90Xk2rTvtcDbgYtF5CXA7cDz02eXEmcgbgamgRcvaIkXCJ96dJmdskxIDwpxHtqlYBghhSGnnsctiyJEApKOC0BLHSqB0rn4sIYuZCP0K9B8JXEpEmhRQIobCKTxrMJKvw2yNVSSAoudGxgNCzc6GCtnIfr9xwDPgoAj8wW4amYZciALHXqprNGzcjQ63VBGLUhLSoqZvAMS14DKQ4G6FNVctckyQKYIoQ2aI76i24o5NjOtUp7GANKjLwUu6yE4shCzNTscVbWM3FWs1AlwK8g0ClgnBSXQcm00Je8d0R7g6EpBm4pKcnKNvXAveaMGaccH3kPmenGeP2UErwVKFjogAe+WJWPySnIXkPqmZjnBQe6iAVFDOwagyrKoLbm4zHu0eThaWXR3Ll2OoyTHI24lXYE2FVQFrbyMWokfjcFztQGYQI+Mtkb37q4bpQ20tYpRnfNvxovCvAyNi8VJJ52kV1111d4PNAxjn5mrofEhG/tgGMauMaFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTQwoWAYRgMTCoZhNDChYBhGAxMKhmE0MKFgGEYDEwqGYTTYn6zTbxKRu0Tk2vT3rKHvnJ+yTt8kIqctZgUMw1hY5pL3oQJerarfE5EVwNUicnn67N2q+n+HDxaR44AzgeOBw4AvicijVXXpZLswDGO37E/W6d1xBvApjWn1fkpMCnPyQhTWMIzFZ142hZR1+onAd9KuV4rIdSJygYisTvsOB+4Y+tqd7FmIGIaxhJizUBCR5cQks69S1XHgfcAjgROAjcBf14fu4uv3SUMlImeLyFUictWWLVvmXXDDMBaHfc46raqbNCUUBz7AzBBhTlmnVfX9qnqSqp60bt26/amDYRgLyD5nna7T0CeeA1yfti8BzhSRtogcDWwArly4IhuGsZjsT9bpF4jICcShwa3AywBU9QYRuRj4AXHm4hU282AYDxz2KhRU9T/ZtZ3g0j18523A2/ajXIZhHCDMo9EwjAYmFAzDaGBCwTCMBiYUDMNoYELBMIwGJhQMw2hgQsEwjAYmFAzDaGBCwTCMBiYUDMNoYELBMIwGJhQMw2hgQsEwjAYmFAzDaGBCwTCMBiYUDMNoYELBMIwGJhQMw2hgQsEwjAYmFAzDaGBCwTCMBnPJ+zAiIleKyH+nrNNvTvuPFpHviMiPReQiEWml/e30/ub0+VGLWwXDMBaSuWgKPeBpqvoEYoq400XkFOAdxKzTG4DtwEvS8S8Btqvqo4B3p+MMw3iAMJes06qqk+ltkf4UeBrwz2n/hcCz0/YZ6T3p86enLFOGYTwAmGsuySxlh9oMXA78BNihqlU6ZDiz9CDrdPp8J7B2IQttGMbiMSehkBLJnkBMFnsycOyuDkuvlnXaMB7AzGv2QVV3AF8FTgFWiUiddm44s/Qg63T6/CBg2y7OZVmnDWMJMpfZh3UisiptjwK/DNwIfAV4XjrsLODzafuS9J70+ZdV9T6agmEYS5O5ZJ1eD1woIhlRiFysql8QkR8AnxKRtwLXENPVk14/KiI3EzWEMxeh3IZhLBJzyTp9HfDEXey/hWhfmL2/Czx/QUpnGMb9jnk0GobRwISCYRgNTCgYhtHAhIJhGA1MKBiG0cCEgmEYDUwoGIbRwISCYRgNTCgYhtHAhIJhGA1MKBiG0cCEgmEYDUwoGIbRwISCYRgNTCgYhtHAhIJhGA1MKBiG0cCEgmEYDUwoGIbRwISCYRgNTCgYhtHAhIJhGA32JxX9P4nIT0Xk2vR3QtovIvJ3KRX9dSJy4mJXwjCMhWMuyWDqVPSTIlIA/yki/54+O1dV/3nW8b8CbEh/Pwu8L70ahvEAYH9S0e+OM4CPpO99m5hzcv3+F9UwjPuDfUpFr6rfSR+9LQ0R3i0i7bRvkIo+MZymfviclnXaMJYg+5SKXkQeB5wPPBZ4ErAGeE06fE6p6C3rtGEsTfY1Ff3pqroxDRF6wIeZySs5SEWfGE5TbxjGEmdfU9H/sLYTiIgAzwauT1+5BHhRmoU4BdipqhsXpfSGYSw4+5OK/ssiso44XLgWeHk6/lLgWcDNwDTw4oUvtmEYi8X+pKJ/2m6OV+AV+180wzAOBBKf4QNcCJEtwBRw74Euy/3IwVh9H+wstTo/QlX3atVfEkIBQESuUtWTDnQ57i+svg9+Hqh1ttgHwzAamFAwDKPBUhIK7z/QBbifsfo++HlA1nnJ2BQMw1gaLCVNwTCMJcABFwoicrqI3JTWXzjvQJdnoRCRC0Rks4hcP7RvjYhcLiI/Tq+r0/4H/BoUInKEiHxFRG5M6278Udr/oKzzHtYZOVpEvpPqe5GItNL+dnp/c/r8qANZ/j2iqgfsD8iAnwDHAC3gv4HjDmSZFrBupwInAtcP7XsncF7aPg94R9p+FvDvRO/QU4DvHOjy70N91wMnpu0VwI+A4x6sdU7lXp62C+A7qR4XA2em/f8A/H7a/j/AP6TtM4GLDnQddlu3A3xjfw64bOj9+cD5B/qmLGD9jpolFG4C1qft9cBNafsfgRfs6rgH6h/weeAZD4U6A2PA94iLCd0L5Gn/oH0DlwE/l7bzdJwc6LLv6u9ADx/mtPbCg4hDNQWHpddD0v4H1X1IqvETib3ng7bOs9cZIWq9O1S1SocM12lQ3/T5TmDt/VviuXGghcKc1l54CPCguQ8ishz4DPAqVR3f06G72PeAqrPOWmcEOHZXh6XXB0x9D7RQeKitvbBpKOR8PbGHgQfJfUhreH4G+LiqfjbtflDXGRrrjJxCXH6wDjQcrtOgvunzg4Bt929J58aBFgrfBTYki22LaIC55ACXaTG5BDgrbZ9FHHfX+x/Qa1CkdTU+BNyoqu8a+uhBWefdrDNyI/AV4HnpsNn1re/D84AvazIwLDkOtFGDaIX+EXE89roDXZ4FrNcngY1ASewlXkIcQ14B/Di9rknHCvD/0j34PnDSgS7/PtT3yUR1+Dri+hrXpt/2QVln4PHANam+1wNvSPuPAa4krifyaaCd9o+k9zenz4850HXY3Z95NBqG0eBADx8Mw1himFAwDKOBCQXDMBqYUDAMo4EJBcMwGphQMAyjgQkFwzAamFAwDKPB/wedTHJWVLosxQAAAABJRU5ErkJggg==\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "img.shape",
"execution_count": 64,
"outputs": [
{
"data": {
"text/plain": "(360, 360, 3)"
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f_model = resnet34",
"execution_count": 65,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "label_csv = f'{PATH}train.csv'\nn = len(list(open(label_csv)))-1\nval_idxs = [x for x in range(20323,n)]",
"execution_count": 66,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def get_data(sz):\n tfms = tfms_from_model(f_model, sz, aug_tfms=transforms_basic, max_zoom=1.05)\n return ImageClassifierData.from_csv(PATH, 'NORMAL', label_csv, tfms=tfms,\n val_idxs=val_idxs)",
"execution_count": 67,
"outputs": []
},
{
"metadata": {
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "sz=128\ndata = get_data(sz)",
"execution_count": 68,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "x,y = next(iter(data.val_dl))",
"execution_count": 69,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "data.classes",
"execution_count": 70,
"outputs": [
{
"data": {
"text/plain": "['afib', 'other']"
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "plt.imshow(data.trn_ds.denorm(to_np(x))[0]);",
"execution_count": 75,
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
},
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learn = ConvLearner.pretrained(f_model, data)",
"execution_count": 76,
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": "/home/paperspace/PulseAI/fastai/initializers.py:6: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_.\n if hasattr(m, 'weight'): init_fn(m.weight)\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "len(data.trn_ds.fnames), len(data.val_ds.fnames)",
"execution_count": 77,
"outputs": [
{
"data": {
"text/plain": "(20323, 4088)"
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "lrf=learn.lr_find()\nlearn.sched.plot()",
"execution_count": 59,
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b015a7eff02f4d9eac8dd0160ebb2334",
"version_major": 2,
"version_minor": 0
},
"text/plain": "HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": " 83%|████████▎ | 265/318 [00:29<00:05, 8.85it/s, loss=2.86] "
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEOCAYAAABmVAtTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VPW9//HXJzshG5AQCCQk7PsiAVRQsVql1rrWvbZupdpbtb29dr33V1tvb+3tbqu11Gut1qUq1uK+VURFVPYdZM8GSchK1kny/f0xQxrSJATN5Ewy7+fjkYcz55yZ85kvcd75nu8532POOURERAAivC5ARERCh0JBRERaKRRERKSVQkFERFopFEREpJVCQUREWikURESklUJBRERaKRRERKSVQkFERFpFeV3AiUpNTXXZ2dlelyEi0qesWbOm1DmXdrzt+lwoZGdns3r1aq/LEBHpU8xsf3e20+EjERFppVAQEZFWCgUREWmlUBARkVYKBRERaaVQEBGRVgoFEZE+4OXNBymurg/6fhQKIiIhrvRIA7c+vpb73twd9H0pFEREQtxTq/PxNTuumZcV9H0pFEREQlhLi+OxD/YzL2cw49ITg74/hYKISAjbXFhJXlkdV87N7JX9KRRERELY3tIaAKZkJPfK/hQKIiIh7MDhWgCyBsf3yv4UCiIiIWx/WS3pSbHERUf2yv4UCiIiIezA4VpGDR7Ya/tTKIiIhLD9ZTVk9tKhI1AoiIiErHpfM4eqGhg1RKEgIhL28sr8g8wKBRERYX8vn3kECgURkZD13p7DmEFOqgaaRUTCWlFlHY+s2s8ls0aSEh/Ta/tVKIiIhKAlK/aAg6+fPa5X96tQEBEJQduKqpg2MrlXT0cFhYKISEgqqKhjRMqAXt+vQkFEJMQ0tziKKuoZMUihICIS9oqr62lqcf2rp2BmD5pZsZlt7mKbhWa23sy2mNlbwapFRKQvKSivA+h3PYWHgEWdrTSzFOA+4ALn3BTgsiDWIiLSZxRU+ENhZH/qKTjnVgBlXWxyNfCMc+5AYPviYNUiItKX5PfTnsLxjAcGmdlyM1tjZl/sbEMzW2xmq81sdUlJSS+WKCLS+woq6hgUH018TFSv79vLUIgCZgOfBc4F/svMxne0oXNuiXMu1zmXm5aW1ps1ioj0uoLyOk96CeD/YvZKPlDqnKsBasxsBTAD2OlhTSIiniuoqGNMWu/Nd9SWlz2FvwOnmVmUmcUD84BtHtYjIuI555y/p5DSu1cyHxW0noKZPQ4sBFLNLB/4ARAN4Jy73zm3zcxeBjYCLcADzrlOT18VEQkH5bU+6nzN/e/wkXPuqm5s8zPgZ8GqQUSkr2m9RsGD01FBVzSLiISUggr/jXVGetRTUCiIiISQfPUURETkqIKKOuJjIkmJj/Zk/woFEZEQ4j/zaABm5sn+FQoiIiGkoMK7C9dAoSAiElK8urnOUQoFEZEQUVnro6LWp56CiEi4c87x3b9tJMLg1DGpntWhUBARCQH/2F7Mi5sO8u1FE5mZmeJZHQoFEZEQsO5ABZERxpdOzfa0DoWCiEgI2FpUxdi0BOKiIz2tQ6EgIhICthZWMTkjyesyFAoiIl4rq2nkYFU9k4crFEREwt62oioAJikURERka+HRUEj0uBKFgoiI57YWVTEsKY4hCbFel6JQEBHx2rai0BhkBoWCiIin6n3N7Co+EhKHjkChICLiqV3FR2hqcUwenux1KYBCQUTEU1sDZx7p8JGIiLC1sIr4mEhGDY73uhRAoSAi4qltRVVMHJZIRIQ3d1prT6EgIuKh/YdrGZ2W4HUZrRQKIiIeaWhq5lB1PSM9vKlOewoFERGPFFbU4xyMHBQa4wmgUBAR8Ux+eS0AmeopiIhIXlkdACND5MwjUCiIiHgmv7yWqAhjWFKc16W0UiiIiHgkr7yOjJQBRIbI6agQxFAwswfNrNjMNh9nuzlm1mxmnw9WLSIioSi/vDakzjyC4PYUHgIWdbWBmUUCPwVeCWIdIiIhKa+sjswQOvMIghgKzrkVQNlxNrsVWAoUB6sOEZFQ1NjUQumRBjJSwqen0CUzGwFcDNzvVQ0iIl6pqGsEYPDAaI8rOZaXA82/Br7tnGs+3oZmttjMVpvZ6pKSkl4oTUQkuCprfQAkx8d4XMmxojzcdy7whJkBpALnmVmTc+7Z9hs655YASwByc3Ndr1YpIhIElXX+UEgZEFo9Bc9CwTmXc/SxmT0EPN9RIIiI9EcVgZ5CSnyYhIKZPQ4sBFLNLB/4ARAN4JzTOIKIhLWKQE8hOVx6Cs65q05g2+uCVYeISCiqqPUPNKcMCK0xBV3RLCLigco6H2aQGOfl0O6/UiiIiHigss5H8oDokLnj2lEKBRERD1TU+kLuzCNQKIiIeKIi0FMINQoFEREPVNY2htyFa6BQEBHxRGWdDh+JiEhARZ0v5C5cA4WCiEiva2lx6imIiIhfdX0TzoXeZHigUBAR6XVHp83W2UciIsLhmqNTXCgURETCWmNTCz9+YRsDoiOZnJHkdTn/IrQm3RAR6ef+7529rNlfzu+unhVyt+IE9RRERHqNc46n1uQxN2cw50/P8LqcDikURER6ycb8SvaU1HDJrBFel9IphYKISC8oqW7gV6/vJCYqgvOmD/e6nE5pTEFEJMh8zS1cdO+7HKqq55vnTCApLvTOOjpKoSAiEiSNTS1sKazkUFUDBRV13P+F2SyaOszrsrqkUBARCZKla/P57jObSE2IZVhSHGdPGup1ScelMQURkSD5cF8ZAKVHGrgsdyRRkaH/lauegohIkKzPq+D08WmcOyWdC2aE5imo7YV+bImI9EGVtT72lNQwL2cw18wbRWIIDy63pVAQEQmC9fkVAMzMTPG4khOjUBAR6WHOOd7YdggzmD4y2etyTojGFEREetCu4mq+97fNfLC3jPOmDeszh42OUiiIiPSQ6nofF9+7kogI4+5LpnF5bqbXJZ2wbh0+MrPbzSzJ/P7PzNaa2TnBLk5EpC/ZlF9JdUMTv75yJlfOzSIiwrwu6YR1d0zhBudcFXAOkAZcD9wdtKpERPqgDfmVAMwc2bcGl9vqbigcjbvzgD855za0WSYiIsDG/AqyBsczaGDo3Xu5u7obCmvM7FX8ofCKmSUCLcErS0Sk79mYX8mMPnYKanvdDYUbge8Ac5xztUA0/kNInTKzB82s2Mw2d7L+GjPbGPhZaWYzTqhyEZEQUlLtn/RuRh87BbW97obCKcAO51yFmX0B+E+g8jiveQhY1MX6vcAZzrnpwF3Akm7WIiISct7bcxggbHoKvwdqA3/NfwvYDzzc1QuccyuAsi7Wr3TOlQeergJGdrMWEZGQ85dV+8kcPICTsgZ5Xcon0t1QaHLOOeBC4DfOud8AiT1Yx43ASz34fiIivWZbURUf7C3jiydnE9kHT0Ntq7sXr1Wb2XeBa4HTzCwS/7jCJ2ZmZ+IPhQVdbLMYWAyQlZXVE7sVEekx9765iwHRkVyW2/cPeHS3p3AF0ID/eoWDwAjgZ59052Y2HXgAuNA5d7iz7ZxzS5xzuc653LS0tE+6WxGRHrNmfznPbyziy6ePJiW+756KelS3QiEQBI8CyWZ2PlDvnOtyTOF4zCwLeAa41jm385O8l4iIF/LKavnmk+tJS4zlK6eP9rqcHtGtw0dmdjn+nsFy/Bet/dbM7nDOPd3Fax4HFgKpZpYP/IDAISfn3P3A/wOGAPeZGfjHLXI/9icREelFDU3NXLlkFdX1Ph68bg4DY/vHVHLd/RTfx3+NQjGAmaUBrwOdhoJz7qqu3tA5dxNwUzf3LyISUl7YWERBRR1/un4OudmDvS6nx3R3TCHiaCAEHD6B14qI9CvOOf707j7GDk1g4fj+Nc7Z3Z7Cy2b2CvB44PkVwIvBKUlEJLRtLapiU0Eld100lcDh736jW6HgnLvDzC4F5uMfU1jinPtbUCsTEQlRb39UCsC5U9I9rqTndXtkxDm3FFgaxFpERPqElbsPM25oAkMT47wupcd1GQpmVg24jlYBzjmXFJSqRERCVGNTCx/uLePyfnChWke6DAXnXE9OZSEi0uetz6ugztfMqWNTvS4lKHQGkYjICXhuQyExkRGcnDPE61KCQqEgItJNZTWNPLUmj4tnjSA5vkemfws5CgURkW7688p91PtauOm0HK9LCRqFgohIN5TXNPLgO3v59OR0xqX33+FWhYKISDfct3wXNY1N3HHuBK9LCSqFgojIcbS0OJ5cnc9np2cwvh/3EkChICJyXPsO11BZ52PB2P55xlFbCgURkeNYn1cBwIzMFI8rCT6FgojIcWzIqyA+JpJxQ/v3oSNQKIiIHNf6vAqmjUgmMqJ/zYjaEYWCiEgX6n3NbC2qYmZW/z90BAoFEZEuLVtfiK/ZcdrY/nUznc4oFEREOtHc4rh/xW6mZCQxPwzOPAKFgohIp97aWcyekhpuPmNMv7vDWmcUCiIinXhh40GSB0SzaOowr0vpNQoFEZEONDW38Mb2Q5w1cSjRkeHzVRk+n1RE5AR8sK+Milof50wJn14CKBRERDr05vZiYqMiOGN8eJx1dJRCQUSkA5sKKpmckcSAmEivS+lVCgURkXacc2wtrGLy8CSvS+l1CgURkXYKKuqoqm9icoZCQUQk7G0trAJQT0FERGBrURURBhOHKRRERMLepvxKRqclhN0gMwQxFMzsQTMrNrPNnaw3M7vHzHaZ2UYzOylYtYiIdNcb2w7xxvZizpwQXqeiHhXMnsJDwKIu1n8GGBf4WQz8Poi1iIgcV72vmW8+tYGpI5L45jkTvC7HE0ELBefcCqCsi00uBB52fquAFDMbHqx6RESOZ83+cipqfXzj7PHERYffoSPwdkxhBJDX5nl+YJmIiCdWfFRCdKRx8ujwmCa7I16GQkfz0LoONzRbbGarzWx1SUlJkMsSkXD1zkelzMoaxMDYKK9L8YyXoZAPZLZ5PhIo7GhD59wS51yucy43LS08B39EJLgOH2lgS2EVp49L9boUT3kZCsuALwbOQjoZqHTOFXlYj4iEseU7/EchTg+zCfDaC1ofycweBxYCqWaWD/wAiAZwzt0PvAicB+wCaoHrg1WLiMjxvLzlIMOT45g2ItnrUjwVtFBwzl11nPUO+Ldg7V9EpLtqGppYsbOEq+Zmhc1tNzujK5pFJOwt31FCQ1MLnwmj2252RqEgImHvkVX7yEiOIzd7sNeleE6hICJhbXNBJav2lHH9/BwiI8L70BEoFEQkzD20ch8JsVFcMTfz+BuHAYWCiIQt5xxv7SzhUxOHkhQX7XU5IUGhICJha09pDSXVDZwyJnyntWhPoSAiYWvVnsMAYT3XUXsKBREJW6v2lJGeFEv2kHivSwkZCoU+qKreh//av4+vstbHkYamHqpIpO9Zn1fB8u3FnDx6SNhfsNZW+E4F2EccqqqnwddCRkocUZERPL+xkH9/cgPzxwzh3mtOIj4mCl9zC85BTFTnGV/b2MT7e8vYmFfJ8p3FrM+rIMKMCemJTByeyLUnj2JW1qBe/GQi3jlYWc+VS94jLTGWr5893utyQopCIcSUHmng2XUF7CmtIcLgrx/m4Wt2DE2MZdLwJN7aWcK4oQm8tbOEc361gnFDE1i+0z+R18UzR1Df1MzOQ0cYm5bASaNSSIyLZlNBJc9vKKSqvgkzmD4yhds+NY7mFsemgkpe33qIZ9YWcPGsEdx5wRSSB+gsDOnfXtt2iHpfCw98cQ45qQO9LiekKBR6SF5ZLX9bV8DG/Erqfc1MGJbIbWeN+5cvWF9zCwfKahk5aACxUf+8s1NFbSNmxjV/fJ8dh6pJjIuiur6Ji2ZmcMqYISzbUMiWwipuP2sctywcw9r95fz81R1sLqzipgU5+Jodj76/n7ioSOaNHszWoipe3nIQgIExkZw5cShXzsli2sjkf6mppqGJ+9/azX3Ld7Mhr4L/vngqY9ISSE+KC37DiXhg+fZiMgcPYHx6gtelhBz7pMeme1tubq5bvXq112W0Kqlu4Bt/Xc87u0oxg/FDE4mLiWRLQSWj0wZyUtYgahubyRw8gEHxMfzqtZ3UNDZzwYwM7rlqFg1Nzfxl1QF+/MJWoiIi8LW08OCX5nDmxKE0NrV0eUiovdIjDcRERbSeb11e00itr5mhibFERx7/fT7YW8ZXHllNea2PqAjjV1fM5Pzpw3W8VfqVel8zM3/0KlfkZvLDC6d6XU6vMbM1zrnc426nUPj4nHMsfmQNb+0s4WtnjuWSk0YwcpD/LIZ3d5Vy+xPrAUiIjSSvvI7mFsdp41IZlhTHU2vymZczmDX7y2lqcZw1cSgDYiKZPWoQ18/P8ewzlVQ3sCGvgiUr9vDBvjKiI42Jw5L43IzhnDdtOFsLq5g+MoX0pFiFhfQ5jU0t3PvmLn7zxkc8dP0cFk4Y6nVJvUah0EOONDTx2zc+oqaxibsunNr6Rfj39QU8uuoAH+wr43vnTWTx6WO6fJ+iyjr2ltZwyughNLU4Pv/7lewtreHy3Ezm5gzm7EnpRITQvCt1jc08uTqPwoo6Vu8vZ83+8mPWR0UYU0ckc8WcTC7PzdScMdIn3LlsCw+t3MeZE9L4w7W5J9QT7+sUCp/AruIj3Pb4Oup9zeSV1+Jr9rfRn2+Yy/wxQ3h2fSF3PL2B0akDOXtSOt9aNPGEvxTrfc0AxEVHHmfL0LBiZwlbCquYmZnC9oNVHKyqZ8XOUrYVVTFxWCI3LMhhwdhUNuZXMiQhhjmabVJCTFNzC3P/5w1OGTOE3101K+x6ugqFT+C2x9fx+rZDnDlhKFlD4jl70lBue3w9zjlqGpuprPMxe9QgHr1pXp/5Ug8G5xwvbjrIr17fya7iI8esu35+Np+bkcGGvArm5QxhckaSR1WK+K3cXcrVf3yf+79wEoumDve6nF7X3VDQ2UftHDhcy/MbC7nptNF877xJrcvvOHcC//HUBs6dMozzpg3nrElDwzoQAMyMz04fznnThrEhv5K1+8vJSRvIa1sP8ad39/Gnd/cFtoPPThvOJSeNYMKwJEakDPC2cAlLL206yIDoSM4YHz7jCB+HQqGNel8z31q6gajICG5ccOxg70WzRvDZ6cO7dRZPuDEzZmamMDMzBYAzJwzlljPGsHp/GVMzknl6bT6PvX+A5zcWATBtRDKzslI4d8owhiXHsaekhjPGp4XV8V3pXc45Xt92iDPGpzEgJrz/mDuesA0F5xz1vhbioiNajy3+17ObWbWnjF9fMbPDc/QVCN2XOTiezMH+M7G++5lJ3H7WODblV7Ihv4JXthxi6Zp8Hn5vf+v26UmxzB+TymnjUzlrUrqmMZYete9wLUWV9XztU6lelxLywjYUvvnkBp5ZV8Dw5Dge+/LJGLB0bT5fPi2Hi2aN8Lq8fic+Jop5o4cwb/QQFp8+hoamZp5ek091fROjUwfy9Jp8VnxUwjPrCkiKi+KrZ47lhvk5tDiHGcdc6CdyolbuLgXg1DEKheMJy1BYs7+cZ9YVsGjKMN7fe5jFD68mO3UgURERfPm00V6XFxZioyK5Zt6o1ufnTBlGS4tjXV4F9765i7tf2s6SFXsor23EORgUH80Z49P44YVTNQ2HnLCVuw8zPDlOs6F2Q1iFQllNIzc/soatRVUMTYzlF5fPYH1eBTf++UM+Kj7C1fOyGKqpHTwTEWHMHjWIB6+bwxvbDrF0bT5j0hKIjYpg/2H/NCLr8yq4/9rZTByms5mke1paHKt2H+aMCWlhdxrqxxFWofDL13aw5kA5F87M4Jp5WQyMjWL+2FTW/Oen2X+4ltFpmhgrVJw1KZ2zJqUfs+yKOZl89dG1XHzvSu6+dBoXztRhPjm+HYeqOVzTqENH3RQ2obCtqIrH3j/AF0/J5s4LphyzbmBslM6j7wNyswfz/K0L+LfH1nL7E+t55L39nDpmCKeMSeWkUSkad5AOrdztv7uabrnZPWETCpV1PqaOSOYbmju9Txua5D8x4A9v7ea1rYf43Zu7uOcfuxgYE8lluZncuCCn9awnEYD3dpeSPSRe18d0U1hd0eyc0zHFfqa63seqPWW8tKmIZRsKaXGOtMRYUgbEcMOCbC6bnRlSc0pJ72pqbmHWj17j/BkZ/OSSaV6X4yld0dwBBUL/kxgXzacnp/PpyencsWgCf1m1n5LqBrYWVfHtpZt4Zcshrjs1m8kZSaQmxHpdrvSyN3eUUN3QxPyxOnTUXWEVCtK/DU8ewB3nTgT8vcKH39vPj1/Yxj+2FwMwcVgiC8amsqmgklsWjgmraZPD0Zr95dz6+FrGDU3Qv/UJCKvDRxJ+Kmt9bCmsZHNhJX/9MI89pTWkJsRSeqShdT6mzEHxvLjpIGZw6eyROvbcDzjnuPT3KzlYWc+yWxeol0iIHD4ys0XAb4BI4AHn3N3t1mcBfwZSAtt8xzn3YjBrkvCSHB/NqWNTOXVsKjcuGE1NYxNREcb/vryD5zYUts7HdNRDK/fx/86fzKKpw8J+wsO+7MN95aw9UMFdF05RIJygoPUUzCwS2Al8GsgHPgSucs5tbbPNEmCdc+73ZjYZeNE5l93V+6qnID3F19zCi5uKOFhZz2W5mZTXNnLLX9aw89AREuOiuGjmCL61aAKJmoepT3lzRzE/XLaF6vom3v3OpxTuAaHQU5gL7HLO7QkU9ARwIbC1zTYOOHqBQDJQGMR6RI4RHRlxzAVwgwfG8PLtp7Nqz2H/zK4fHOCdXaXcfMZoTh49hMxB8TqTKcS9se0QNz28mpzUgfz2qlkKhI8hmKEwAshr8zwfmNdumzuBV83sVmAgcHYQ6xE5rogIaz3cdEVuJt95ZhPfXroJgIzkOK49JZsr5mQSFWkkxkbpjLYQ8t7uw9z2+DqmZCTx1FdO1RTZH1MwQ6Gj/1vaH6u6CnjIOfcLMzsFeMTMpjrnWo55I7PFwGKArKysoBQr0t680UP4xzfPYGtRFRvzK1m2vpCfvrydn768HYCTRw/mO5+Z1HofCfHOP7YfYvHDa8hOHcgfv5irQPgEgjmmcApwp3Pu3MDz7wI4537SZpstwCLnXF7g+R7gZOdccWfvqzEF8dL2g1W8tuUQvhbHI+/to7zWx9QRSZwzeRg3nZZDfIzO8u5txdX1LPr12wxLiuPxxSdrFt1OhMKYwofAODPLAQqAK4Gr221zADgLeMjMJgFxQEkQaxL5RCYOS2qdofXLp+Xw1Op8XtxUxK9e38nStfmcP304cVGRHGloAoPJw5M4e1I6A2MVFsHgnONbT2+kpqGJe66aqUDoAUH7TXXONZnZ14BX8J9u+qBzbouZ/QhY7ZxbBnwT+KOZfQP/oaXrXF+7cELCVmJcNDcsyOGGBTms2nOY/35hK/e/tYfmFue/taiDxuYWkuKi+NyMDK6el8WUjGSvy+5X/rJqP8t3lPDDC6Ywdmii1+X0C7p4TaQHNTb5h8NioiJoam5hfV4FD7+3n9e2HqKxuYWLZo4gPSmWq+dlMXKQJu77JKrqfcz/yT+YmZXCwzfM1aD/cYTC4SORsBMT9c/7eEdFRpCbPZjc7MFU1vq464WtvLrlILWNzTzwzl6+dMoorp+fQ4auoP5YnvjgANUNTXzr3IkKhB6knoJILyusqOOXr/nHIJyDCemJ3Lggh0tnjyRS10F0S72vmYU/W05O6kAeX3yy1+X0Cd3tKUQcbwMR6VkZKQP4+WUzeP3fz+C/zp9MZITxraUbufi+d3l2XYF/kFo65Zzj+3/bzMGqem49a6zX5fQ7Onwk4pExaQmMSUvghvnZPLexiJ++tJ2v/3U9sVERzMxMYVx6AlfN1eB0WzsPVfPD57bw7q7D3H7WON1iMwh0+EgkRLS0ONYcKOf5DYVsLapic0EVdb5m5uYM5vpTs/n05HSiIsO3c19R28hn73mHOl8zN58xmpsWjNa0IydAA80ifUxEhDEnezBzsgcD/lvIPvlhHn9+bx+3PLqW0akDWXz6aKaPTAm7e4pX1vn46qNrKa6u56mbT9VV5EGknoJIiGtucby65SA/e3UHe0pqAPjqwjFcOSeLEYMG9PvB6ap6Hxfd+y55ZbXcfcl0Lp090uuS+qTu9hQUCiJ9RHOLY2/pER54ey9PfOifa3JCeiJ3XTSVuTmDPa6u523Kr+SZdfnkl9fxj+3FPHLDXE4dqzGEj0uhINJPOed4f28ZHxUfYcmK3RyqauD+L5zEyaOH9Ju5l4oq6/jcb9+l9EgDAF8/exxfP3u8x1X1bQoFkTBQUdvIlUtWsf1gNQCZgwcwMCaKMWkJzMpKYXdJDS0tjqkjk0mIjWRY0gBOGRPaN7FvbnFc/of32F5UxSM3zaOmoYlTx6T2+8NkwaaBZpEwkBIfwxOLT+blzQcpPdLA9oPV1PtaWLm7lBc2FTEoPpoIM/66+p+3NvncjAwumz2SjJQ4clITQurLdmthFUvX5rNmfzm/vmImJ2UN8rqksKNQEOnjUuJjuHLusfcZqfc1U1nnY2ii//7EB8pq8TU7lq0v4A8r9vDcBv9NDmeMTOY7n5nEpOGJpMTHUFBRR2pCDLFRvX8/gpc2FXHLo2sBOH/6cC6cmdHrNYgOH4mEndrGJtbsL2dvaQ2/fG0nFbU+IiOMsWkJ7DhUTWpCLJ+amMa8nCFcctKIY+YVampuYcVHJfx9fSEb8iqYMCyRz0wdzuxRg8gcfOwEfy9tKuLe5bu4bHYml+dmdnrjm3pfMyt3l/IfT21kRMoA/vfz05mQnqhrEHqYxhRE5LjKaxpZn1/Bqj2H+WBvGQvHD2VTQQXr8yooPdLI7FGDqK73UV7rIz0pltLqRg5W1TNkYAyzslJYd6CCwzWNAIxJG8jcnMHMyhxEVKTxvb9tIjoygur6JgbFR3PBjAzGDk0gNiqS2dmDGJ06kKdW5/PzV3dQXN1AUlwUS285lXHpmgI7GBQKIvKxOef449t7eOz9A4xJSyAtMZa88lrioiK5LHckZ01KJzrSPz34R8VHeG/3YVZ8VMK6AxVU1vkA/z2tn/3afA4cruWBt/eyfGcx9b5/3ml3RMoACirqyB01iK99aizzcoboNppBpFAQkV7X0uLYe7iItT74AAAJEUlEQVSGel8z2UMGHnPHuXpfM1X1Pqrrm1i+o4RXthzk05PSuXFBjg4V9QKdfSQivS4iwhiTltDhurjoSOKiIxma6J8M8MYFOb1cnXRH+M6uJSIi/0KhICIirRQKIiLSSqEgIiKtFAoiItJKoSAiIq0UCiIi0kqhICIirfrcFc1mVgl8FHiaCpT24NsnA5U9tG1X6zta135ZV8/bPlYbqA1AbQBqA+i6DUY559K6qNHPOdenfoAlbR6vDtZ7f9Jtu1rf0br2y7p6rjZQG6gN1AbBaoO+ePjouRB57+Nt29X6jta1X9bVc7WB2qA7+/4k1AZh2gZ97vBRW2a22nVjgqf+TG2gNgC1AagNoGfaoC/2FNpa4nUBIUBtoDYAtQGoDaAH2qBP9xRERKRn9fWegoiI9CCFgoiItFIoiIhIq34bCma20MzeNrP7zWyh1/V4xcwGmtkaMzvf61q8YGaTAr8DT5vZLV7X4wUzu8jM/mhmfzezc7yuxwtmNtrM/s/Mnva6lt4U+P//z4F//2u685qQDAUze9DMis1sc7vli8xsh5ntMrPvHOdtHHAEiAPyg1VrsPRQGwB8G3gyOFUGV0+0gXNum3PuZuByoM+drthDbfCsc+7LwHXAFUEsNyh6qA32OOduDG6lveME2+MS4OnAv/8F3dpBT14B2INXEp4OnARsbrMsEtgNjAZigA3AZGAa8Hy7n6FAROB16cCjXn8mj9rgbOBK/F8G53v9mbxog8BrLgBWAld7/Zm8aoPA634BnOT1Z/K4DZ72+vP0cnt8F5gZ2Oax7rx/FCHIObfCzLLbLZ4L7HLO7QEwsyeAC51zPwG6OjRSDsQGo85g6ok2MLMzgYH4fznqzOxF51xLUAvvQT31e+CcWwYsM7MXgMeCV3HP66HfAwPuBl5yzq0NbsU9r4e/D/q8E2kP/EdJRgLr6eaRoZAMhU6MAPLaPM8H5nW2sZldApwLpAC/C25pveaE2sA5930AM7sOKO1LgdCFE/09WIi/Cx0LvBjUynrPCbUBcCv+XmOymY11zt0fzOJ6yYn+HgwBfgzMMrPvBsKjP+msPe4Bfmdmn6Wb02H0pVCwDpZ1euWdc+4Z4JngleOJE2qD1g2ce6jnS/HMif4eLAeWB6sYj5xoG9yD/8uhPznRNjgM3By8cjzXYXs452qA60/kjUJyoLkT+UBmm+cjgUKPavGK2kBtAGoDUBu012Pt0ZdC4UNgnJnlmFkM/gHUZR7X1NvUBmoDUBuA2qC9HmuPkAwFM3sceA+YYGb5Znajc64J+BrwCrANeNI5t8XLOoNJbaA2ALUBqA3aC3Z7aEI8ERFpFZI9BRER8YZCQUREWikURESklUJBRERaKRRERKSVQkFERFopFCTozOxIL+zjgm5OJd6T+1xoZqd+jNfNMrMHAo+vM7OQmJvLzLLbT8fcwTZpZvZyb9UkvU+hIH2GmUV2ts45t8w5d3cQ9tnV/GALgRMOBeB7wG8/VkEec86VAEVmNt/rWiQ4FArSq8zsDjP70Mw2mtkP2yx/1vx3iNtiZovbLD9iZj8ys/eBU8xsn5n90MzWmtkmM5sY2K71L24ze8jM7jGzlWa2x8w+H1geYWb3BfbxvJm9eHRduxqXm9n/mNlbwO1m9jkze9/M1pnZ62aWHpi6+GbgG2a23sxOC/wVvTTw+T7s6IvTzBKB6c65DR2sG2VmbwTa5g0zywosH2NmqwLv+aOOel7mv8PWC2a2wcw2m9kVgeVzAu2wwcw+MLPEQI/g7UAbru2ot2NmkWb2szb/Vl9ps/pZoFt38ZI+yOsbRuin//8ARwL/PQdYgn9Gxwj8N0A5PbBucOC/A4DNwJDAcwdc3ua99gG3Bh5/FXgg8Pg64HeBxw8BTwX2MRn/PPMAn8c/fXYEMAz/vTY+30G9y4H72jwfxD+v/r8J+EXg8Z3Af7TZ7jFgQeBxFrCtg/c+E1ja5nnbup8DvhR4fAPwbODx88BVgcc3H23Pdu97KfDHNs+T8d9sZQ8wJ7AsCf/MyPFAXGDZOGB14HE2gRu3AIuB/ww8jgVWAzmB5yOATV7/XuknOD99aeps6fvOCfysCzxPwP+ltAK4zcwuDizPDCw/DDQDS9u9z9Ep0dfgv1dCR551/vtHbDWz9MCyBcBTgeUHzezNLmr9a5vHI4G/mtlw/F+0ezt5zdnAZLPWWYyTzCzROVfdZpvhQEknrz+lzed5BPjfNssvCjx+DPh5B6/dBPzczH4KPO+ce9vMpgFFzrkPAZxzVeDvVeCfY38m/vYd38H7nQNMb9OTSsb/b7IXKAYyOvkM0scpFKQ3GfAT59wfjlnovxHO2cApzrlaM1uO/97aAPXOueZ279MQ+G8znf8ON7R5bO3+2x01bR7/Fvilc25ZoNY7O3lNBP7PUNfF+9bxz892PN2emMw5t9PMZgPnAT8xs1fxH+bp6D2+ARwCZgRqru9gG8PfI3ulg3Vx+D+H9EMaU5De9Apwg5klAJjZCDMbiv+v0PJAIEwETg7S/t8BLg2MLaTjHyjujmSgIPD4S22WVwOJbZ6/in+mSgACf4m3tw0Y28l+VuKf8hj8x+zfCTxehf/wEG3WH8PMMoBa59xf8PckTgK2AxlmNiewTWJg4DwZfw+iBbgW//1923sFuMXMogOvHR/oYYC/Z9HlWUrSdykUpNc4517Ff/jjPTPbBDyN/0v1ZSDKzDYCd+H/EgyGpfhvRrIZ+APwPlDZjdfdCTxlZm8DpW2WPwdcfHSgGbgNyA0MzG6lgzt9Oee2478tZmL7dYHXXx9oh2uB2wPLvw78u5l9gP/wU0c1TwM+MLP1wPeB/3bONQJXAL81sw3Aa/j/yr8P+JKZrcL/BV/Twfs9AGwF1gZOU/0D/+yVnQm80MFrpB/Q1NkSVswswTl3xPz37P0AmO+cO9jLNXwDqHbOPdDN7eOBOuecM7Mr8Q86XxjUIruuZwVwoXOu3KsaJHg0piDh5nkzS8E/YHxXbwdCwO+By05g+9n4B4YNqMB/ZpInzCwN//iKAqGfUk9BRERaaUxBRERaKRRERKSVQkFERFopFEREpJVCQUREWikURESk1f8HQxRtSbmK2oAAAAAASUVORK5CYII=\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "lr = 1e-2",
"execution_count": 78,
"outputs": []
},
{
"metadata": {
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "learn.fit(lr, 3)",
"execution_count": 79,
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d27091c871c643abb1dab38ecaae6c26",
"version_major": 2,
"version_minor": 0
},
"text/plain": "HBox(children=(IntProgress(value=0, description='Epoch', max=3), HTML(value='')))"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "epoch trn_loss val_loss accuracy \n 0 0.449856 1.898859 0.240705 \n 1 0.382201 2.255112 0.23728 \n 2 0.374712 1.849386 0.355186 \n\n"
},
{
"data": {
"text/plain": "[1.8493863915743893, 0.3551859100023011]"
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "lrs = np.array([lr/9,lr/3,lr])",
"execution_count": 80,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learn.unfreeze()\nlearn.fit(lrs, 3, cycle_len=1, cycle_mult=2)",
"execution_count": 81,
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "86491c7d6aff4f23b671a4f3b2cb0f09",
"version_major": 2,
"version_minor": 0
},
"text/plain": "HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "epoch trn_loss val_loss accuracy \n 0 0.160153 1.771242 0.441536 \n 1 0.107253 3.220987 0.277153 \n 2 0.06957 2.784059 0.358611 \n 3 0.085327 2.900232 0.328033 \n 4 0.044806 3.06732 0.34638 \n 5 0.024967 3.141949 0.373532 \n 6 0.022285 3.823192 0.290362 \n\n"
},
{
"data": {
"text/plain": "[3.8231915788407895, 0.29036203522504894]"
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learn.save(f'{sz}')",
"execution_count": 39,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learn.load(f'{sz}')",
"execution_count": 54,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "log_preds,y = learn.TTA()\nprobs = np.mean(np.exp(log_preds),0)",
"execution_count": 45,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": " \r"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "accuracy_np(probs, y)",
"execution_count": 46,
"outputs": [
{
"data": {
"text/plain": "0.4669765166340509"
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Confusion matrix "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "preds = np.argmax(probs, axis=1)\nprobs = probs[:,1]",
"execution_count": 43,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.metrics import confusion_matrix\ncm = confusion_matrix(y, preds)",
"execution_count": 44,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "plot_confusion_matrix(cm, data.classes)",
"execution_count": 45,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "[[1000 0]\n [ 1 999]]\n"
},
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 2 Axes>"
},
"metadata": {},
"output_type": "display_data"
}
]
}
],
"metadata": {
"gist": {
"id": "",
"data": {
"description": "",
"public": true
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.5",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"colors": {
"hover_highlight": "#DAA520",
"navigate_num": "#000000",
"navigate_text": "#333333",
"running_highlight": "#FF0000",
"selected_highlight": "#FFD700",
"sidebar_border": "#EEEEEE",
"wrapper_background": "#FFFFFF"
},
"moveMenuLeft": true,
"nav_menu": {
"height": "266px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false,
"widenNotebook": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment