spam-ml-mx-v2

WIP
git clone git://archive.git.mtrnord.blog/MTRNord/spam-ml-mx-v2.git
Log | Files | Refs | LICENSE

model.ipynb (23988B)


      1 {
      2  "cells": [
      3   {
      4    "cell_type": "code",
      5    "execution_count": 1,
      6    "metadata": {},
      7    "outputs": [],
      8    "source": [
      9     "from fastai.text.all import *\n",
     10     "import os\n",
     11     "import fastai"
     12    ]
     13   },
     14   {
     15    "cell_type": "code",
     16    "execution_count": 2,
     17    "metadata": {},
     18    "outputs": [],
     19    "source": [
     20     "cwd = os.getcwd()\n",
     21     "p = Path(f\"{cwd}/.fastai\")\n",
     22     "if not p.exists():\n",
     23     "    p.mkdir()\n"
     24    ]
     25   },
     26   {
     27    "cell_type": "code",
     28    "execution_count": 3,
     29    "metadata": {},
     30    "outputs": [
     31     {
     32      "data": {
     33       "text/plain": [
     34        "(#4) [Path('/workspaces/spam-ml-mx-v2/.fastai/imdb/train/pos'),Path('/workspaces/spam-ml-mx-v2/.fastai/imdb/train/unsupBow.feat'),Path('/workspaces/spam-ml-mx-v2/.fastai/imdb/train/labeledBow.feat'),Path('/workspaces/spam-ml-mx-v2/.fastai/imdb/train/neg')]"
     35       ]
     36      },
     37      "execution_count": 3,
     38      "metadata": {},
     39      "output_type": "execute_result"
     40     }
     41    ],
     42    "source": [
     43     "path = untar_data(URLs.IMDB, data=p)\n",
     44     "(path/'train').ls()\n"
     45    ]
     46   },
     47   {
     48    "cell_type": "code",
     49    "execution_count": 4,
     50    "metadata": {},
     51    "outputs": [
     52     {
     53      "name": "stdout",
     54      "output_type": "stream",
     55      "text": [
     56       "Could not do one pass in your dataloader, there is something wrong in it. Please see the stack trace below:\n"
     57      ]
     58     },
     59     {
     60      "ename": "RuntimeError",
     61      "evalue": "Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx",
     62      "output_type": "error",
     63      "traceback": [
     64       "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
     65       "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
     66       "Cell \u001b[0;32mIn[4], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m source \u001b[39m=\u001b[39m untar_data(URLs\u001b[39m.\u001b[39mIMDB, data\u001b[39m=\u001b[39mp)\n\u001b[0;32m----> 2\u001b[0m dls \u001b[39m=\u001b[39m TextDataLoaders\u001b[39m.\u001b[39;49mfrom_folder(source, valid\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mtest\u001b[39;49m\u001b[39m\"\u001b[39;49m, bs\u001b[39m=\u001b[39;49m\u001b[39m64\u001b[39;49m,\n\u001b[1;32m      3\u001b[0m                                   device\u001b[39m=\u001b[39;49mtorch\u001b[39m.\u001b[39;49mdevice(\u001b[39m'\u001b[39;49m\u001b[39mcuda\u001b[39;49m\u001b[39m'\u001b[39;49m))\n\u001b[1;32m      4\u001b[0m dls\u001b[39m.\u001b[39mshow_batch()\n",
     67       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/text/data.py:262\u001b[0m, in \u001b[0;36mTextDataLoaders.from_folder\u001b[0;34m(cls, path, train, valid, valid_pct, seed, vocab, text_vocab, is_lm, tok_tfm, seq_len, splitter, backwards, **kwargs)\u001b[0m\n\u001b[1;32m    257\u001b[0m get_items \u001b[39m=\u001b[39m partial(get_text_files, folders\u001b[39m=\u001b[39m[train,valid]) \u001b[39mif\u001b[39;00m valid_pct \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m get_text_files\n\u001b[1;32m    258\u001b[0m dblock \u001b[39m=\u001b[39m DataBlock(blocks\u001b[39m=\u001b[39mblocks,\n\u001b[1;32m    259\u001b[0m                    get_items\u001b[39m=\u001b[39mget_items,\n\u001b[1;32m    260\u001b[0m                    splitter\u001b[39m=\u001b[39msplitter,\n\u001b[1;32m    261\u001b[0m                    get_y\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m \u001b[39mif\u001b[39;00m is_lm \u001b[39melse\u001b[39;00m parent_label)\n\u001b[0;32m--> 262\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mcls\u001b[39;49m\u001b[39m.\u001b[39;49mfrom_dblock(dblock, path, path\u001b[39m=\u001b[39;49mpath, seq_len\u001b[39m=\u001b[39;49mseq_len, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
     68       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/core.py:284\u001b[0m, in \u001b[0;36mDataLoaders.from_dblock\u001b[0;34m(cls, dblock, source, path, bs, val_bs, shuffle, device, **kwargs)\u001b[0m\n\u001b[1;32m    273\u001b[0m \u001b[39m@classmethod\u001b[39m\n\u001b[1;32m    274\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mfrom_dblock\u001b[39m(\u001b[39mcls\u001b[39m, \n\u001b[1;32m    275\u001b[0m     dblock, \u001b[39m# `DataBlock` object\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    282\u001b[0m     \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs\n\u001b[1;32m    283\u001b[0m ):\n\u001b[0;32m--> 284\u001b[0m     \u001b[39mreturn\u001b[39;00m dblock\u001b[39m.\u001b[39;49mdataloaders(source, path\u001b[39m=\u001b[39;49mpath, bs\u001b[39m=\u001b[39;49mbs, val_bs\u001b[39m=\u001b[39;49mval_bs, shuffle\u001b[39m=\u001b[39;49mshuffle, device\u001b[39m=\u001b[39;49mdevice, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
     69       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/block.py:157\u001b[0m, in \u001b[0;36mDataBlock.dataloaders\u001b[0;34m(self, source, path, verbose, **kwargs)\u001b[0m\n\u001b[1;32m    155\u001b[0m dsets \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdatasets(source, verbose\u001b[39m=\u001b[39mverbose)\n\u001b[1;32m    156\u001b[0m kwargs \u001b[39m=\u001b[39m {\u001b[39m*\u001b[39m\u001b[39m*\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdls_kwargs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs, \u001b[39m'\u001b[39m\u001b[39mverbose\u001b[39m\u001b[39m'\u001b[39m: verbose}\n\u001b[0;32m--> 157\u001b[0m \u001b[39mreturn\u001b[39;00m dsets\u001b[39m.\u001b[39;49mdataloaders(path\u001b[39m=\u001b[39;49mpath, after_item\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mitem_tfms, after_batch\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mbatch_tfms, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
     70       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/core.py:337\u001b[0m, in \u001b[0;36mFilteredBase.dataloaders\u001b[0;34m(self, bs, shuffle_train, shuffle, val_shuffle, n, path, dl_type, dl_kwargs, device, drop_last, val_bs, **kwargs)\u001b[0m\n\u001b[1;32m    335\u001b[0m dl \u001b[39m=\u001b[39m dl_type(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39msubset(\u001b[39m0\u001b[39m), \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mmerge(kwargs,def_kwargs, dl_kwargs[\u001b[39m0\u001b[39m]))\n\u001b[1;32m    336\u001b[0m def_kwargs \u001b[39m=\u001b[39m {\u001b[39m'\u001b[39m\u001b[39mbs\u001b[39m\u001b[39m'\u001b[39m:bs \u001b[39mif\u001b[39;00m val_bs \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m val_bs,\u001b[39m'\u001b[39m\u001b[39mshuffle\u001b[39m\u001b[39m'\u001b[39m:val_shuffle,\u001b[39m'\u001b[39m\u001b[39mn\u001b[39m\u001b[39m'\u001b[39m:\u001b[39mNone\u001b[39;00m,\u001b[39m'\u001b[39m\u001b[39mdrop_last\u001b[39m\u001b[39m'\u001b[39m:\u001b[39mFalse\u001b[39;00m}\n\u001b[0;32m--> 337\u001b[0m dls \u001b[39m=\u001b[39m [dl] \u001b[39m+\u001b[39m [dl\u001b[39m.\u001b[39mnew(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39msubset(i), \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mmerge(kwargs,def_kwargs,val_kwargs,dl_kwargs[i]))\n\u001b[1;32m    338\u001b[0m               \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39m1\u001b[39m, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mn_subsets)]\n\u001b[1;32m    339\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_dbunch_type(\u001b[39m*\u001b[39mdls, path\u001b[39m=\u001b[39mpath, device\u001b[39m=\u001b[39mdevice)\n",
     71       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/core.py:337\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    335\u001b[0m dl \u001b[39m=\u001b[39m dl_type(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39msubset(\u001b[39m0\u001b[39m), \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mmerge(kwargs,def_kwargs, dl_kwargs[\u001b[39m0\u001b[39m]))\n\u001b[1;32m    336\u001b[0m def_kwargs \u001b[39m=\u001b[39m {\u001b[39m'\u001b[39m\u001b[39mbs\u001b[39m\u001b[39m'\u001b[39m:bs \u001b[39mif\u001b[39;00m val_bs \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m val_bs,\u001b[39m'\u001b[39m\u001b[39mshuffle\u001b[39m\u001b[39m'\u001b[39m:val_shuffle,\u001b[39m'\u001b[39m\u001b[39mn\u001b[39m\u001b[39m'\u001b[39m:\u001b[39mNone\u001b[39;00m,\u001b[39m'\u001b[39m\u001b[39mdrop_last\u001b[39m\u001b[39m'\u001b[39m:\u001b[39mFalse\u001b[39;00m}\n\u001b[0;32m--> 337\u001b[0m dls \u001b[39m=\u001b[39m [dl] \u001b[39m+\u001b[39m [dl\u001b[39m.\u001b[39;49mnew(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msubset(i), \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mmerge(kwargs,def_kwargs,val_kwargs,dl_kwargs[i]))\n\u001b[1;32m    338\u001b[0m               \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39m1\u001b[39m, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mn_subsets)]\n\u001b[1;32m    339\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_dbunch_type(\u001b[39m*\u001b[39mdls, path\u001b[39m=\u001b[39mpath, device\u001b[39m=\u001b[39mdevice)\n",
     72       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/text/data.py:218\u001b[0m, in \u001b[0;36mSortedDL.new\u001b[0;34m(self, dataset, **kwargs)\u001b[0m\n\u001b[1;32m    216\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39m'\u001b[39m\u001b[39mval_res\u001b[39m\u001b[39m'\u001b[39m \u001b[39min\u001b[39;00m kwargs \u001b[39mand\u001b[39;00m kwargs[\u001b[39m'\u001b[39m\u001b[39mval_res\u001b[39m\u001b[39m'\u001b[39m] \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m: res \u001b[39m=\u001b[39m kwargs[\u001b[39m'\u001b[39m\u001b[39mval_res\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[1;32m    217\u001b[0m \u001b[39melse\u001b[39;00m: res \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mres \u001b[39mif\u001b[39;00m dataset \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m--> 218\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39msuper\u001b[39;49m()\u001b[39m.\u001b[39;49mnew(dataset\u001b[39m=\u001b[39;49mdataset, res\u001b[39m=\u001b[39;49mres, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
     73       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/core.py:97\u001b[0m, in \u001b[0;36mTfmdDL.new\u001b[0;34m(self, dataset, cls, **kwargs)\u001b[0m\n\u001b[1;32m     95\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mhasattr\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m'\u001b[39m\u001b[39m_n_inp\u001b[39m\u001b[39m'\u001b[39m) \u001b[39mor\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mhasattr\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m'\u001b[39m\u001b[39m_types\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[1;32m     96\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 97\u001b[0m         \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_one_pass()\n\u001b[1;32m     98\u001b[0m         res\u001b[39m.\u001b[39m_n_inp,res\u001b[39m.\u001b[39m_types \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_n_inp,\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_types\n\u001b[1;32m     99\u001b[0m     \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e: \n",
     74       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/data/core.py:79\u001b[0m, in \u001b[0;36mTfmdDL._one_pass\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     77\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_one_pass\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m     78\u001b[0m     b \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdo_batch([\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdo_item(\u001b[39mNone\u001b[39;00m)])\n\u001b[0;32m---> 79\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdevice \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m: b \u001b[39m=\u001b[39m to_device(b, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mdevice)\n\u001b[1;32m     80\u001b[0m     its \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mafter_batch(b)\n\u001b[1;32m     81\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_n_inp \u001b[39m=\u001b[39m \u001b[39m1\u001b[39m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39misinstance\u001b[39m(its, (\u001b[39mlist\u001b[39m,\u001b[39mtuple\u001b[39m)) \u001b[39mor\u001b[39;00m \u001b[39mlen\u001b[39m(its)\u001b[39m==\u001b[39m\u001b[39m1\u001b[39m \u001b[39melse\u001b[39;00m \u001b[39mlen\u001b[39m(its)\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m\n",
     75       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:285\u001b[0m, in \u001b[0;36mto_device\u001b[0;34m(b, device, non_blocking)\u001b[0m\n\u001b[1;32m    283\u001b[0m \u001b[39m#         if hasattr(o, \"to_device\"): return o.to_device(device)\u001b[39;00m\n\u001b[1;32m    284\u001b[0m         \u001b[39mreturn\u001b[39;00m o\n\u001b[0;32m--> 285\u001b[0m     \u001b[39mreturn\u001b[39;00m apply(_inner, b)\n",
     76       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:222\u001b[0m, in \u001b[0;36mapply\u001b[0;34m(func, x, *args, **kwargs)\u001b[0m\n\u001b[1;32m    220\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mapply\u001b[39m(func, x, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m    221\u001b[0m     \u001b[39m\"\u001b[39m\u001b[39mApply `func` recursively to `x`, passing on args\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m--> 222\u001b[0m     \u001b[39mif\u001b[39;00m is_listy(x): \u001b[39mreturn\u001b[39;00m \u001b[39mtype\u001b[39m(x)([apply(func, o, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs) \u001b[39mfor\u001b[39;00m o \u001b[39min\u001b[39;00m x])\n\u001b[1;32m    223\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(x,\u001b[39mdict\u001b[39m):  \u001b[39mreturn\u001b[39;00m {k: apply(func, v, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs) \u001b[39mfor\u001b[39;00m k,v \u001b[39min\u001b[39;00m x\u001b[39m.\u001b[39mitems()}\n\u001b[1;32m    224\u001b[0m     res \u001b[39m=\u001b[39m func(x, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n",
     77       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:222\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    220\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mapply\u001b[39m(func, x, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m    221\u001b[0m     \u001b[39m\"\u001b[39m\u001b[39mApply `func` recursively to `x`, passing on args\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m--> 222\u001b[0m     \u001b[39mif\u001b[39;00m is_listy(x): \u001b[39mreturn\u001b[39;00m \u001b[39mtype\u001b[39m(x)([apply(func, o, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs) \u001b[39mfor\u001b[39;00m o \u001b[39min\u001b[39;00m x])\n\u001b[1;32m    223\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(x,\u001b[39mdict\u001b[39m):  \u001b[39mreturn\u001b[39;00m {k: apply(func, v, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs) \u001b[39mfor\u001b[39;00m k,v \u001b[39min\u001b[39;00m x\u001b[39m.\u001b[39mitems()}\n\u001b[1;32m    224\u001b[0m     res \u001b[39m=\u001b[39m func(x, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n",
     78       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:224\u001b[0m, in \u001b[0;36mapply\u001b[0;34m(func, x, *args, **kwargs)\u001b[0m\n\u001b[1;32m    222\u001b[0m \u001b[39mif\u001b[39;00m is_listy(x): \u001b[39mreturn\u001b[39;00m \u001b[39mtype\u001b[39m(x)([apply(func, o, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs) \u001b[39mfor\u001b[39;00m o \u001b[39min\u001b[39;00m x])\n\u001b[1;32m    223\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(x,\u001b[39mdict\u001b[39m):  \u001b[39mreturn\u001b[39;00m {k: apply(func, v, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs) \u001b[39mfor\u001b[39;00m k,v \u001b[39min\u001b[39;00m x\u001b[39m.\u001b[39mitems()}\n\u001b[0;32m--> 224\u001b[0m res \u001b[39m=\u001b[39m func(x, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m    225\u001b[0m \u001b[39mreturn\u001b[39;00m res \u001b[39mif\u001b[39;00m x \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m retain_type(res, x)\n",
     79       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:282\u001b[0m, in \u001b[0;36mto_device.<locals>._inner\u001b[0;34m(o)\u001b[0m\n\u001b[1;32m    281\u001b[0m     \u001b[39mdef\u001b[39;00m \u001b[39m_inner\u001b[39m(o):\n\u001b[0;32m--> 282\u001b[0m         \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(o,Tensor): \u001b[39mreturn\u001b[39;00m o\u001b[39m.\u001b[39;49mto(device, non_blocking\u001b[39m=\u001b[39;49mnon_blocking)\n\u001b[1;32m    283\u001b[0m \u001b[39m#         if hasattr(o, \"to_device\"): return o.to_device(device)\u001b[39;00m\n\u001b[1;32m    284\u001b[0m         \u001b[39mreturn\u001b[39;00m o\n",
     80       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/fastai/torch_core.py:372\u001b[0m, in \u001b[0;36mTensorBase.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m    370\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mcls\u001b[39m\u001b[39m.\u001b[39mdebug \u001b[39mand\u001b[39;00m func\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m (\u001b[39m'\u001b[39m\u001b[39m__str__\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39m__repr__\u001b[39m\u001b[39m'\u001b[39m): \u001b[39mprint\u001b[39m(func, types, args, kwargs)\n\u001b[1;32m    371\u001b[0m \u001b[39mif\u001b[39;00m _torch_handled(args, \u001b[39mcls\u001b[39m\u001b[39m.\u001b[39m_opt, func): types \u001b[39m=\u001b[39m (torch\u001b[39m.\u001b[39mTensor,)\n\u001b[0;32m--> 372\u001b[0m res \u001b[39m=\u001b[39m \u001b[39msuper\u001b[39;49m()\u001b[39m.\u001b[39;49m__torch_function__(func, types, args, ifnone(kwargs, {}))\n\u001b[1;32m    373\u001b[0m dict_objs \u001b[39m=\u001b[39m _find_args(args) \u001b[39mif\u001b[39;00m args \u001b[39melse\u001b[39;00m _find_args(\u001b[39mlist\u001b[39m(kwargs\u001b[39m.\u001b[39mvalues()))\n\u001b[1;32m    374\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39missubclass\u001b[39m(\u001b[39mtype\u001b[39m(res),TensorBase) \u001b[39mand\u001b[39;00m dict_objs: res\u001b[39m.\u001b[39mset_meta(dict_objs[\u001b[39m0\u001b[39m],as_copy\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m)\n",
     81       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/_tensor.py:1279\u001b[0m, in \u001b[0;36mTensor.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m   1276\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mNotImplemented\u001b[39m\n\u001b[1;32m   1278\u001b[0m \u001b[39mwith\u001b[39;00m _C\u001b[39m.\u001b[39mDisableTorchFunction():\n\u001b[0;32m-> 1279\u001b[0m     ret \u001b[39m=\u001b[39m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m   1280\u001b[0m     \u001b[39mif\u001b[39;00m func \u001b[39min\u001b[39;00m get_default_nowrap_functions():\n\u001b[1;32m   1281\u001b[0m         \u001b[39mreturn\u001b[39;00m ret\n",
     82       "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/cuda/__init__.py:229\u001b[0m, in \u001b[0;36m_lazy_init\u001b[0;34m()\u001b[0m\n\u001b[1;32m    227\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39m'\u001b[39m\u001b[39mCUDA_MODULE_LOADING\u001b[39m\u001b[39m'\u001b[39m \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m os\u001b[39m.\u001b[39menviron:\n\u001b[1;32m    228\u001b[0m     os\u001b[39m.\u001b[39menviron[\u001b[39m'\u001b[39m\u001b[39mCUDA_MODULE_LOADING\u001b[39m\u001b[39m'\u001b[39m] \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39mLAZY\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m--> 229\u001b[0m torch\u001b[39m.\u001b[39;49m_C\u001b[39m.\u001b[39;49m_cuda_init()\n\u001b[1;32m    230\u001b[0m \u001b[39m# Some of the queued calls may reentrantly call _lazy_init();\u001b[39;00m\n\u001b[1;32m    231\u001b[0m \u001b[39m# we need to just return without initializing in that case.\u001b[39;00m\n\u001b[1;32m    232\u001b[0m \u001b[39m# However, we must not let any *other* threads in!\u001b[39;00m\n\u001b[1;32m    233\u001b[0m _tls\u001b[39m.\u001b[39mis_initializing \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m\n",
     83       "\u001b[0;31mRuntimeError\u001b[0m: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx"
     84      ]
     85     }
     86    ],
     87    "source": [
     88     "source = untar_data(URLs.IMDB, data=p)\n",
     89     "dls = TextDataLoaders.from_folder(source, valid=\"test\", bs=64,\n",
     90     "                                  device=torch.device('cuda'))\n",
     91     "dls.show_batch()\n"
     92    ]
     93   },
     94   {
     95    "cell_type": "code",
     96    "execution_count": null,
     97    "metadata": {},
     98    "outputs": [
     99     {
    100      "data": {
    101       "text/html": [
    102        "\n",
    103        "    <div>\n",
    104        "      <progress value='105070592' class='' max='105067061' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
    105        "      100.00% [105070592/105067061 00:03&lt;00:00]\n",
    106        "    </div>\n",
    107        "    "
    108       ],
    109       "text/plain": [
    110        "<IPython.core.display.HTML object>"
    111       ]
    112      },
    113      "metadata": {},
    114      "output_type": "display_data"
    115     }
    116    ],
    117    "source": [
    118     "learn = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy,\n",
    119     "                                cbs=fastai.callback.tensorboard.TensorBoardCallback(f\"{cwd}/.fastai/runs/tb\", trace_model=True))\n"
    120    ]
    121   },
    122   {
    123    "cell_type": "code",
    124    "execution_count": null,
    125    "metadata": {},
    126    "outputs": [
    127     {
    128      "ename": "",
    129      "evalue": "",
    130      "output_type": "error",
    131      "traceback": [
    132       "\u001b[1;31mCanceled future for execute_request message before replies were done"
    133      ]
    134     },
    135     {
    136      "ename": "",
    137      "evalue": "",
    138      "output_type": "error",
    139      "traceback": [
    140       "\u001b[1;31mThe Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. View Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details."
    141      ]
    142     }
    143    ],
    144    "source": [
    145     "learn.fine_tune(4, 1e-2)\n"
    146    ]
    147   },
    148   {
    149    "cell_type": "code",
    150    "execution_count": null,
    151    "metadata": {},
    152    "outputs": [],
    153    "source": [
    154     "learn.fine_tune(4, 1e-2)"
    155    ]
    156   },
    157   {
    158    "cell_type": "code",
    159    "execution_count": null,
    160    "metadata": {},
    161    "outputs": [],
    162    "source": [
    163     "learn.show_results()"
    164    ]
    165   },
    166   {
    167    "cell_type": "code",
    168    "execution_count": null,
    169    "metadata": {},
    170    "outputs": [],
    171    "source": [
    172     "learn.predict(\"I really liked that movie!\")\n"
    173    ]
    174   }
    175  ],
    176  "metadata": {
    177   "kernelspec": {
    178    "display_name": "Python 3 (ipykernel)",
    179    "language": "python",
    180    "name": "python3"
    181   },
    182   "language_info": {
    183    "codemirror_mode": {
    184     "name": "ipython",
    185     "version": 3
    186    },
    187    "file_extension": ".py",
    188    "mimetype": "text/x-python",
    189    "name": "python",
    190    "nbconvert_exporter": "python",
    191    "pygments_lexer": "ipython3",
    192    "version": "3.10.4"
    193   },
    194   "orig_nbformat": 4,
    195   "vscode": {
    196    "interpreter": {
    197     "hash": "3ad933181bd8a04b432d3370b9dc3b0662ad032c4dfaa4e4f1596c548f763858"
    198    }
    199   }
    200  },
    201  "nbformat": 4,
    202  "nbformat_minor": 2
    203 }