{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 3 - IMDB" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%reload_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from fastai.text import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "torch.cuda.set_device(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparing the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First let's download the dataset we are going to study. The [dataset](http://ai.stanford.edu/~amaas/data/sentiment/) has been curated by Andrew Maas et al. and contains a total of 100,000 reviews on IMDB. 25,000 of them are labelled as positive and negative for training, another 25,000 are labelled for testing (in both cases they are highly polarized). The remaning 50,000 is an additional unlabelled data (but we will find a use for it nonetheless).\n", "\n", "We'll begin with a sample we've prepared for you, so that things run quickly before going over the full dataset." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "path = untar_data(URLs.IMDB_SAMPLE)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('/home/cedric/.fastai/data/imdb_sample/tmp'),\n", " PosixPath('/home/cedric/.fastai/data/imdb_sample/texts.csv')]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path.ls()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It only contains one csv file, let's have a look at it." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labeltextis_valid
0negativeUn-bleeping-believable! Meg Ryan doesn't even ...False
1positiveThis is a extremely well-made film. The acting...False
2negativeEvery once in a long while a movie will come a...False
3positiveName just says it all. I watched this movie wi...False
4negativeThis movie succeeds at being one of the most u...False
\n", "
" ], "text/plain": [ " label text is_valid\n", "0 negative Un-bleeping-believable! Meg Ryan doesn't even ... False\n", "1 positive This is a extremely well-made film. The acting... False\n", "2 negative Every once in a long while a movie will come a... False\n", "3 positive Name just says it all. I watched this movie wi... False\n", "4 negative This movie succeeds at being one of the most u... False" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(path / 'texts.csv')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'This is a extremely well-made film. The acting, script and camera-work are all first-rate. The music is good, too, though it is mostly early in the film, when things are still relatively cheery. There are no really superstars in the cast, though several faces will be familiar. The entire cast does an excellent job with the script.

But it is hard to watch, because there is no good end to a situation like the one presented. It is now fashionable to blame the British for setting Hindus and Muslims against each other, and then cruelly separating them into two countries. There is some merit in this view, but it\\'s also true that no one forced Hindus and Muslims in the region to mistreat each other as they did around the time of partition. It seems more likely that the British simply saw the tensions between the religions and were clever enough to exploit them to their own ends.

The result is that there is much cruelty and inhumanity in the situation and this is very unpleasant to remember and to see on the screen. But it is never painted as a black-and-white case. There is baseness and nobility on both sides, and also the hope for change in the younger generation.

There is redemption of a sort, in the end, when Puro has to make a hard choice between a man who has ruined her life, but also truly loved her, and her family which has disowned her, then later come looking for her. But by that point, she has no option that is without great pain for her.

This film carries the message that both Muslims and Hindus have their grave faults, and also that both can be dignified and caring people. The reality of partition makes that realisation all the more wrenching, since there can never be real reconciliation across the India/Pakistan border. In that sense, it is similar to \"Mr & Mrs Iyer\".

In the end, we were glad to have seen the film, even though the resolution was heartbreaking. If the UK and US could deal with their own histories of racism with this kind of frankness, they would certainly be better off.'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['text'][1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It contains one line per review, with the label ('negative' or 'positive'), the text and a flag to determine if it should be part of the validation set or the training set. If we ignore this flag, we can create a DataBunch containing this data in one line of code:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "data_lm = TextDataBunch.from_csv(path, 'texts.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By executing this line a process was launched that took a bit of time. Let's dig a bit into it. Images could be fed (almost) directly into a model because they're just a big array of pixel values that are floats between 0 and 1. A text is composed of words, and we can't apply mathematical functions to them directly. We first have to convert them to numbers. This is done in two differents steps: tokenization and numericalization. A `TextDataBunch` does all of that behind the scenes for you.\n", "\n", "Before we delve into the explanations, let's take the time to save the things that were calculated." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "data_lm.save()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next time we launch this notebook, we can skip the cell above that took a bit of time (and that will take a lot more when you get to the full dataset) and load those results like this:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "data = TextDataBunch.load(path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tokenization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step of processing we make texts go through is to split the raw sentences into words, or more exactly tokens. The easiest way to do this would be to split the string on spaces, but we can be smarter:\n", "\n", "- we need to take care of punctuation\n", "- some words are contractions of two different words, like isn't or don't\n", "- we may need to clean some parts of our texts, if there's HTML code for instance\n", "\n", "To see what the tokenizer had done behind the scenes, let's have a look at a few texts in a batch." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "data = TextClasDataBunch.load(path)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
texttarget
xxbos xxmaj raising xxmaj victor xxmaj vargas : a xxmaj review \\n\\n xxmaj you know , xxmaj raising xxmaj victor xxmaj vargas is like sticking your hands into a big , xxunk bowl of xxunk . xxmaj it 's warm and gooey , but you 're not sure if it feels right . xxmaj try as i might , no matter how warm and gooey xxmaj raising xxmaj victor xxmajnegative
xxbos xxmaj now that xxmaj che(2008 ) has finished its relatively short xxmaj australian cinema run ( extremely limited xxunk screen in xxmaj xxunk , after xxunk ) , i can xxunk join both xxunk of \" xxmaj at xxmaj the xxmaj movies \" in taking xxmaj steven xxmaj soderbergh to task . \\n\\n xxmaj it 's usually satisfying to watch a film director change his style / subject ,negative
xxbos xxmaj this film sat on my xxmaj xxunk for weeks before i watched it . i xxunk a self - indulgent xxunk flick about relationships gone bad . i was wrong ; this was an xxunk xxunk into the screwed - up xxunk of xxmaj new xxmaj xxunk . \\n\\n xxmaj the format is the same as xxmaj max xxmaj xxunk ' \" xxmaj la xxmaj xxunk , \"positive
xxbos xxmaj many neglect that this is n't just a classic due to the fact that it 's the first xxup 3d game , or even the first xxunk - up . xxmaj it 's also one of the first xxunk games , one of the xxunk definitely the first ) truly claustrophobic games , and just a pretty well - xxunk gaming experience in general . xxmaj with graphicspositive
xxbos i really wanted to love this show . i truly , honestly did . \\n\\n xxmaj for the first time , gay viewers get their own version of the \" xxmaj the xxmaj bachelor \" . xxmaj with the help of his obligatory \" hag \" xxmaj xxunk , xxmaj james , a good looking , well - to - do thirty - something has the chance of lovenegative
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data.show_batch()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The texts are truncated at 100 tokens for more readability. We can see that it did more than just split on space and punctuation symbols: \n", "- the \"'s\" are grouped together in one token\n", "- the contractions are separated like his: \"did\", \"n't\"\n", "- content has been cleaned for any HTML symbol and lower cased\n", "- there are several special tokens (all those that begin by xx), to replace unkown tokens (see below) or to introduce different text fields (here we only have one)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Numericalization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we have extracted tokens from our texts, we convert to integers by creating a list of all the words used. We only keep the ones that appear at list twice with a maximum vocabulary size of 60,000 (by default) and replace the ones that don't make the cut by the unknown token `UNK`.\n", "\n", "The correspondance from ids tokens is stored in the `vocab` attribute of our datasets, in a dictionary called `itos` (for int to string)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['xxunk',\n", " 'xxpad',\n", " 'xxbos',\n", " 'xxfld',\n", " 'xxmaj',\n", " 'xxup',\n", " 'xxrep',\n", " 'xxwrep',\n", " 'the',\n", " ',']" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.vocab.itos[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And if we look at what a what's in our datasets, we'll see the tokenized text as a representation:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text xxbos i was not expecting much going in to this , but still came away disappointed . xxmaj this was my least favorite xxmaj xxunk production i have seen . i thought it was supposed to be a comedy , but i only xxunk at 3 or 4 jokes . xxmaj is it really a funny gag to see a fat guy eating xxunk and falling down over and over ? xxmaj what was up with the xxunk in xxmaj heaven scene ? xxmaj fred xxmaj xxunk has been hilarious with some of his xxmaj christopher xxmaj xxunk xxunk , but this did not work . xxmaj they must have spent all the budget on getting \" known \" actors to appear in this because there was no lighting budget . xxmaj it looked like it was filmed with a video camera and most scenes were very dark . xxmaj does it really take that much film to show someone actually shoot and make a basket , as opposed to cutting away and editing a ball xxunk through a basket ? i try not to be too critical of low budget comedies , but if you want to see something funny go to a real xxmaj church basketball game instead of this movie ." ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.train_ds[0][0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But the underlying data is all numbers" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2, 18, 24, 38, 1043, 99, 171, 17, 14, 20])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.train_ds[0][0].data[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### With the data block API" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the data block API with NLP and have a lot more flexibility than what the default factory methods offer. In the previous example for instance, the data was randomly split between train and validation instead of reading the third column of the csv.\n", "\n", "With the data block API though, we have to manually call the tokenize and numericalize steps. This allows more flexibility, and if you're not using the defaults from fastai, the variaous arguments to pass will appear in the step they're revelant, so it'll be more readable." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "data = (TextList.from_csv(path, 'texts.csv', cols='text')\n", " .split_from_df(col=2)\n", " .label_from_df(cols=0)\n", " .databunch())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Language model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that language models can use a lot of GPU, so you may need to decrease batchsize here." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "bs = 48" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's grab the full dataset for what follows." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "path = untar_data(URLs.IMDB)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('/home/cedric/.fastai/data/imdb/models'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/tmp_clas'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/imdb.vocab'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/unsup'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/test'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/README'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/tmp_lm'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/train')]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path.ls()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('/home/cedric/.fastai/data/imdb/train/pos'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/train/labeledBow.feat'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/train/unsupBow.feat'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/train/unsup'),\n", " PosixPath('/home/cedric/.fastai/data/imdb/train/neg')]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(path / 'train').ls()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The reviews are in a training and test set following an imagenet structure. The only difference is that there is an `unsup` folder in `train` that contains the unlabelled data.\n", "\n", "We're not going to train a model that classifies the reviews from scratch. Like in computer vision, we'll use a model pretrained on a bigger dataset (a cleaned subset of wikipedia called [wikitext-103](https://einstein.ai/research/blog/the-wikitext-long-term-dependency-language-modeling-dataset)). That model has been trained to guess what the next word, its input being all the previous words. It has a recurrent structure and a hidden state that is updated each time it sees a new word. This hidden state thus contains information about the sentence up to that point.\n", "\n", "We are going to use that 'knowledge' of the English language to build our classifier, but first, like for computer vision, we need to fine-tune the pretrained model to our particular dataset. Because the English of the review lefts by people on IMDB isn't the same as the English of wikipedia, we'll need to adjust a little bit the parameters of our model. Plus there might be some words extremely common in that dataset that were barely present in wikipedia, and therefore might no be part of the vocabulary the model was trained on.\n", "\n", "Note that language models can use a lot of GPU, so you may need to decrease batchsize here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is where the unlabelled data is going to be useful to us, as we can use it to fine-tune our model. Let's create our data object with the data block API (next line takes a few minutes)." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "data_lm = (TextList.from_folder(path)\n", " #Inputs: all the text files in path\n", " .filter_by_folder(include=['train', 'test'])\n", " #We may have other temp folders that contain text files so we only keep what's in train and test\n", " .random_split_by_pct(0.1)\n", " #We randomly split and keep 10% (10,000 reviews) for validation\n", " .label_for_lm()\n", " #We want to do a language model so we label accordingly\n", " .databunch(bs=bs))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "data_lm.save('tmp_lm')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have to use a special kind of `TextDataBunch` for the language model, that ignores the labels (that's why we put 0 everywhere), will shuffle the texts at each epoch before concatenating them all together (only for training, we don't shuffle for the validation set) and will send batches that read that text in order with targets that are the next word in the sentence.\n", "\n", "The line before being a bit long, we want to load quickly the final ids by using the following cell." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "data_lm = TextLMDataBunch.load(path, 'tmp_lm', bs=bs)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idxtext
0xxbos i heard legends about this \" film \" ( quotes used so as not to insult films ) for a while , so when i finally got the xxup dvd with it , i impatiently started watching it . xxmaj by the end , i * had * to fast forward through just a few of the most moronic , ineptly made , nonsensical scenes of this pointless childish
1all story lines in the first half ... and spews them back out in a sort of redemptive , xxunk , the world is a big coincidence kind of way . xxmaj and it is in fact one of the worst ways to do it . \\n\\n xxmaj take 1999 's xxmaj magnolia . xxmaj people were n't conveniently tied together over and over again . xxmaj they were just
2xxmaj he eventually tries to kill both of them , and gets stabbed by a warrior after he kills yet another of the tribesmen by ' accident ' . xxmaj the two protagonists get in the plane and fly away , and the woman makes dreamy comments about how when she gets back to civilization she immediately wants to buy a hat . a hat ! ? xxmaj gimme a
3certainly a modern xxmaj american classic . \\n\\n xxmaj remakes of older movies and the like are sometimes poorly done , but this is probably one case where a creative and inspired director could make a very stunning , memorable , and critically acclaimed production . i do n't ever see that happening since a remake would have to be just as long ( 15 hours ) or longer to
4the xxmaj toronto xxmaj international xxmaj film xxmaj festival and taking only 45 days to shoot , and having only five actors in the play ( the rest were all first time real actors ) . xxmaj arriving home i realized two things from the movie - that there is always a human connection between any one of us despite our differences and secondly , as the director had put
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_lm.show_batch()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then put this in a learner object very easily with a model loaded with the pretrained weights. They'll be downloaded the first time you'll execute the following line and stored in './fastai/models/' (or elsewhere if you specified different paths in your config file)." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "learn = language_model_learner(data_lm, pretrained_model=URLs.WT103_1, drop_mult=0.3)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] } ], "source": [ "learn.lr_find()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot(skip_end=15)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 23:31

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
14.2091794.0677930.292640
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.fit_one_cycle(1, 1e-2, moms=(0.8, 0.7))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "learn.save('fit_head')" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "learn.load('fit_head');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To complete the fine-tuning, we can then unfeeze and launch a new training." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_lr()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "learn.unfreeze()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 50.00% [10/20 4:23:32<4:23:32]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
13.9688553.9186040.306633
23.9113003.8506160.314884
33.8797653.8048800.321303
43.8370263.7729170.325691
53.7637113.7488410.328365
63.7312843.7260210.330732
73.7151823.7100170.332476
83.6787543.6972500.333901
93.6428273.6849410.335270
103.5728113.6759520.336170
\n", "\n", "\n", "
\n", " \n", " \n", " Interrupted\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_one_cycle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1e-3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmoms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.8\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.7\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/anaconda3/envs/fastai-v1/lib/python3.7/site-packages/fastai/train.py\u001b[0m in \u001b[0;36mfit_one_cycle\u001b[0;34m(learn, cyc_len, max_lr, moms, div_factor, pct_start, wd, callbacks, **kwargs)\u001b[0m\n\u001b[1;32m 19\u001b[0m callbacks.append(OneCycleScheduler(learn, max_lr, moms=moms, div_factor=div_factor,\n\u001b[1;32m 20\u001b[0m pct_start=pct_start, **kwargs))\n\u001b[0;32m---> 21\u001b[0;31m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcyc_len\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax_lr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlr_find\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlearn\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mLearner\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart_lr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e-7\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend_lr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnum_it\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstop_div\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mbool\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mAny\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai-v1/lib/python3.7/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, epochs, lr, wd, callbacks)\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0mcallbacks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mcb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallback_fns\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mlistify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m fit(epochs, self.model, self.loss_func, opt=self.opt, data=self.data, metrics=self.metrics,\n\u001b[0;32m--> 166\u001b[0;31m callbacks=self.callbacks+callbacks)\n\u001b[0m\u001b[1;32m 167\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_opt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwd\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m->\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai-v1/lib/python3.7/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(epochs, model, loss_func, opt, data, callbacks, metrics)\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0myb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mprogress_bar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_dl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpbar\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 84\u001b[0;31m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 85\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/envs/fastai-v1/lib/python3.7/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mloss_batch\u001b[0;34m(model, xb, yb, loss_func, opt, cb_handler)\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0mopt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzero_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 32\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcpu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 33\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m def get_preds(model:nn.Module, dl:DataLoader, pbar:Optional[PBar]=None, cb_handler:Optional[CallbackHandler]=None,\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "learn.fit_one_cycle(10, 1e-3, moms=(0.8, 0.7))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_lr()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "learn.save('fine_tuned')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How good is our model? Well let's try to see what it predicts after a few given words." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "learn.load('fine_tuned');" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "TEXT = \"i liked this movie because\"\n", "N_WORDS = 40\n", "N_SENTENCES = 2" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i liked this movie because jefferey minute reflexivity impenetrably cahill consciences sparseness anxiety puo hulkamania delegates flushing bagpipe rfd adoptive coheres dostoyevsky tensity manners cavalrymen autographs maximilian translucent accusation pevney misconceived zoom gazecki people(including spoliers catalan altar deoxys sudbury fliers s.o.s outshone suns punctuates csi\n", "i liked this movie because perine trauma ultraviolent craving champlain contemplation halmi competently quarter thunderstorm brewer scruffy subdivision prestigious compassionately nukie wass ships confucius haruhiko crutches promoting peerless reis nic exposure expatriate tasmanian ratcheted cirio melle faeries clerics videostore janghwa unappropriated pencil chinnery propos herd\n" ] } ], "source": [ "print(\"\\n\".join(learn.predict(TEXT, N_WORDS, temperature=0.75) for _ in range(N_SENTENCES)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have to save the model but also it's encoder, the part that's responsible for creating and updating the hidden state. For the next part, we don't care about the part that tries to guess the next word." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "learn.save_encoder('fine_tuned_enc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Classifier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we'll create a new data object that only grabs the labelled data and keeps those labels. Again, this line takes a bit of time." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "path = untar_data(URLs.IMDB)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "# My code to workaround the data_clas code below problems.\n", "!mv {path}/train/unsup {path}" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": true }, "outputs": [], "source": [ "data_clas = (TextList.from_folder(path, vocab=data_lm.vocab)\n", " #grab all the text files in path\n", " .split_by_folder(valid='test')\n", " #split by train and valid folder (that only keeps 'train' and 'test' so no need to filter)\n", " .label_from_folder(classes=['neg', 'pos'])\n", " #remove docs with labels not in above list (i.e. 'unsup')\n", " # .filter_missing_y()\n", " #label them all with their folders\n", " .databunch(bs=bs))\n", "\n", "data_clas.save('tmp_clas')" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['neg', 'pos']" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_clas.train_ds.y.classes" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['neg', 'pos']" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_clas.valid_ds.y.classes" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(25000, 25000)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data_clas.train_ds), len(data_clas.valid_ds)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
texttarget
xxbos xxmaj match 1 : xxmaj tag xxmaj team xxmaj table xxmaj match xxmaj bubba xxmaj ray and xxmaj spike xxmaj dudley vs xxmaj eddie xxmaj guerrero and xxmaj chris xxmaj benoit xxmaj bubba xxmaj ray and xxmaj spike xxmaj dudley started things off with a xxmaj tag xxmaj team xxmaj table xxmaj match against xxmaj eddie xxmaj guerrero and xxmaj chris xxmaj benoit . xxmaj according to the rulespos
xxbos xxmaj in xxup nyc , seaman xxmaj michael o'hara ( xxmaj orson xxmaj welles ) rescues xxmaj elsa xxmaj bannister ( xxmaj rita xxmaj hayworth ) from a mugging & rape as she takes a horse & carriage through xxmaj central xxmaj park -and lives to regret it . xxmaj xxunk - haired xxmaj hayworth 's a platinum blonde in this one ; as dazzling as fresh - fallenpos
xxbos xxmaj the majority of xxmaj stephen xxmaj king 's short stories are little gems , with original ideas that do n't take a long time to develop ; basically lean and mean -- he sets them up quickly in a scarce number of pages , you read 'em , and you 're finished before you know you 've begun . xxmaj they 're like the equivalent of a cartonneg
xxbos xxmaj this film reminds me of 42nd xxmaj street starring xxmaj bebe xxmaj daniels and xxmaj ruby xxmaj keeler . xxmaj when i watch this film a lot of it reminded me of 42nd xxmaj street , especially the character xxmaj eloise who 's a temperamental star and she ends up falling and breaks her ankle , like xxmaj bebe xxmaj daniels did in 42nd xxmaj street and anotherpos
xxbos xxmaj despite loving xxmaj rita xxmaj hayworth , finding the final few sequences of the film intriguing and being able to appreciate some of the subtler \" symbolic \" aspects of the cinematography , xxmaj the xxmaj lady from xxmaj shanghai did n't quite work for me . i had a problem with most of the performances , the script and the overall structure . xxmaj and in apos
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_clas = TextClasDataBunch.load(path, 'tmp_clas', bs=bs)\n", "data_clas.show_batch()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then create a model to classify those reviews and load the encoder we saved before." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# Create a RNN classifier\n", "learn = text_classifier_learner(data_clas, drop_mult=0.5)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "learn.load_encoder('fine_tuned_enc')" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "learn.freeze()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "394" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gc.collect()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] } ], "source": [ "learn.lr_find()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 04:17

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
10.6049120.5415340.728040
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.fit_one_cycle(1, 2e-2, moms=(0.8,0.7))" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "learn.save('first')" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "learn.load('first');" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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gcSat4wxACNHjuTDDz8kLy8PgPXr17N582Z69+7NeeedR9++fenRowfvv/9+mWPXr19P9+7dATh8+DCjRo2iZ8+eXH755Rw+fDiQ76abbgosP3/fffcB8MQTT7B582YGDRrEoEGDAGjXrh07duwA4NFHH6V79+50796dxx9/PPDzunTpwg033EC3bt0YMmRI0M+pTpFcIiXUJsDlfSKPAqaoalHQCURaAK8AV6tqsZt8F7AVJ7g8B9wJjKMUERkDjAFo06bN0ZSfqECNxAKJMbXOx2Nh65LqPWfzHjBsfLkvN27cmH79+vHJJ58wYsQIJk+ezOWXX069evV49913adCgATt27OD000/noosuKncv9KeffpqEhAQWL17M4sWL6du3b+C1hx9+mEaNGlFUVMR5553H4sWLueWWW3j00UeZOXMmTZo0CTrX/PnzmTBhAnPmzEFVOe200zjnnHNISUlh9erVTJo0ieeff57LLruMt99+myuvvLJ6flcekayRZAOtPc/TgM3l5B2F26zlJyINgI+Ae1R1tj9dVbeoIw+YgNOEVoaqPqeqGaqakZp6dK1iPve3Y0OAjTF+3uYtf7OWqnL33XfTs2dPBg8ezKZNm9i2bVu55/j6668DH+g9e/akZ8+egdfefPNN+vbtS58+fVi2bFnI5ee9vv32W37xi1+QmJhIUlISl1xyCd988w0A6enp9O7tjEeK5DL1kayRzAM6ikg6sAknWFxROpOInAykALM8abHAu8DLqvpWqfwtVHWLOKH+YmBppC7A526VaU1bxtRCFdQcIuniiy/m9ttv54cffuDw4cP07duXiRMnkpOTw/z584mJiaFdu3Yhl433ClVbWbduHY888gjz5s0jJSWFa665ptLzVDQYKC6upOXf5/NFrGkrYjUSVS0EbgamAyuAN1V1mYiME5GLPFlHA5M1+LdxGXA2cE2IYb6vicgSYAnQBHgoUtfgdpFYIDHGBCQlJTFw4ECuu+66QCf73r17adq0KTExMcycOZOffvqpwnOcffbZvPbaawAsXbqUxYsXA87y84mJiTRs2JBt27bx8ccfB46pX78++/fvD3mu9957j0OHDnHw4EHeffddzjrrrOq63CqJ6DLyqjoNmFYq7d5Sz+8PcdyrwKvlnPPcaixihWKjfQDkFRZVktMYcyIZPXo0l1xySaCJ61e/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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 04:32

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
10.4639750.3774660.833160
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 3min 51s, sys: 42.5 s, total: 4min 33s\n", "Wall time: 4min 32s\n" ] } ], "source": [ "%%time\n", "\n", "learn.freeze_to(-2)\n", "learn.fit_one_cycle(1, slice(1e-2/(2.6**4),1e-2), moms=(0.8,0.7))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "learn.save('second')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "learn.load('second');" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 05:58

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
10.3839500.3208260.859440
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 5min 3s, sys: 56.8 s, total: 5min 59s\n", "Wall time: 5min 58s\n" ] } ], "source": [ "%%time\n", "\n", "learn.freeze_to(-3)\n", "learn.fit_one_cycle(1, slice(5e-3/(2.6**4),5e-3), moms=(0.8,0.7))" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "learn.save('third')" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "learn.load('third');" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 15:09

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracy
10.3492960.3067270.867240
20.3311500.2991710.873480
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 12min 6s, sys: 3min 5s, total: 15min 12s\n", "Wall time: 15min 9s\n" ] } ], "source": [ "%%time\n", "\n", "learn.unfreeze()\n", "learn.fit_one_cycle(2, slice(1e-3/(2.6**4),1e-3), moms=(0.8,0.7))" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot_losses()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(Category pos, tensor(1), tensor([6.4010e-04, 9.9936e-01]))" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "learn.predict(\"I really loved that movie, it was awesome!\")" ] } ], "metadata": { "kernelspec": { "display_name": "fastai-v1", "language": "python", "name": "fastai-v1" }, "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.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }