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<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 }