Files

1568 lines
53 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"env: CUDA_VISIBLE_DEVICES=1\n"
]
}
],
"source": [
"%env CUDA_VISIBLE_DEVICES=1"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/pczapla/workspace/ulmfit-multilingual\n"
]
}
],
"source": [
"%reload_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline\n",
"%cd .."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from fastai.text import *\n",
"from multifit.datasets import ULMFiTDataset, Dataset\n",
"import multifit"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings(\"ignore\") # to ignore pytorch 1.3 warnings triggered by older fastai"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# CLS DE music"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"lang='de'"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"exp = multifit.from_pretrained(f'{lang}_multifit_paper_version')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"ULMFiTArchitecture(tokenizer_type='sp', max_vocab=15000, lang='de', emb_sz=400, n_hid=1550, n_layers=4, qrnn=True)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exp.replace_(name='multifit_paper_version20')\n",
"exp.arch"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from /home/pczapla/.fastai/models/de_multifit_paper_version to data/cls/de-music/models/sp15k\n"
]
}
],
"source": [
"cls_dataset = exp.arch.dataset(Path(f'data/cls/{lang}-music'), exp.pretrain_lm.tokenizer)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'de'"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cls_dataset.lang"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n"
]
},
{
"data": {
"text/html": [
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>text</th>\n",
" <th>target</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>▁ xxbos ▁ xxfld ▁1 ▁ xxmaj ▁in ▁der ▁ xxmaj ▁ special ▁ xxmaj ▁ edition ▁mit ▁fünf ▁zusätzlich en ▁ xxmaj ▁ track s ▁noch ▁viel ▁besser ▁, ▁als ▁ohne hin ▁schon ▁: ▁ xxmaj ▁alan is ▁ xxmaj ▁mo riss ette s ▁neues ▁ xxmaj ▁album ▁ xxfld ▁2 ▁ xxmaj ▁nach ▁vier ▁ xxmaj ▁jahren ▁ist ▁ xxmaj ▁alan is ▁ xxmaj ▁mo riss ette ▁endlich</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>▁ xxbos ▁ xxfld ▁1 ▁und ▁ es ▁geht ▁immer ▁noch ▁schlecht er ▁ xxrep ▁5 ▁. ▁ xxfld ▁2 ▁ xxmaj ▁irgend wi e ▁ist ▁ es ▁bei ▁ xxmaj ▁ ram m stein ▁mittlerweil e ▁ein ▁ xxmaj ▁ phänomen ▁im ▁negative n ▁ xxmaj ▁sinne ▁ - ▁&amp;' ▁ xxmaj ▁reise ▁, ▁ xxmaj ▁reise ▁&amp;' ▁war ▁nach ▁&amp;' ▁ xxmaj ▁herz e leid ▁&amp;' ▁, ▁&amp;'</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>▁ xxbos ▁ xxfld ▁1 ▁ xxmaj ▁ tol les ▁ debüt - album ▁ ! ▁ xxfld ▁2 ▁ xxmaj ▁die s ▁ist ▁das ▁1995 ▁erschienen e ▁, ▁erste ▁ xxmaj ▁album ▁der ▁ xxmaj ▁bremer ▁ xxmaj ▁stadt musik anten ▁&amp;' ▁ xxmaj ▁mr . ▁ xxmaj ▁ pres ident ▁&amp;' ▁gewesen ▁. ▁ xxmaj ▁nachdem ▁ ich ▁zuvor ▁schon ▁von ▁den ▁ xxmaj ▁single s ▁&amp;' ▁</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>▁ xxbos ▁ xxfld ▁1 ▁ xxmaj ▁hoch mut ▁kommt ▁vor ▁dem ▁ xxmaj ▁ fall ▁ xxfld ▁2 ▁ xxmaj ▁wie ▁lange ▁habe ▁ ich ▁doch ▁ge warte t ▁bis ▁ xxmaj ▁ ti es to ▁seit ▁seiner ▁letzten ▁ xxup ▁cd ▁( ▁ xxmaj ▁in ▁ xxmaj ▁ se arch ▁of ▁ xxmaj ▁ s un ris e ▁ xxmaj ▁ asia ▁) ▁eine ▁neue ▁rau s bringt</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>▁ xxbos ▁ xxfld ▁1 ▁5 ▁ xxmaj ▁ sterne ▁ reichen ▁nicht ▁aus ▁ xxfld ▁2 ▁ xxmaj ▁ ig n ite ▁ - ▁ xxmaj ▁ our ▁ xxmaj ▁dar ke st ▁ day s ▁ - ▁cd - re vie w ▁1. in tro ▁( ▁ xxmaj ▁ our ▁ xxmaj ▁dar ke st ▁ xxmaj ▁ day s ▁) ▁ xxmaj ▁das ▁ist ▁kein ▁in tro</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cls_dataset.load_clas_databunch(bs=exp.finetune_lm.bs).show_batch()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Setting LM weights seed seed to 0\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Training args: {'drop_mult': 0.3, 'true_wd': False, 'wd': 1e-07, 'pretrained': False, 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15, 'tie_weights': True, 'out_bias': True}\n",
"Setting LM training seed seed to 0\n",
"Loading pretrained weights: [PosixPath('/home/pczapla/.fastai/models/de_multifit_paper_version/lm_best'), PosixPath('/home/pczapla/.fastai/models/de_multifit_paper_version/itos')]\n",
"Experiment data/cls/de-music/models/sp15k/multifit_paper_version20\n",
"Fitting using 2 cycle fit schedule\n"
]
},
{
"data": {
"text/html": [
"Total time: 04:09 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>3.866541</td>\n",
" <td>3.233327</td>\n",
" <td>0.435623</td>\n",
" <td>04:09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Total time: 2:00:30 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>3.277351</td>\n",
" <td>3.070962</td>\n",
" <td>0.455366</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>3.079563</td>\n",
" <td>2.893713</td>\n",
" <td>0.477454</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>2.897532</td>\n",
" <td>2.768432</td>\n",
" <td>0.492125</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>2.809160</td>\n",
" <td>2.678615</td>\n",
" <td>0.503370</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>2.703292</td>\n",
" <td>2.628708</td>\n",
" <td>0.509084</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>2.673165</td>\n",
" <td>2.586905</td>\n",
" <td>0.512564</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>2.589240</td>\n",
" <td>2.558473</td>\n",
" <td>0.516227</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>2.564356</td>\n",
" <td>2.546148</td>\n",
" <td>0.519396</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>2.469183</td>\n",
" <td>2.526894</td>\n",
" <td>0.521648</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>2.457526</td>\n",
" <td>2.516867</td>\n",
" <td>0.523095</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>2.439664</td>\n",
" <td>2.505525</td>\n",
" <td>0.525311</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>2.425264</td>\n",
" <td>2.503526</td>\n",
" <td>0.526886</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>2.327446</td>\n",
" <td>2.494336</td>\n",
" <td>0.528297</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>13</td>\n",
" <td>2.311902</td>\n",
" <td>2.497768</td>\n",
" <td>0.528187</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>14</td>\n",
" <td>2.265695</td>\n",
" <td>2.497650</td>\n",
" <td>0.528791</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>15</td>\n",
" <td>2.223954</td>\n",
" <td>2.503026</td>\n",
" <td>0.528187</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>16</td>\n",
" <td>2.232797</td>\n",
" <td>2.505526</td>\n",
" <td>0.527912</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17</td>\n",
" <td>2.204011</td>\n",
" <td>2.505398</td>\n",
" <td>0.528553</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>18</td>\n",
" <td>2.183692</td>\n",
" <td>2.508069</td>\n",
" <td>0.528663</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" <tr>\n",
" <td>19</td>\n",
" <td>2.185323</td>\n",
" <td>2.508334</td>\n",
" <td>0.528736</td>\n",
" <td>06:01</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from /home/pczapla/.fastai/models/de_multifit_paper_version to data/cls/de-music/models/sp15k/multifit_paper_version20\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20/finetuning.json\n",
"Language model saved to data/cls/de-music/models/sp15k/multifit_paper_version20\n"
]
}
],
"source": [
"exp.finetune_lm.train_(cls_dataset, num_epochs=20)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loading data/cls/de-music/models/sp15k/multifit_paper_version20/classifier.json\n",
"Loading data/cls/de-music/models/sp15k/multifit_paper_version20/finetuning.json\n",
"ULMFiTClassifier Replacing experiment_path 'None' with 'data/cls/de-music/models/sp15k/multifit_paper_version20\n",
"ULMFiTClassifier Replacing dataset_path 'None' with 'data/cls/de-music\n"
]
},
{
"data": {
"text/plain": [
"ULMFiTFinetuning(seed=0, name='multifit_paper_version20', experiment_path=PosixPath('data/cls/de-music/models/sp15k/multifit_paper_version20'), dataset_path=PosixPath('data/cls/de-music'), num_epochs=20, bs=20, bptt=70, drop_mult=0.3, dropout_values={'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}, label_smoothing_eps=0.0, label_smoothing_eps_norm_by_classes=True, use_adam_08=False, true_wd=False, wd=1e-07, clip=0.12, fp16=False, lr=0.001)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exp.load_(cls_dataset.cache_path/exp.pretrain_lm.name).finetune_lm"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 0\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 0\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:50 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.482573</td>\n",
" <td>0.453916</td>\n",
" <td>0.865000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.425821</td>\n",
" <td>0.410971</td>\n",
" <td>0.855000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.349141</td>\n",
" <td>0.482879</td>\n",
" <td>0.835000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.283344</td>\n",
" <td>0.442784</td>\n",
" <td>0.850000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.241310</td>\n",
" <td>0.372520</td>\n",
" <td>0.895000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.231902</td>\n",
" <td>0.398809</td>\n",
" <td>0.885000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.219850</td>\n",
" <td>0.380606</td>\n",
" <td>0.890000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.219838</td>\n",
" <td>0.381202</td>\n",
" <td>0.870000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=0)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 1\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 1\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed1\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:52 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.478058</td>\n",
" <td>0.420762</td>\n",
" <td>0.850000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.417134</td>\n",
" <td>0.439587</td>\n",
" <td>0.835000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.354391</td>\n",
" <td>0.474661</td>\n",
" <td>0.830000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.283689</td>\n",
" <td>0.365501</td>\n",
" <td>0.900000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.246739</td>\n",
" <td>0.367108</td>\n",
" <td>0.895000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.232322</td>\n",
" <td>0.366319</td>\n",
" <td>0.895000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.224353</td>\n",
" <td>0.356722</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.214791</td>\n",
" <td>0.355131</td>\n",
" <td>0.885000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed1\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed1\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed1/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=1)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 2\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 2\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed2\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:51 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.482315</td>\n",
" <td>0.439644</td>\n",
" <td>0.850000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.428751</td>\n",
" <td>0.445248</td>\n",
" <td>0.860000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.361243</td>\n",
" <td>0.384282</td>\n",
" <td>0.885000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.275155</td>\n",
" <td>0.572610</td>\n",
" <td>0.790000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.250888</td>\n",
" <td>0.368725</td>\n",
" <td>0.915000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.237372</td>\n",
" <td>0.347252</td>\n",
" <td>0.905000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.230649</td>\n",
" <td>0.338449</td>\n",
" <td>0.910000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.219903</td>\n",
" <td>0.336891</td>\n",
" <td>0.910000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed2\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed2\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed2/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=2)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 3\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 3\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed3\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:51 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.484043</td>\n",
" <td>0.420790</td>\n",
" <td>0.870000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.408424</td>\n",
" <td>0.537166</td>\n",
" <td>0.820000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.340057</td>\n",
" <td>0.399938</td>\n",
" <td>0.860000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.297742</td>\n",
" <td>0.435766</td>\n",
" <td>0.845000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.246439</td>\n",
" <td>0.395233</td>\n",
" <td>0.865000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.232959</td>\n",
" <td>0.381182</td>\n",
" <td>0.860000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.222137</td>\n",
" <td>0.370006</td>\n",
" <td>0.875000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.218951</td>\n",
" <td>0.367611</td>\n",
" <td>0.870000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed3\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed3\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed3/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=3)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 4\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 4\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed4\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:53 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.481196</td>\n",
" <td>0.459419</td>\n",
" <td>0.845000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.432749</td>\n",
" <td>0.458411</td>\n",
" <td>0.845000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.330244</td>\n",
" <td>0.439864</td>\n",
" <td>0.840000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.286105</td>\n",
" <td>0.366315</td>\n",
" <td>0.890000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.261380</td>\n",
" <td>0.438214</td>\n",
" <td>0.835000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.241455</td>\n",
" <td>0.362442</td>\n",
" <td>0.870000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.230032</td>\n",
" <td>0.372623</td>\n",
" <td>0.880000</td>\n",
" <td>00:22</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.220430</td>\n",
" <td>0.372761</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed4\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed4\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed4/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=4)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 5\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 5\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed5\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:52 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.469831</td>\n",
" <td>0.412838</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.403946</td>\n",
" <td>0.478476</td>\n",
" <td>0.860000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.352868</td>\n",
" <td>0.606190</td>\n",
" <td>0.770000</td>\n",
" <td>00:22</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.284212</td>\n",
" <td>0.430632</td>\n",
" <td>0.865000</td>\n",
" <td>00:20</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.254504</td>\n",
" <td>0.370566</td>\n",
" <td>0.895000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.233122</td>\n",
" <td>0.367492</td>\n",
" <td>0.900000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.222597</td>\n",
" <td>0.370217</td>\n",
" <td>0.890000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.223786</td>\n",
" <td>0.372048</td>\n",
" <td>0.890000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed5\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed5\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed5/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=5)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 6\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 6\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed6\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:53 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.476341</td>\n",
" <td>0.412699</td>\n",
" <td>0.855000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.414260</td>\n",
" <td>0.465001</td>\n",
" <td>0.855000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.345892</td>\n",
" <td>0.381468</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.282183</td>\n",
" <td>0.471623</td>\n",
" <td>0.845000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.254331</td>\n",
" <td>0.364531</td>\n",
" <td>0.885000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.230084</td>\n",
" <td>0.352639</td>\n",
" <td>0.900000</td>\n",
" <td>00:22</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.226763</td>\n",
" <td>0.354634</td>\n",
" <td>0.905000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.225935</td>\n",
" <td>0.345909</td>\n",
" <td>0.920000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed6\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed6\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed6/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=6)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k\n",
"Data lm-notst, trn: 31800, val: 200\n",
"Size of vocabulary: 15000\n",
"First 20 words in vocab: ['xxunk', 'xxpad', 'xxbos', 'xxfld', 'xxmaj', 'xxup', 'xxrep', 'xxwrep', '<unk>', '▁', '▁.', '▁,', '▁der', '▁die', 'en', '▁und', 's', '▁in', 'er', \"▁&'\"]\n",
"Data cls, trn: 1800, val: 200\n",
"Data tst, trn: 200, val: 2000\n",
"Using Label smoothing with eps = 0.05\n",
"Setting Classifier weights seed seed to 7\n",
"Training args: {'drop_mult': 0.5, 'wd': 0.01, 'pretrained': False, 'bptt': 70, 'loss_func': FlattenedLoss of LabelSmoothingCrossEntropy(), 'clip': 0.12} config: {'emb_sz': 400, 'n_hid': 1550, 'n_layers': 4, 'pad_token': 1, 'qrnn': True, 'bidir': False, 'output_p': 0.25, 'hidden_p': 0.1, 'input_p': 0.2, 'embed_p': 0.02, 'weight_p': 0.15}\n",
"Loading pretrained model /home/pczapla/workspace/ulmfit-multilingual/data/cls/de-music/models/sp15k/multifit_paper_version20/enc_best\n",
"Setting Classifier training seed seed to 7\n",
"Training: data/cls/de-music/models/sp15k/multifit_paper_version20seed7\n"
]
},
{
"data": {
"text/html": [
"Total time: 02:52 <p><table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.504087</td>\n",
" <td>0.451805</td>\n",
" <td>0.825000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.431187</td>\n",
" <td>0.464305</td>\n",
" <td>0.825000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.362195</td>\n",
" <td>0.409977</td>\n",
" <td>0.860000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.289505</td>\n",
" <td>0.386984</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.246833</td>\n",
" <td>0.402201</td>\n",
" <td>0.865000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.230346</td>\n",
" <td>0.385452</td>\n",
" <td>0.855000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.221595</td>\n",
" <td>0.381722</td>\n",
" <td>0.880000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.227807</td>\n",
" <td>0.384149</td>\n",
" <td>0.870000</td>\n",
" <td>00:21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Copy sp model from data/cls/de-music/models/sp15k/multifit_paper_version20 to data/cls/de-music/models/sp15k/multifit_paper_version20seed7\n",
"Classifier model saved to data/cls/de-music/models/sp15k/multifit_paper_version20seed7\n",
"Saving dump to data/cls/de-music/models/sp15k/multifit_paper_version20seed7/classifier.json\n",
"this Learner object self-destroyed - it still exists, but no longer usable\n"
]
}
],
"source": [
"exp.classifier.train_(seed=7)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Results"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'test loss': 0.3395114839076996, 'test accuracy': 0.921500027179718, 'name': 'multifit_paper_version20', 'valid loss': 0.3720475435256958, 'valid accuracy': 0.8899999856948853, 'train loss': 0.20120832324028015, 'train accuracy': 1.0}\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>seed</th>\n",
" <th>test accuracy</th>\n",
" <th>valid accuracy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>7</td>\n",
" <td>0.9170</td>\n",
" <td>0.870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>3</td>\n",
" <td>0.9085</td>\n",
" <td>0.870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>4</td>\n",
" <td>0.9085</td>\n",
" <td>0.880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>1</td>\n",
" <td>0.9080</td>\n",
" <td>0.885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>5</td>\n",
" <td>0.9215</td>\n",
" <td>0.890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>2</td>\n",
" <td>0.9160</td>\n",
" <td>0.910</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>multifit_paper_version20</td>\n",
" <td>6</td>\n",
" <td>0.9130</td>\n",
" <td>0.920</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name seed test accuracy valid accuracy\n",
"0 multifit_paper_version20 7 0.9170 0.870\n",
"2 multifit_paper_version20 3 0.9085 0.870\n",
"5 multifit_paper_version20 4 0.9085 0.880\n",
"1 multifit_paper_version20 1 0.9080 0.885\n",
"6 multifit_paper_version20 5 0.9215 0.890\n",
"3 multifit_paper_version20 2 0.9160 0.910\n",
"4 multifit_paper_version20 6 0.9130 0.920"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def get_results(exp_path):\n",
" exp = multifit.ULMFiT().load_(exp_path, silent=True).classifier\n",
" results = exp.validate(use_cache=False) \n",
" results.update(seed=exp.seed, fp16=exp.fp16)\n",
" return results\n",
"results = [get_results(exp_path) for exp_path in cls_dataset.cache_path.glob(exp.pretrain_lm.name+\"seed*\")]\n",
"results_df = pd.DataFrame.from_records(results)\n",
"results_df.sort_values([\"valid accuracy\"])[[\"name\", \"seed\", \"test accuracy\", \"valid accuracy\"]]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}