Skip to content

Instantly share code, notes, and snippets.

@jchaykow
Created February 2, 2019 16:56
Show Gist options
  • Save jchaykow/05b066935120ae71aa242c654b4a8367 to your computer and use it in GitHub Desktop.
Save jchaykow/05b066935120ae71aa242c654b4a8367 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test in tabular"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pytest"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from fastai.train import ClassificationInterpretation"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from fastai.tabular import *\n",
"\n",
"pytestmark = pytest.mark.integration\n",
"path = untar_data(URLs.ADULT_SAMPLE)\n",
"\n",
"@pytest.fixture(scope=\"module\")\n",
"def learn():\n",
" df = pd.read_csv(path/'adult.csv')\n",
" procs = [FillMissing, Categorify, Normalize]\n",
" dep_var = 'salary'\n",
" cat_names = ['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race', 'sex', 'native-country']\n",
" cont_names = ['age', 'fnlwgt', 'education-num']\n",
" test = TabularList.from_df(df.iloc[800:1000].copy(), path=path, cat_names=cat_names, cont_names=cont_names)\n",
" data = (TabularList.from_df(df, path=path, cat_names=cat_names, cont_names=cont_names, procs=procs)\n",
" .split_by_idx(list(range(800,1000)))\n",
" .label_from_df(cols=dep_var)\n",
" .add_test(test)\n",
" .databunch(num_workers=1))\n",
" learn = tabular_learner(data, layers=[200,100], emb_szs={'native-country': 10}, metrics=accuracy)\n",
" learn.fit_one_cycle(2, 1e-2)\n",
" return learn"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"interp = ClassificationInterpretation.from_learner(learn())"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[150, 5],\n",
" [ 30, 15]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interp.confusion_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"interp.plot_confusion_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('>=50k', '<50k', 30), ('<50k', '>=50k', 5)]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interp.most_confused()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"losses, idxs = interp.top_losses()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor([4.1996, 3.3137, 3.0365, 2.7762, 2.5842, 2.1620, 1.7882, 1.7127, 1.4891,\n",
" 1.3865]), tensor([166, 24, 26, 195, 45, 42, 139, 146, 125, 9]))"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"losses[:10], idxs[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test in vision\n",
"- with additional plot_losses methods"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"from fastai.vision import *"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"@pytest.fixture(scope=\"module\")\n",
"def learn():\n",
" path = untar_data(URLs.MNIST_TINY)\n",
" data = ImageDataBunch.from_folder(path, ds_tfms=(rand_pad(2, 28), []), num_workers=2)\n",
" data.normalize()\n",
" learn = Learner(data, simple_cnn((3,16,16,16,2), bn=True), metrics=[accuracy, error_rate])\n",
" learn.fit_one_cycle(3)\n",
" return learn"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Total time: 00:04 <p>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interp = ClassificationInterpretation.from_learner(learn(), tta = True)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[329, 17],\n",
" [ 2, 351]])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interp.confusion_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAARoAAAEmCAYAAAC9C19sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAFEFJREFUeJzt3Xu4VXWd+PH353C4KQgoqKijlgqITnJTGqcaNXW0vOZTSuadHJvBMmv6qfmUpk2O1u/RmS6jTNPPS5mZQxcv43VIJTFBEU3BSwGOhAmTyEW5fn5/7HXsyMOBw+V79ubwfj3Pfjx7r3XW+mwPvN1r7bWPkZlIUklN9R5AUudnaCQVZ2gkFWdoJBVnaCQVZ2gkFWdotlIR0TMifhkRCyPi9k3YzqkRcd/mnK1eIuKDETGz3nN0RuF1NI0tIj4JXAgMARYB04CvZ+ajm7jd04DzgYMzc+UmD9rgIiKBfTLzpXrPsjXyFU0Di4gLgWuBfwJ2AnYHvgscvxk2vwfwwtYQmfaIiOZ6z9CpZaa3BrwBfYDFwMfXsU53aiGaW92uBbpXyw4B/gf4AvBH4A/AWdWyy4HlwIpqH+cAlwG3tNr2nkACzdX9M4HfUXtV9Xvg1FaPP9rq+w4GngAWVv88uNWyicAVwKRqO/cB/dt4bi3zf6nV/CcAHwFeAP4XuKTV+gcBjwFvVOt+G+hWLXu4ei5Lqud7cqvt/x9gHnBzy2PV9+xV7WNEdX8XYD5wSL3/bGyJt7oP4K2NHwwcBaxs+YvexjpfAyYDOwIDgF8DV1TLDqm+/2tA1+ov6FKgX7V8zbC0GRpgW+BNYHC1bCCwX/X1O6EBtgf+BJxWfd+Y6v4O1fKJwMvAIKBndf+qNp5by/xfqeb/NPA68COgN7Af8Dbw3mr9kcD7q/3uCTwPXNBqewnsvZbt/zO1YPdsHZpqnU9X29kGuBf4Zr3/XGypNw+dGtcOwPxc96HNqcDXMvOPmfk6tVcqp7VavqJaviIz76b2X/PBGznPamD/iOiZmX/IzN+uZZ2PAi9m5s2ZuTIzbwVmAMe2WucHmflCZr4F/AQYto59rqB2PmoF8GOgP3BdZi6q9v9b4H0AmTk1MydX+50FXA/8TTue01czc1k1z7tk5njgReBxanH98nq2pzYYmsa1AOi/nnMHuwCzW92fXT32zjbWCNVSoNeGDpKZS6gdbpwH/CEi7oqIIe2Yp2WmXVvdn7cB8yzIzFXV1y0heK3V8rdavj8iBkXEnRExLyLepHZeq/86tg3wema+vZ51xgP7A/+amcvWs67aYGga12PUDg1OWMc6c6md1G2xe/XYxlhC7RChxc6tF2bmvZl5BLX/ss+g9hdwffO0zPTqRs60Ib5Hba59MnM74BIg1vM963zLNSJ6UTvv9X3gsojYfnMMujUyNA0qMxdSOz/xnYg4ISK2iYiuEXF0RFxdrXYrcGlEDIiI/tX6t2zkLqcBH4qI3SOiD3Bxy4KI2CkijouIbYFl1A7BVq1lG3cDgyLikxHRHBEnA0OBOzdypg3Rm9p5pMXVq63PrLH8NeC9G7jN64CpmTkWuAv4t02ecitlaBpYZv5fatfQXErtROgrwDjgZ9UqVwJTgOnAM8CT1WMbs6/7gduqbU3l3XFoovbu1Vxq78T8DfD3a9nGAuCYat0F1N4xOiYz52/MTBvoi8Anqb2bNZ7ac2ntMuDGiHgjIj6xvo1FxPHUTsifVz10ITAiIk7dbBNvRbxgT1JxvqKRVJyhkVScoZFUnKGRVFxDfZAsum6b0aNvvcdQAQfsM7DeI6iAOXNmsWD+/PVdr9RgoenRl+6j1rz8QZ3BQ3ddvP6VtMU57AOj27Weh06SijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koozNJKKMzSSijM0koprrvcAnVH3rl144LrT6datmeYuTUz41fNc+f8e5gdfPoERgwayYtUqpsyYy7hv3c3KVavp26sH13/pGN6zSz+WLV/J3119J8/Ner3eT0PrMe68sdx3z130H7Ajv57yNABnnz6Gl154AYCFC9+gT5++PDx5aj3HbAi+oilg2YpVHHXhLYweO57RY8dz5EF7cdC+u/LjB57hgDO+x6izb6Bnt66c9dFhAHzp1L/m6Zde46Cx4znnG7/gm+cfWedn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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"interp.plot_confusion_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('3', '7', 17), ('7', '3', 2)]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interp.most_confused()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"losses, idxs = interp.top_losses()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor([0.8811, 0.7913, 0.7798, 0.7450, 0.7419, 0.7401, 0.7392, 0.7298, 0.7278,\n",
" 0.7274]), tensor([335, 13, 341, 11, 292, 17, 1, 575, 94, 206]))"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"losses[:10], idxs[:10]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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5YK5S97whjd01b3yla/sbnOnnXbqqrviiiu62/zc5z7XXfuEJzyhq24lSxB/5CMf6a7tdd5553XXnnXWWV11X/3qVze0O0OwXPAdGbM3vl133bWr7oQTTuhu89WvfnV3be/f/JUsl7uabSbJxRdfvNHb3Geffbpre9vda6+9uttcyd+3bZnlggEA2OYJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhWUGNO3nc4x7XXdu7MlfvqmhsGn/3d3/XVffUpz51E/dky2YFtTsyZm98p512WlfdM57xjO42t5bVzt785jd3t3nGGWd011500UVddUceeWR3myeddFJ3be/5v+QlL+lu853vfGd37bbMCmoAAGzzhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGtcNqd4Atz2c/+9nu2hNOOKGrbrfddtvQ7mxzjj322K66hzzkIZu4J8DGdsQRR3TV9S5Bm6xsad+1a9d21d14443dba5Zs6ar7nWve113myux6667dtUdeuih3W2u5D7t9fGPf3yjt0kfM7sAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYlgvmTm6++ebu2t/5nd/ZhD0Zx0qWydx999276jbFcpbApnXYYYd11R1++OHdbZ599tndtWeccUZX3UqWC15tvcvWP+MZz+hucyXLNfcul9xbx8ZnZhcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBh1UpWCbnLB6vafAeDDbT99tt31b3//e/vbnMlK/f0rox22WWXdbf56Ec/uqvu61//enebI2qtWZZujjGbjWnXXXftru1dFS1JXv3qV3fVrSTvXHzxxd21Bx98cFfdlVde2d0mfXrHbDO7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWDusdgdgS/OmN72pq+7www/fJMe/6qqruupe+9rXdre5rS8DDKy+U045pbt2JUus9y4DvGbNmu42jzrqqO5aywBv+czsAgAwLGEXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl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XQAAhrXDancAFjvmmGO66layBPBKln5cu3ZtV90+++zT3ebpp5/eXXvRRRd11Z1wwgndbW63Xd/z2ttuu627zVe84hXdtbA1eve7391Vd5/73GcT92QM119/fXftJz/5yY1+/HPPPbe79olPfGJ37SGHHLIh3dkoVvJ3cFtmZhcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhWUGNu+TII4/sqlvJal/77bdfV11rrbvNlfjiF7/YVffMZz6zu83eVdmS5I1vfGNX3UrOv3dltDVr1nS3uZJa2BrdcMMNq92FLpdeeml37dvf/vauujPPPLO7zd4VKm+66abuNr/85S93124Ke+21V3ftJZdcsgl7srzTTjtt1Y69NTGzCwDAsIRdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhlWbasnVJQ9WtfkOxh3suuuu3bX7779/d+25557bVbeSx1nv0pOnn356d5uve93rumtXexnc3qV9r7jiiu42f+/3fq+r7k1velN3myNqrfU9+LYR2/qYffe7372rbrfddutus3d8W8mYefPNN3fXXnPNNd2127IPfOAD3bWHHnroRj/+8ccf31V38sknd7d5/fXXb2h3tli9Y7aZXQAAhiXsAgAwLGEXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMKwdVrsD3DWvec1ruuqe85zndLe53377ddf2Lmm5kqUvjzvuuK66M844o7vNG2+8sbu216mnntpdu5Lz761dyXLJ2/oywLAhbrrppo1ax+p6/etf31379Kc/vbu2d4n3q6++urvNM888s6tuxCWANwUzuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhCbsAAAzLCmpboNNOO6279vDDD++qq6ruNley2lfvykHHHntsd5srWRmt15577tld+6IXvair7phjjulucyX36e/+7u921Z144ondbQJsTX7gB36gu/aXfumXuuqe+cxndrfZuypakpx33nlddc94xjO627z00ku7a1k/M7sAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYlgveAvUuAZysbBnaXqeffnp37ete97quurVr125od9bpgAMO6K5961vf2l37ile8oqvupS99aXebK1ku+UMf+lB3LcCIvv3tb3fXHnrooV11O++8c3ebX/rSl7prTzvttK46SwCvHjO7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADAsYRcAgGEJuwAADKs2xQpc6zxY1eY72Fbs1FNP7a7df//9u+re/OY3d7e5khXUeu25557dtS972cu66k444YTuNi+44ILu2j322KOr7slPfnJ3m2vWrOmuZfW01mq1+7AlMWaP52EPe1hX3YEHHtjdZu+Y+XM/93Pdbe62227dtbfddltX3TnnnNPd5itf+cru2iuuuKK7lo2rd8w2swsAwLCEXQAAhiXsAgAwLGEXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIa1w2p3gDs79thjV7sL3Q455JCuure85S3dbR500EFddStZ6noltY997GO76i666KLuNgG2BL1j9t57793dZu/SvhdffHF3m2984xu7a9euXdtV981vfrO7TcZiZhcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhCbsAAAzLcsHbiH322ae79pRTTumufdKTntRVt5Lleququ7bXGWecsarHB9gS7L///l11v/ALv9Dd5nbb9c2b3Xbbbd1trlmzprv2bW97W1fdSv4OXXfddd21bPnM7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADCsWsmKInf5YFWb72Dcwc/8zM90177nPe/pru1dbWxTrKC2qVZlu+KKK7rqPvOZz3S3eeyxx3bXXnnlld21bFytNcvnzTFmj+cnf/Inu+pOOumk7jYf8IAHdNVtzryxlJWsDvr85z9/E/aEjaV3zDazCwDAsIRdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhmW54G3EAQcc0F37qU99qru2dxne008/vbvNs88+u6tu//33727zaU97Wnftfvvt11W3kiWI16xZ0137sIc9rLuWjctywXdkzN527bvvvt21J598clfdpsobP/iDP9hVd4973KO7zde//vXdtX/8x3/cVXfppZd2t0kfywUDALDNE3YBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYluWCuZOVLMPba+3atRu9zZXYZZddumuPOOKIrrpTTjmlu82V/J4961nP6qpbyRLM9LFc8B0Zs1ktvUsAJ8mHP/zhrrqdd965u81vfOMb3bW9S8xfffXV3W3Sx3LBAABs84RdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLB2WO0OsOVZ7dXONoUbb7yxu/a9731vV92pp566od1Z1n3ve99N0i7A1mK33Xbrrl3Jymi9dtppp+7a7/me7+mqs4La6jGzCwDAsIRdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhmW5YFjkyCOP7KprrXW3uZJagBG99KUv7a5929vettGPv5Jl40844YTu2i9+8Ysb0h02IzO7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADAsYRcAgGEJuwAADMsKamy19txzz+7ak08+ubv28MMP76q76aabuts88cQTu2vf+c53dtfCyB75yEdu9Davu+667tp/+7d/2+jH33HHHbvqDjzwwI1+7NX2Yz/2Y921K1l18uqrr+6qW8k4/I53vKO7li2fmV0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADCsWsmSfHf5YFWb72BboAMOOKCr7q1vfWt3m8cee2xXXVV1t3nEEUd0124KvcsAv+AFL+huc++99+6u7f2dOProo7vbPOOMM7prWT2ttf5flG3Aao/Zt956a1fdSv6OfeMb3+iu/fSnP91d22unnXbqqnvSk5600Y+9qfT+ffn85z/f3eYnP/nJ7to/+IM/6Kr7whe+0N0mW4feMdvMLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJblgjejc889t6vu4IMP7m7ztttu66rbbrv+5zW9bSb9y0SuWbOmu80//dM/7arbb7/9uts8++yzu2tPP/30rrorr7yyu022DpYLvqPVHrPf/e53d9X1Lpu+JegdMzfn3+alfPGLX+yu/cxnPtNV94d/+IfdbZ5zzjndtWy7LBcMAMA2T9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADAsYRcAgGEJuwAADGuH1e7AtuSMM87oqjvooIO62+xdZefkk0/ubnMl3vWud3XVrV27trvNG2+8cUO7Awzk+OOP76q7/PLLN3FPtmynnXZad+2FF17YVbeScfj666/vroXVYGYXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMq3qXm90oB6vafAcDWKHWWq12H7YkxmxgS9Y7ZpvZBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXAIBhCbsAAAxL2AUAYFjCLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsKq1ttp9AACATcLMLgAAwxJ2AQAYlrALAMCwhF0AAIYl7AIAMCxhFwCAYQm7AAAMS9gFAGBYwi4AAMMSdgEAGJawCwDAsIRdAACGJewCADAsYRcAgGEJuwAADEvYBQBgWMIuAADDEnYBABiWsAsAwLCEXQAAhiXsAgAwLGEXgP+/3TqQAQAAABjkb32PrygC2JJdAAC2AoGF4EPBWNEWAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 864x864 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"interp.plot_top_losses(4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment