From 3e7de75fb017d7dd1fb8b21dff3014a5326157cb Mon Sep 17 00:00:00 2001 From: spike Date: Sat, 1 Apr 2017 02:31:02 +0200 Subject: [PATCH] fix get_caches, pick_word and seq_len --- dlnd_tv_script_generation.html | 1305 ++++++++++------- dlnd_tv_script_generation.ipynb | 1275 +++++++++------- ...ts.out.tfevents.1490895533.ip-172-31-18-64 | Bin 582955 -> 584497 bytes ...ts.out.tfevents.1490999151.ip-172-31-18-64 | Bin 0 -> 584497 bytes 4 files changed, 1495 insertions(+), 1085 deletions(-) create mode 100644 logs/1/events.out.tfevents.1490999151.ip-172-31-18-64 diff --git a/dlnd_tv_script_generation.html b/dlnd_tv_script_generation.html index 1a95872..d651304 100644 --- a/dlnd_tv_script_generation.html +++ b/dlnd_tv_script_generation.html @@ -11786,7 +11786,7 @@ div#notebook {
-
In [64]:
+
In [2]:
"""
@@ -11817,7 +11817,7 @@ div#notebook {
 
-
In [14]:
+
In [3]:
view_sentence_range = (0, 10)
@@ -11881,6 +11881,414 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
+
+
+
+
In [4]:
+
+
+
!lspci
+
+ +
+
+
+ +
+
+ + +
+
+ +
+
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
+00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
+00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
+00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01)
+00:02.0 VGA compatible controller: Cirrus Logic GD 5446
+00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
+00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)
+
+
+
+ +
+
+ +
+
+
+
+
+
+

Exploring Sentence Lengths

Find sentence length average to use it as the RRN sequence length

+ +
+
+
+
+
+
In [5]:
+
+
+
import nltk
+from collections import Counter
+from bokeh.charts import Histogram, output_notebook, show
+
+output_notebook()
+
+sentences = set(nltk.sent_tokenize(text[81:]))
+sent_c = Counter()
+
+# Get average length
+for s in sentences:
+    sent_c[s] = nltk.word_tokenize(s).__len__()
+    
+s_lengths = np.array(list(sent_c.values()))
+
+data = dict(x=s_lengths)
+
+p = Histogram(data, xlabel='sentence lengths', bins=50)
+show(p)
+
+
+print('Mean of sentences length is {}'.format(s_lengths.mean()))
+
+ +
+
+
+ +
+
+ + +
+
+ + +
+ +
+ + Loading BokehJS ... +
+
+ +
+ +
+
+ + + + +
+
+ +
+ +
+ +
+
+ + +
+ + +
+
+
+ +
+ +
+ +
+
+ +
+
Mean of sentences length is 11.279889538661468
+
+
+
+ +
+
+
@@ -11904,7 +12312,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
-
In [65]:
+
In [6]:
import numpy as np
@@ -11977,7 +12385,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
-
In [16]:
+
In [7]:
def token_lookup():
@@ -12038,7 +12446,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
-
In [17]:
+
In [8]:
"""
@@ -12065,7 +12473,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
-
In [1]:
+
In [9]:
"""
@@ -12094,7 +12502,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
-
In [177]:
+
In [10]:
from collections import namedtuple
@@ -12136,7 +12544,7 @@ Barney_Gumble: Yeah, you should only drink to enhance your social skills.
 
-
In [3]:
+
In [11]:
"""
@@ -12197,7 +12605,7 @@ Default GPU Device: /gpu:0
 
-
In [225]:
+
In [12]:
def get_inputs():
@@ -12264,7 +12672,7 @@ Default GPU Device: /gpu:0
 
-
In [227]:
+
In [13]:
def get_init_cell(batch_size, rnn_size):
@@ -12330,7 +12738,7 @@ Default GPU Device: /gpu:0
 
-
In [207]:
+
In [14]:
def get_embed(input_data, vocab_size, embed_dim):
@@ -12397,7 +12805,7 @@ Default GPU Device: /gpu:0
 
-
In [228]:
+
In [15]:
def build_rnn(cell, inputs):
@@ -12463,7 +12871,7 @@ Default GPU Device: /gpu:0
 
-
In [231]:
+
In [16]:
def build_nn(cell, rnn_size, input_data, vocab_size):
@@ -12600,7 +13008,40 @@ Tests Passed
 
-
In [233]:
+
In [17]:
+
+
+
t = np.array([1,2,3,4])
+np.random.shuffle(t)
+t
+
+ +
+
+
+ +
+
+ + +
+
Out[17]:
+ + + +
+
array([4, 2, 1, 3])
+
+ +
+ +
+
+ +
+
+
+
In [123]:
def get_batches(int_text, batch_size, seq_length):
@@ -12612,9 +13053,13 @@ Tests Passed
     :return: Batches as a Numpy array
     """
     
-    slice_size = batch_size * seq_length
+    slice_size = int(batch_size * seq_length)
     n_batches = int(len(int_text)/slice_size)
     
+    assert n_batches > 0, 'Maybe your batch size is too big ?'
+    
+    print('n_batches {}\n'.format(n_batches))
+
     # input part
     _inputs = np.array(int_text[:n_batches*slice_size])
     
@@ -12622,23 +13067,32 @@ Tests Passed
     _targets = np.array(int_text[1:n_batches*slice_size + 1])
     
 
-    # Go through all inputs, targets and split them into batch_size*seq_len list of items
-    # [batch, batch, ...]
-    inputs, targets = np.split(_inputs, n_batches), np.split(_targets, n_batches)
+    # Group inputs, targets into n_batches x seq_len items 
+    inputs, targets = np.reshape(_inputs, (-1, n_batches, seq_length)), np.reshape(_targets, (-1, n_batches, seq_length))
+    
+    
+       
+    # Look through the n_batches axes
+    #print(inputs[:,0,:])
+    
+    # Swatch the 0 axis with n_batches axes, now 0 axis is n_batches axis
+    inputs, targets = np.swapaxes(inputs, 0,1), np.swapaxes(targets, 0,1)
+   
     
-    # concat inputs and targets
-    batches = np.c_[inputs, targets]
-    #print(batches.shape)
+    # stack inputs and targets on columns
+    batches = np.column_stack((inputs, targets))
+
     
     # Reshape into final batches output
     batches = batches.reshape((-1, 2, batch_size, seq_length))
 
-    #print(batches[0][1])
-
     
     return batches
 
 
+#Check first batch result
+#print(get_batches(np.arange(1,200,1), 20, 3)[0])
+
 """
 DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
 """
@@ -12657,7 +13111,9 @@ Tests Passed
 
-
Tests Passed
+
n_batches 7
+
+Tests Passed
 
@@ -12686,19 +13142,20 @@ Tests Passed
-
In [234]:
+
In [107]:
# Number of Epochs
-num_epochs = 1000
+num_epochs = 100
 # Batch Size
-batch_size = 128
+batch_size = 256
 # RNN Size
-rnn_size = 70
+rnn_size = 128
 # Sequence Length
-seq_length = 100
+# Use the mean of sentences length as sequence length
+seq_length = int(s_lengths.mean())
 # Learning Rate
-learning_rate = 1e-3
+learning_rate = 1e-2
 # Show stats for every n number of batches
 show_every_n_batches = 10
 
@@ -12725,7 +13182,7 @@ Tests Passed
 
-
In [235]:
+
In [109]:
"""
@@ -12782,7 +13239,7 @@ Tests Passed
 
-
In [238]:
+
In [36]:
# write out the graph for tensorboard
@@ -12808,7 +13265,7 @@ Tests Passed
 
-
In [197]:
+
In [110]:
"""
@@ -12856,507 +13313,248 @@ Tests Passed
 
-
5
-Epoch   0 Batch    0/5   train_loss = 8.825
-Epoch   2 Batch    0/5   train_loss = 6.441
-Epoch   4 Batch    0/5   train_loss = 6.023
-Epoch   6 Batch    0/5   train_loss = 5.927
-Epoch   8 Batch    0/5   train_loss = 5.903
-Epoch  10 Batch    0/5   train_loss = 5.883
-Epoch  12 Batch    0/5   train_loss = 5.874
-Epoch  14 Batch    0/5   train_loss = 5.858
-Epoch  16 Batch    0/5   train_loss = 5.833
-Epoch  18 Batch    0/5   train_loss = 5.794
-Epoch  20 Batch    0/5   train_loss = 5.739
-Epoch  22 Batch    0/5   train_loss = 5.682
-Epoch  24 Batch    0/5   train_loss = 5.626
-Epoch  26 Batch    0/5   train_loss = 5.572
-Epoch  28 Batch    0/5   train_loss = 5.521
-Epoch  30 Batch    0/5   train_loss = 5.471
-Epoch  32 Batch    0/5   train_loss = 5.421
-Epoch  34 Batch    0/5   train_loss = 5.365
-Epoch  36 Batch    0/5   train_loss = 5.304
-Epoch  38 Batch    0/5   train_loss = 5.244
-Epoch  40 Batch    0/5   train_loss = 5.185
-Epoch  42 Batch    0/5   train_loss = 5.124
-Epoch  44 Batch    0/5   train_loss = 5.063
-Epoch  46 Batch    0/5   train_loss = 5.003
-Epoch  48 Batch    0/5   train_loss = 4.945
-Epoch  50 Batch    0/5   train_loss = 4.891
-Epoch  52 Batch    0/5   train_loss = 4.841
-Epoch  54 Batch    0/5   train_loss = 4.794
-Epoch  56 Batch    0/5   train_loss = 4.751
-Epoch  58 Batch    0/5   train_loss = 4.710
-Epoch  60 Batch    0/5   train_loss = 4.669
-Epoch  62 Batch    0/5   train_loss = 4.638
-Epoch  64 Batch    0/5   train_loss = 4.638
-Epoch  66 Batch    0/5   train_loss = 4.589
-Epoch  68 Batch    0/5   train_loss = 4.537
-Epoch  70 Batch    0/5   train_loss = 4.501
-Epoch  72 Batch    0/5   train_loss = 4.469
-Epoch  74 Batch    0/5   train_loss = 4.436
-Epoch  76 Batch    0/5   train_loss = 4.405
-Epoch  78 Batch    0/5   train_loss = 4.375
-Epoch  80 Batch    0/5   train_loss = 4.344
-Epoch  82 Batch    0/5   train_loss = 4.363
-Epoch  84 Batch    0/5   train_loss = 4.311
-Epoch  86 Batch    0/5   train_loss = 4.274
-Epoch  88 Batch    0/5   train_loss = 4.240
-Epoch  90 Batch    0/5   train_loss = 4.211
-Epoch  92 Batch    0/5   train_loss = 4.182
-Epoch  94 Batch    0/5   train_loss = 4.155
-Epoch  96 Batch    0/5   train_loss = 4.135
-Epoch  98 Batch    0/5   train_loss = 4.107
-Epoch 100 Batch    0/5   train_loss = 4.093
-Epoch 102 Batch    0/5   train_loss = 4.053
-Epoch 104 Batch    0/5   train_loss = 4.030
-Epoch 106 Batch    0/5   train_loss = 4.002
-Epoch 108 Batch    0/5   train_loss = 3.978
-Epoch 110 Batch    0/5   train_loss = 3.951
-Epoch 112 Batch    0/5   train_loss = 3.928
-Epoch 114 Batch    0/5   train_loss = 3.902
-Epoch 116 Batch    0/5   train_loss = 3.884
-Epoch 118 Batch    0/5   train_loss = 3.862
-Epoch 120 Batch    0/5   train_loss = 3.840
-Epoch 122 Batch    0/5   train_loss = 3.814
-Epoch 124 Batch    0/5   train_loss = 3.803
-Epoch 126 Batch    0/5   train_loss = 3.775
-Epoch 128 Batch    0/5   train_loss = 3.738
-Epoch 130 Batch    0/5   train_loss = 3.714
-Epoch 132 Batch    0/5   train_loss = 3.690
-Epoch 134 Batch    0/5   train_loss = 3.665
-Epoch 136 Batch    0/5   train_loss = 3.642
-Epoch 138 Batch    0/5   train_loss = 3.619
-Epoch 140 Batch    0/5   train_loss = 3.596
-Epoch 142 Batch    0/5   train_loss = 3.577
-Epoch 144 Batch    0/5   train_loss = 3.588
-Epoch 146 Batch    0/5   train_loss = 3.561
-Epoch 148 Batch    0/5   train_loss = 3.537
-Epoch 150 Batch    0/5   train_loss = 3.494
-Epoch 152 Batch    0/5   train_loss = 3.475
-Epoch 154 Batch    0/5   train_loss = 3.444
-Epoch 156 Batch    0/5   train_loss = 3.431
-Epoch 158 Batch    0/5   train_loss = 3.403
-Epoch 160 Batch    0/5   train_loss = 3.393
-Epoch 162 Batch    0/5   train_loss = 3.371
-Epoch 164 Batch    0/5   train_loss = 3.352
-Epoch 166 Batch    0/5   train_loss = 3.323
-Epoch 168 Batch    0/5   train_loss = 3.328
-Epoch 170 Batch    0/5   train_loss = 3.281
-Epoch 172 Batch    0/5   train_loss = 3.261
-Epoch 174 Batch    0/5   train_loss = 3.238
-Epoch 176 Batch    0/5   train_loss = 3.216
-Epoch 178 Batch    0/5   train_loss = 3.197
-Epoch 180 Batch    0/5   train_loss = 3.172
-Epoch 182 Batch    0/5   train_loss = 3.169
-Epoch 184 Batch    0/5   train_loss = 3.140
-Epoch 186 Batch    0/5   train_loss = 3.136
-Epoch 188 Batch    0/5   train_loss = 3.145
-Epoch 190 Batch    0/5   train_loss = 3.106
-Epoch 192 Batch    0/5   train_loss = 3.069
-Epoch 194 Batch    0/5   train_loss = 3.038
-Epoch 196 Batch    0/5   train_loss = 3.019
-Epoch 198 Batch    0/5   train_loss = 2.995
-Epoch 200 Batch    0/5   train_loss = 2.979
-Epoch 202 Batch    0/5   train_loss = 2.960
-Epoch 204 Batch    0/5   train_loss = 2.943
-Epoch 206 Batch    0/5   train_loss = 2.963
-Epoch 208 Batch    0/5   train_loss = 2.917
-Epoch 210 Batch    0/5   train_loss = 2.898
-Epoch 212 Batch    0/5   train_loss = 2.867
-Epoch 214 Batch    0/5   train_loss = 2.863
-Epoch 216 Batch    0/5   train_loss = 2.834
-Epoch 218 Batch    0/5   train_loss = 2.809
-Epoch 220 Batch    0/5   train_loss = 2.797
-Epoch 222 Batch    0/5   train_loss = 2.774
-Epoch 224 Batch    0/5   train_loss = 2.759
-Epoch 226 Batch    0/5   train_loss = 2.732
-Epoch 228 Batch    0/5   train_loss = 2.742
-Epoch 230 Batch    0/5   train_loss = 2.704
-Epoch 232 Batch    0/5   train_loss = 2.703
-Epoch 234 Batch    0/5   train_loss = 2.663
-Epoch 236 Batch    0/5   train_loss = 2.672
-Epoch 238 Batch    0/5   train_loss = 2.638
-Epoch 240 Batch    0/5   train_loss = 2.620
-Epoch 242 Batch    0/5   train_loss = 2.595
-Epoch 244 Batch    0/5   train_loss = 2.585
-Epoch 246 Batch    0/5   train_loss = 2.563
-Epoch 248 Batch    0/5   train_loss = 2.539
-Epoch 250 Batch    0/5   train_loss = 2.534
-Epoch 252 Batch    0/5   train_loss = 2.517
-Epoch 254 Batch    0/5   train_loss = 2.497
-Epoch 256 Batch    0/5   train_loss = 2.475
-Epoch 258 Batch    0/5   train_loss = 2.463
-Epoch 260 Batch    0/5   train_loss = 2.478
-Epoch 262 Batch    0/5   train_loss = 2.450
-Epoch 264 Batch    0/5   train_loss = 2.436
-Epoch 266 Batch    0/5   train_loss = 2.417
-Epoch 268 Batch    0/5   train_loss = 2.384
-Epoch 270 Batch    0/5   train_loss = 2.363
-Epoch 272 Batch    0/5   train_loss = 2.340
-Epoch 274 Batch    0/5   train_loss = 2.323
-Epoch 276 Batch    0/5   train_loss = 2.314
-Epoch 278 Batch    0/5   train_loss = 2.302
-Epoch 280 Batch    0/5   train_loss = 2.300
-Epoch 282 Batch    0/5   train_loss = 2.300
-Epoch 284 Batch    0/5   train_loss = 2.283
-Epoch 286 Batch    0/5   train_loss = 2.246
-Epoch 288 Batch    0/5   train_loss = 2.246
-Epoch 290 Batch    0/5   train_loss = 2.210
-Epoch 292 Batch    0/5   train_loss = 2.203
-Epoch 294 Batch    0/5   train_loss = 2.185
-Epoch 296 Batch    0/5   train_loss = 2.170
-Epoch 298 Batch    0/5   train_loss = 2.150
-Epoch 300 Batch    0/5   train_loss = 2.130
-Epoch 302 Batch    0/5   train_loss = 2.132
-Epoch 304 Batch    0/5   train_loss = 2.113
-Epoch 306 Batch    0/5   train_loss = 2.083
-Epoch 308 Batch    0/5   train_loss = 2.073
-Epoch 310 Batch    0/5   train_loss = 2.060
-Epoch 312 Batch    0/5   train_loss = 2.072
-Epoch 314 Batch    0/5   train_loss = 2.081
-Epoch 316 Batch    0/5   train_loss = 2.031
-Epoch 318 Batch    0/5   train_loss = 2.007
-Epoch 320 Batch    0/5   train_loss = 2.001
-Epoch 322 Batch    0/5   train_loss = 1.987
-Epoch 324 Batch    0/5   train_loss = 1.978
-Epoch 326 Batch    0/5   train_loss = 1.963
-Epoch 328 Batch    0/5   train_loss = 1.952
-Epoch 330 Batch    0/5   train_loss = 1.932
-Epoch 332 Batch    0/5   train_loss = 1.918
-Epoch 334 Batch    0/5   train_loss = 1.898
-Epoch 336 Batch    0/5   train_loss = 1.885
-Epoch 338 Batch    0/5   train_loss = 1.872
-Epoch 340 Batch    0/5   train_loss = 1.864
-Epoch 342 Batch    0/5   train_loss = 1.867
-Epoch 344 Batch    0/5   train_loss = 1.848
-Epoch 346 Batch    0/5   train_loss = 1.821
-Epoch 348 Batch    0/5   train_loss = 1.814
-Epoch 350 Batch    0/5   train_loss = 1.788
-Epoch 352 Batch    0/5   train_loss = 1.806
-Epoch 354 Batch    0/5   train_loss = 1.790
-Epoch 356 Batch    0/5   train_loss = 1.761
-Epoch 358 Batch    0/5   train_loss = 1.745
-Epoch 360 Batch    0/5   train_loss = 1.735
-Epoch 362 Batch    0/5   train_loss = 1.718
-Epoch 364 Batch    0/5   train_loss = 1.747
-Epoch 366 Batch    0/5   train_loss = 1.726
-Epoch 368 Batch    0/5   train_loss = 1.753
-Epoch 370 Batch    0/5   train_loss = 1.703
-Epoch 372 Batch    0/5   train_loss = 1.662
-Epoch 374 Batch    0/5   train_loss = 1.643
-Epoch 376 Batch    0/5   train_loss = 1.624
-Epoch 378 Batch    0/5   train_loss = 1.617
-Epoch 380 Batch    0/5   train_loss = 1.598
-Epoch 382 Batch    0/5   train_loss = 1.613
-Epoch 384 Batch    0/5   train_loss = 1.601
-Epoch 386 Batch    0/5   train_loss = 1.584
-Epoch 388 Batch    0/5   train_loss = 1.569
-Epoch 390 Batch    0/5   train_loss = 1.557
-Epoch 392 Batch    0/5   train_loss = 1.534
-Epoch 394 Batch    0/5   train_loss = 1.534
-Epoch 396 Batch    0/5   train_loss = 1.520
-Epoch 398 Batch    0/5   train_loss = 1.547
-Epoch 400 Batch    0/5   train_loss = 1.545
-Epoch 402 Batch    0/5   train_loss = 1.521
-Epoch 404 Batch    0/5   train_loss = 1.486
-Epoch 406 Batch    0/5   train_loss = 1.469
-Epoch 408 Batch    0/5   train_loss = 1.458
-Epoch 410 Batch    0/5   train_loss = 1.442
-Epoch 412 Batch    0/5   train_loss = 1.431
-Epoch 414 Batch    0/5   train_loss = 1.410
-Epoch 416 Batch    0/5   train_loss = 1.411
-Epoch 418 Batch    0/5   train_loss = 1.412
-Epoch 420 Batch    0/5   train_loss = 1.398
-Epoch 422 Batch    0/5   train_loss = 1.417
-Epoch 424 Batch    0/5   train_loss = 1.381
-Epoch 426 Batch    0/5   train_loss = 1.355
-Epoch 428 Batch    0/5   train_loss = 1.354
-Epoch 430 Batch    0/5   train_loss = 1.338
-Epoch 432 Batch    0/5   train_loss = 1.321
-Epoch 434 Batch    0/5   train_loss = 1.326
-Epoch 436 Batch    0/5   train_loss = 1.324
-Epoch 438 Batch    0/5   train_loss = 1.314
-Epoch 440 Batch    0/5   train_loss = 1.292
-Epoch 442 Batch    0/5   train_loss = 1.279
-Epoch 444 Batch    0/5   train_loss = 1.259
-Epoch 446 Batch    0/5   train_loss = 1.283
-Epoch 448 Batch    0/5   train_loss = 1.274
-Epoch 450 Batch    0/5   train_loss = 1.251
-Epoch 452 Batch    0/5   train_loss = 1.279
-Epoch 454 Batch    0/5   train_loss = 1.249
-Epoch 456 Batch    0/5   train_loss = 1.214
-Epoch 458 Batch    0/5   train_loss = 1.196
-Epoch 460 Batch    0/5   train_loss = 1.185
-Epoch 462 Batch    0/5   train_loss = 1.174
-Epoch 464 Batch    0/5   train_loss = 1.158
-Epoch 466 Batch    0/5   train_loss = 1.195
-Epoch 468 Batch    0/5   train_loss = 1.158
-Epoch 470 Batch    0/5   train_loss = 1.145
-Epoch 472 Batch    0/5   train_loss = 1.160
-Epoch 474 Batch    0/5   train_loss = 1.123
-Epoch 476 Batch    0/5   train_loss = 1.118
-Epoch 478 Batch    0/5   train_loss = 1.103
-Epoch 480 Batch    0/5   train_loss = 1.088
-Epoch 482 Batch    0/5   train_loss = 1.089
-Epoch 484 Batch    0/5   train_loss = 1.094
-Epoch 486 Batch    0/5   train_loss = 1.092
-Epoch 488 Batch    0/5   train_loss = 1.106
-Epoch 490 Batch    0/5   train_loss = 1.053
-Epoch 492 Batch    0/5   train_loss = 1.052
-Epoch 494 Batch    0/5   train_loss = 1.046
-Epoch 496 Batch    0/5   train_loss = 1.030
-Epoch 498 Batch    0/5   train_loss = 1.021
-Epoch 500 Batch    0/5   train_loss = 1.020
-Epoch 502 Batch    0/5   train_loss = 1.046
-Epoch 504 Batch    0/5   train_loss = 1.040
-Epoch 506 Batch    0/5   train_loss = 1.026
-Epoch 508 Batch    0/5   train_loss = 0.982
-Epoch 510 Batch    0/5   train_loss = 0.969
-Epoch 512 Batch    0/5   train_loss = 0.962
-Epoch 514 Batch    0/5   train_loss = 0.946
-Epoch 516 Batch    0/5   train_loss = 0.941
-Epoch 518 Batch    0/5   train_loss = 0.951
-Epoch 520 Batch    0/5   train_loss = 0.945
-Epoch 522 Batch    0/5   train_loss = 0.952
-Epoch 524 Batch    0/5   train_loss = 0.931
-Epoch 526 Batch    0/5   train_loss = 0.905
-Epoch 528 Batch    0/5   train_loss = 0.893
-Epoch 530 Batch    0/5   train_loss = 0.881
-Epoch 532 Batch    0/5   train_loss = 0.882
-Epoch 534 Batch    0/5   train_loss = 0.871
-Epoch 536 Batch    0/5   train_loss = 0.904
-Epoch 538 Batch    0/5   train_loss = 0.893
-Epoch 540 Batch    0/5   train_loss = 0.884
-Epoch 542 Batch    0/5   train_loss = 0.864
-Epoch 544 Batch    0/5   train_loss = 0.854
-Epoch 546 Batch    0/5   train_loss = 0.854
-Epoch 548 Batch    0/5   train_loss = 0.836
-Epoch 550 Batch    0/5   train_loss = 0.816
-Epoch 552 Batch    0/5   train_loss = 0.829
-Epoch 554 Batch    0/5   train_loss = 0.813
-Epoch 556 Batch    0/5   train_loss = 0.798
-Epoch 558 Batch    0/5   train_loss = 0.808
-Epoch 560 Batch    0/5   train_loss = 0.789
-Epoch 562 Batch    0/5   train_loss = 0.791
-Epoch 564 Batch    0/5   train_loss = 0.779
-Epoch 566 Batch    0/5   train_loss = 0.765
-Epoch 568 Batch    0/5   train_loss = 0.746
-Epoch 570 Batch    0/5   train_loss = 0.746
-Epoch 572 Batch    0/5   train_loss = 0.733
-Epoch 574 Batch    0/5   train_loss = 0.733
-Epoch 576 Batch    0/5   train_loss = 0.752
-Epoch 578 Batch    0/5   train_loss = 0.727
-Epoch 580 Batch    0/5   train_loss = 0.712
-Epoch 582 Batch    0/5   train_loss = 0.711
-Epoch 584 Batch    0/5   train_loss = 0.708
-Epoch 586 Batch    0/5   train_loss = 0.695
-Epoch 588 Batch    0/5   train_loss = 0.699
-Epoch 590 Batch    0/5   train_loss = 0.688
-Epoch 592 Batch    0/5   train_loss = 0.682
-Epoch 594 Batch    0/5   train_loss = 0.703
-Epoch 596 Batch    0/5   train_loss = 0.681
-Epoch 598 Batch    0/5   train_loss = 0.672
-Epoch 600 Batch    0/5   train_loss = 0.678
-Epoch 602 Batch    0/5   train_loss = 0.657
-Epoch 604 Batch    0/5   train_loss = 0.652
-Epoch 606 Batch    0/5   train_loss = 0.627
-Epoch 608 Batch    0/5   train_loss = 0.623
-Epoch 610 Batch    0/5   train_loss = 0.633
-Epoch 612 Batch    0/5   train_loss = 0.608
-Epoch 614 Batch    0/5   train_loss = 0.614
-Epoch 616 Batch    0/5   train_loss = 0.620
-Epoch 618 Batch    0/5   train_loss = 0.610
-Epoch 620 Batch    0/5   train_loss = 0.596
-Epoch 622 Batch    0/5   train_loss = 0.596
-Epoch 624 Batch    0/5   train_loss = 0.605
-Epoch 626 Batch    0/5   train_loss = 0.574
-Epoch 628 Batch    0/5   train_loss = 0.581
-Epoch 630 Batch    0/5   train_loss = 0.571
-Epoch 632 Batch    0/5   train_loss = 0.563
-Epoch 634 Batch    0/5   train_loss = 0.582
-Epoch 636 Batch    0/5   train_loss = 0.579
-Epoch 638 Batch    0/5   train_loss = 0.562
-Epoch 640 Batch    0/5   train_loss = 0.549
-Epoch 642 Batch    0/5   train_loss = 0.540
-Epoch 644 Batch    0/5   train_loss = 0.520
-Epoch 646 Batch    0/5   train_loss = 0.515
-Epoch 648 Batch    0/5   train_loss = 0.509
-Epoch 650 Batch    0/5   train_loss = 0.509
-Epoch 652 Batch    0/5   train_loss = 0.527
-Epoch 654 Batch    0/5   train_loss = 0.524
-Epoch 656 Batch    0/5   train_loss = 0.509
-Epoch 658 Batch    0/5   train_loss = 0.523
-Epoch 660 Batch    0/5   train_loss = 0.502
-Epoch 662 Batch    0/5   train_loss = 0.477
-Epoch 664 Batch    0/5   train_loss = 0.473
-Epoch 666 Batch    0/5   train_loss = 0.463
-Epoch 668 Batch    0/5   train_loss = 0.457
-Epoch 670 Batch    0/5   train_loss = 0.455
-Epoch 672 Batch    0/5   train_loss = 0.459
-Epoch 674 Batch    0/5   train_loss = 0.475
-Epoch 676 Batch    0/5   train_loss = 0.471
-Epoch 678 Batch    0/5   train_loss = 0.455
-Epoch 680 Batch    0/5   train_loss = 0.443
-Epoch 682 Batch    0/5   train_loss = 0.456
-Epoch 684 Batch    0/5   train_loss = 0.440
-Epoch 686 Batch    0/5   train_loss = 0.421
-Epoch 688 Batch    0/5   train_loss = 0.413
-Epoch 690 Batch    0/5   train_loss = 0.405
-Epoch 692 Batch    0/5   train_loss = 0.401
-Epoch 694 Batch    0/5   train_loss = 0.404
-Epoch 696 Batch    0/5   train_loss = 0.400
-Epoch 698 Batch    0/5   train_loss = 0.428
-Epoch 700 Batch    0/5   train_loss = 0.451
-Epoch 702 Batch    0/5   train_loss = 0.426
-Epoch 704 Batch    0/5   train_loss = 0.410
-Epoch 706 Batch    0/5   train_loss = 0.422
-Epoch 708 Batch    0/5   train_loss = 0.398
-Epoch 710 Batch    0/5   train_loss = 0.377
-Epoch 712 Batch    0/5   train_loss = 0.368
-Epoch 714 Batch    0/5   train_loss = 0.358
-Epoch 716 Batch    0/5   train_loss = 0.352
-Epoch 718 Batch    0/5   train_loss = 0.349
-Epoch 720 Batch    0/5   train_loss = 0.344
-Epoch 722 Batch    0/5   train_loss = 0.346
-Epoch 724 Batch    0/5   train_loss = 0.345
-Epoch 726 Batch    0/5   train_loss = 0.337
-Epoch 728 Batch    0/5   train_loss = 0.345
-Epoch 730 Batch    0/5   train_loss = 0.348
-Epoch 732 Batch    0/5   train_loss = 0.358
-Epoch 734 Batch    0/5   train_loss = 0.346
-Epoch 736 Batch    0/5   train_loss = 0.337
-Epoch 738 Batch    0/5   train_loss = 0.329
-Epoch 740 Batch    0/5   train_loss = 0.320
-Epoch 742 Batch    0/5   train_loss = 0.323
-Epoch 744 Batch    0/5   train_loss = 0.316
-Epoch 746 Batch    0/5   train_loss = 0.304
-Epoch 748 Batch    0/5   train_loss = 0.299
-Epoch 750 Batch    0/5   train_loss = 0.292
-Epoch 752 Batch    0/5   train_loss = 0.288
-Epoch 754 Batch    0/5   train_loss = 0.289
-Epoch 756 Batch    0/5   train_loss = 0.284
-Epoch 758 Batch    0/5   train_loss = 0.290
-Epoch 760 Batch    0/5   train_loss = 0.304
-Epoch 762 Batch    0/5   train_loss = 0.311
-Epoch 764 Batch    0/5   train_loss = 0.405
-Epoch 766 Batch    0/5   train_loss = 0.390
-Epoch 768 Batch    0/5   train_loss = 0.344
-Epoch 770 Batch    0/5   train_loss = 0.320
-Epoch 772 Batch    0/5   train_loss = 0.280
-Epoch 774 Batch    0/5   train_loss = 0.265
-Epoch 776 Batch    0/5   train_loss = 0.258
-Epoch 778 Batch    0/5   train_loss = 0.252
-Epoch 780 Batch    0/5   train_loss = 0.247
-Epoch 782 Batch    0/5   train_loss = 0.243
-Epoch 784 Batch    0/5   train_loss = 0.240
-Epoch 786 Batch    0/5   train_loss = 0.237
-Epoch 788 Batch    0/5   train_loss = 0.233
-Epoch 790 Batch    0/5   train_loss = 0.231
-Epoch 792 Batch    0/5   train_loss = 0.229
-Epoch 794 Batch    0/5   train_loss = 0.225
-Epoch 796 Batch    0/5   train_loss = 0.230
-Epoch 798 Batch    0/5   train_loss = 0.226
-Epoch 800 Batch    0/5   train_loss = 0.222
-Epoch 802 Batch    0/5   train_loss = 0.237
-Epoch 804 Batch    0/5   train_loss = 0.225
-Epoch 806 Batch    0/5   train_loss = 0.225
-Epoch 808 Batch    0/5   train_loss = 0.245
-Epoch 810 Batch    0/5   train_loss = 0.227
-Epoch 812 Batch    0/5   train_loss = 0.210
-Epoch 814 Batch    0/5   train_loss = 0.206
-Epoch 816 Batch    0/5   train_loss = 0.202
-Epoch 818 Batch    0/5   train_loss = 0.198
-Epoch 820 Batch    0/5   train_loss = 0.195
-Epoch 822 Batch    0/5   train_loss = 0.192
-Epoch 824 Batch    0/5   train_loss = 0.189
-Epoch 826 Batch    0/5   train_loss = 0.189
-Epoch 828 Batch    0/5   train_loss = 0.187
-Epoch 830 Batch    0/5   train_loss = 0.186
-Epoch 832 Batch    0/5   train_loss = 0.187
-Epoch 834 Batch    0/5   train_loss = 0.189
-Epoch 836 Batch    0/5   train_loss = 0.189
-Epoch 838 Batch    0/5   train_loss = 0.197
-Epoch 840 Batch    0/5   train_loss = 0.207
-Epoch 842 Batch    0/5   train_loss = 0.196
-Epoch 844 Batch    0/5   train_loss = 0.187
-Epoch 846 Batch    0/5   train_loss = 0.197
-Epoch 848 Batch    0/5   train_loss = 0.189
-Epoch 850 Batch    0/5   train_loss = 0.176
-Epoch 852 Batch    0/5   train_loss = 0.171
-Epoch 854 Batch    0/5   train_loss = 0.164
-Epoch 856 Batch    0/5   train_loss = 0.161
-Epoch 858 Batch    0/5   train_loss = 0.157
-Epoch 860 Batch    0/5   train_loss = 0.154
-Epoch 862 Batch    0/5   train_loss = 0.152
-Epoch 864 Batch    0/5   train_loss = 0.150
-Epoch 866 Batch    0/5   train_loss = 0.148
-Epoch 868 Batch    0/5   train_loss = 0.146
-Epoch 870 Batch    0/5   train_loss = 0.145
-Epoch 872 Batch    0/5   train_loss = 0.145
-Epoch 874 Batch    0/5   train_loss = 0.142
-Epoch 876 Batch    0/5   train_loss = 0.143
-Epoch 878 Batch    0/5   train_loss = 0.159
-Epoch 880 Batch    0/5   train_loss = 0.145
-Epoch 882 Batch    0/5   train_loss = 0.161
-Epoch 884 Batch    0/5   train_loss = 0.211
-Epoch 886 Batch    0/5   train_loss = 0.196
-Epoch 888 Batch    0/5   train_loss = 0.335
-Epoch 890 Batch    0/5   train_loss = 0.325
-Epoch 892 Batch    0/5   train_loss = 0.279
-Epoch 894 Batch    0/5   train_loss = 0.244
-Epoch 896 Batch    0/5   train_loss = 0.214
-Epoch 898 Batch    0/5   train_loss = 0.174
-Epoch 900 Batch    0/5   train_loss = 0.147
-Epoch 902 Batch    0/5   train_loss = 0.138
-Epoch 904 Batch    0/5   train_loss = 0.131
-Epoch 906 Batch    0/5   train_loss = 0.128
-Epoch 908 Batch    0/5   train_loss = 0.125
-Epoch 910 Batch    0/5   train_loss = 0.123
-Epoch 912 Batch    0/5   train_loss = 0.121
-Epoch 914 Batch    0/5   train_loss = 0.119
-Epoch 916 Batch    0/5   train_loss = 0.117
-Epoch 918 Batch    0/5   train_loss = 0.116
-Epoch 920 Batch    0/5   train_loss = 0.114
-Epoch 922 Batch    0/5   train_loss = 0.113
-Epoch 924 Batch    0/5   train_loss = 0.112
-Epoch 926 Batch    0/5   train_loss = 0.111
-Epoch 928 Batch    0/5   train_loss = 0.109
-Epoch 930 Batch    0/5   train_loss = 0.108
-Epoch 932 Batch    0/5   train_loss = 0.107
-Epoch 934 Batch    0/5   train_loss = 0.106
-Epoch 936 Batch    0/5   train_loss = 0.105
-Epoch 938 Batch    0/5   train_loss = 0.103
-Epoch 940 Batch    0/5   train_loss = 0.102
-Epoch 942 Batch    0/5   train_loss = 0.101
-Epoch 944 Batch    0/5   train_loss = 0.100
-Epoch 946 Batch    0/5   train_loss = 0.099
-Epoch 948 Batch    0/5   train_loss = 0.098
-Epoch 950 Batch    0/5   train_loss = 0.097
-Epoch 952 Batch    0/5   train_loss = 0.096
-Epoch 954 Batch    0/5   train_loss = 0.095
-Epoch 956 Batch    0/5   train_loss = 0.094
-Epoch 958 Batch    0/5   train_loss = 0.094
-Epoch 960 Batch    0/5   train_loss = 0.093
-Epoch 962 Batch    0/5   train_loss = 0.092
-Epoch 964 Batch    0/5   train_loss = 0.091
-Epoch 966 Batch    0/5   train_loss = 0.090
-Epoch 968 Batch    0/5   train_loss = 0.089
-Epoch 970 Batch    0/5   train_loss = 0.088
-Epoch 972 Batch    0/5   train_loss = 0.088
-Epoch 974 Batch    0/5   train_loss = 0.087
-Epoch 976 Batch    0/5   train_loss = 0.086
-Epoch 978 Batch    0/5   train_loss = 0.085
-Epoch 980 Batch    0/5   train_loss = 0.084
-Epoch 982 Batch    0/5   train_loss = 0.083
-Epoch 984 Batch    0/5   train_loss = 0.083
-Epoch 986 Batch    0/5   train_loss = 0.082
-Epoch 988 Batch    0/5   train_loss = 0.081
-Epoch 990 Batch    0/5   train_loss = 0.080
-Epoch 992 Batch    0/5   train_loss = 0.080
-Epoch 994 Batch    0/5   train_loss = 0.079
-Epoch 996 Batch    0/5   train_loss = 0.078
-Epoch 998 Batch    0/5   train_loss = 0.078
+
n_batches 24
+
+Epoch   0 Batch    0/24   train_loss = 8.821
+Epoch   0 Batch   10/24   train_loss = 6.639
+Epoch   0 Batch   20/24   train_loss = 6.516
+Epoch   1 Batch    6/24   train_loss = 6.023
+Epoch   1 Batch   16/24   train_loss = 6.070
+Epoch   2 Batch    2/24   train_loss = 5.976
+Epoch   2 Batch   12/24   train_loss = 6.045
+Epoch   2 Batch   22/24   train_loss = 5.987
+Epoch   3 Batch    8/24   train_loss = 5.959
+Epoch   3 Batch   18/24   train_loss = 5.839
+Epoch   4 Batch    4/24   train_loss = 5.702
+Epoch   4 Batch   14/24   train_loss = 5.684
+Epoch   5 Batch    0/24   train_loss = 5.578
+Epoch   5 Batch   10/24   train_loss = 5.687
+Epoch   5 Batch   20/24   train_loss = 5.597
+Epoch   6 Batch    6/24   train_loss = 5.504
+Epoch   6 Batch   16/24   train_loss = 5.442
+Epoch   7 Batch    2/24   train_loss = 5.276
+Epoch   7 Batch   12/24   train_loss = 5.422
+Epoch   7 Batch   22/24   train_loss = 5.317
+Epoch   8 Batch    8/24   train_loss = 5.296
+Epoch   8 Batch   18/24   train_loss = 5.165
+Epoch   9 Batch    4/24   train_loss = 5.019
+Epoch   9 Batch   14/24   train_loss = 4.972
+Epoch  10 Batch    0/24   train_loss = 4.883
+Epoch  10 Batch   10/24   train_loss = 4.991
+Epoch  10 Batch   20/24   train_loss = 4.891
+Epoch  11 Batch    6/24   train_loss = 4.799
+Epoch  11 Batch   16/24   train_loss = 4.764
+Epoch  12 Batch    2/24   train_loss = 4.581
+Epoch  12 Batch   12/24   train_loss = 4.673
+Epoch  12 Batch   22/24   train_loss = 4.586
+Epoch  13 Batch    8/24   train_loss = 4.603
+Epoch  13 Batch   18/24   train_loss = 4.454
+Epoch  14 Batch    4/24   train_loss = 4.280
+Epoch  14 Batch   14/24   train_loss = 4.301
+Epoch  15 Batch    0/24   train_loss = 4.275
+Epoch  15 Batch   10/24   train_loss = 4.371
+Epoch  15 Batch   20/24   train_loss = 4.248
+Epoch  16 Batch    6/24   train_loss = 4.220
+Epoch  16 Batch   16/24   train_loss = 4.169
+Epoch  17 Batch    2/24   train_loss = 3.998
+Epoch  17 Batch   12/24   train_loss = 4.083
+Epoch  17 Batch   22/24   train_loss = 3.965
+Epoch  18 Batch    8/24   train_loss = 3.985
+Epoch  18 Batch   18/24   train_loss = 3.911
+Epoch  19 Batch    4/24   train_loss = 3.733
+Epoch  19 Batch   14/24   train_loss = 3.779
+Epoch  20 Batch    0/24   train_loss = 3.714
+Epoch  20 Batch   10/24   train_loss = 3.793
+Epoch  20 Batch   20/24   train_loss = 3.735
+Epoch  21 Batch    6/24   train_loss = 3.713
+Epoch  21 Batch   16/24   train_loss = 3.677
+Epoch  22 Batch    2/24   train_loss = 3.518
+Epoch  22 Batch   12/24   train_loss = 3.561
+Epoch  22 Batch   22/24   train_loss = 3.501
+Epoch  23 Batch    8/24   train_loss = 3.499
+Epoch  23 Batch   18/24   train_loss = 3.451
+Epoch  24 Batch    4/24   train_loss = 3.291
+Epoch  24 Batch   14/24   train_loss = 3.295
+Epoch  25 Batch    0/24   train_loss = 3.271
+Epoch  25 Batch   10/24   train_loss = 3.331
+Epoch  25 Batch   20/24   train_loss = 3.256
+Epoch  26 Batch    6/24   train_loss = 3.238
+Epoch  26 Batch   16/24   train_loss = 3.167
+Epoch  27 Batch    2/24   train_loss = 3.038
+Epoch  27 Batch   12/24   train_loss = 3.106
+Epoch  27 Batch   22/24   train_loss = 2.985
+Epoch  28 Batch    8/24   train_loss = 3.011
+Epoch  28 Batch   18/24   train_loss = 2.991
+Epoch  29 Batch    4/24   train_loss = 2.907
+Epoch  29 Batch   14/24   train_loss = 2.891
+Epoch  30 Batch    0/24   train_loss = 2.911
+Epoch  30 Batch   10/24   train_loss = 2.948
+Epoch  30 Batch   20/24   train_loss = 2.903
+Epoch  31 Batch    6/24   train_loss = 2.885
+Epoch  31 Batch   16/24   train_loss = 2.808
+Epoch  32 Batch    2/24   train_loss = 2.670
+Epoch  32 Batch   12/24   train_loss = 2.701
+Epoch  32 Batch   22/24   train_loss = 2.591
+Epoch  33 Batch    8/24   train_loss = 2.579
+Epoch  33 Batch   18/24   train_loss = 2.603
+Epoch  34 Batch    4/24   train_loss = 2.498
+Epoch  34 Batch   14/24   train_loss = 2.504
+Epoch  35 Batch    0/24   train_loss = 2.482
+Epoch  35 Batch   10/24   train_loss = 2.530
+Epoch  35 Batch   20/24   train_loss = 2.489
+Epoch  36 Batch    6/24   train_loss = 2.486
+Epoch  36 Batch   16/24   train_loss = 2.417
+Epoch  37 Batch    2/24   train_loss = 2.320
+Epoch  37 Batch   12/24   train_loss = 2.348
+Epoch  37 Batch   22/24   train_loss = 2.287
+Epoch  38 Batch    8/24   train_loss = 2.245
+Epoch  38 Batch   18/24   train_loss = 2.322
+Epoch  39 Batch    4/24   train_loss = 2.230
+Epoch  39 Batch   14/24   train_loss = 2.234
+Epoch  40 Batch    0/24   train_loss = 2.223
+Epoch  40 Batch   10/24   train_loss = 2.263
+Epoch  40 Batch   20/24   train_loss = 2.267
+Epoch  41 Batch    6/24   train_loss = 2.251
+Epoch  41 Batch   16/24   train_loss = 2.179
+Epoch  42 Batch    2/24   train_loss = 2.121
+Epoch  42 Batch   12/24   train_loss = 2.155
+Epoch  42 Batch   22/24   train_loss = 2.100
+Epoch  43 Batch    8/24   train_loss = 2.031
+Epoch  43 Batch   18/24   train_loss = 2.134
+Epoch  44 Batch    4/24   train_loss = 2.016
+Epoch  44 Batch   14/24   train_loss = 2.027
+Epoch  45 Batch    0/24   train_loss = 2.049
+Epoch  45 Batch   10/24   train_loss = 2.042
+Epoch  45 Batch   20/24   train_loss = 2.060
+Epoch  46 Batch    6/24   train_loss = 2.031
+Epoch  46 Batch   16/24   train_loss = 1.943
+Epoch  47 Batch    2/24   train_loss = 1.888
+Epoch  47 Batch   12/24   train_loss = 1.901
+Epoch  47 Batch   22/24   train_loss = 1.881
+Epoch  48 Batch    8/24   train_loss = 1.794
+Epoch  48 Batch   18/24   train_loss = 1.910
+Epoch  49 Batch    4/24   train_loss = 1.802
+Epoch  49 Batch   14/24   train_loss = 1.839
+Epoch  50 Batch    0/24   train_loss = 1.860
+Epoch  50 Batch   10/24   train_loss = 1.836
+Epoch  50 Batch   20/24   train_loss = 1.834
+Epoch  51 Batch    6/24   train_loss = 1.841
+Epoch  51 Batch   16/24   train_loss = 1.803
+Epoch  52 Batch    2/24   train_loss = 1.735
+Epoch  52 Batch   12/24   train_loss = 1.723
+Epoch  52 Batch   22/24   train_loss = 1.692
+Epoch  53 Batch    8/24   train_loss = 1.636
+Epoch  53 Batch   18/24   train_loss = 1.754
+Epoch  54 Batch    4/24   train_loss = 1.671
+Epoch  54 Batch   14/24   train_loss = 1.657
+Epoch  55 Batch    0/24   train_loss = 1.722
+Epoch  55 Batch   10/24   train_loss = 1.697
+Epoch  55 Batch   20/24   train_loss = 1.719
+Epoch  56 Batch    6/24   train_loss = 1.689
+Epoch  56 Batch   16/24   train_loss = 1.624
+Epoch  57 Batch    2/24   train_loss = 1.592
+Epoch  57 Batch   12/24   train_loss = 1.616
+Epoch  57 Batch   22/24   train_loss = 1.556
+Epoch  58 Batch    8/24   train_loss = 1.525
+Epoch  58 Batch   18/24   train_loss = 1.592
+Epoch  59 Batch    4/24   train_loss = 1.547
+Epoch  59 Batch   14/24   train_loss = 1.549
+Epoch  60 Batch    0/24   train_loss = 1.570
+Epoch  60 Batch   10/24   train_loss = 1.530
+Epoch  60 Batch   20/24   train_loss = 1.580
+Epoch  61 Batch    6/24   train_loss = 1.540
+Epoch  61 Batch   16/24   train_loss = 1.496
+Epoch  62 Batch    2/24   train_loss = 1.459
+Epoch  62 Batch   12/24   train_loss = 1.450
+Epoch  62 Batch   22/24   train_loss = 1.432
+Epoch  63 Batch    8/24   train_loss = 1.387
+Epoch  63 Batch   18/24   train_loss = 1.483
+Epoch  64 Batch    4/24   train_loss = 1.414
+Epoch  64 Batch   14/24   train_loss = 1.430
+Epoch  65 Batch    0/24   train_loss = 1.452
+Epoch  65 Batch   10/24   train_loss = 1.433
+Epoch  65 Batch   20/24   train_loss = 1.496
+Epoch  66 Batch    6/24   train_loss = 1.447
+Epoch  66 Batch   16/24   train_loss = 1.436
+Epoch  67 Batch    2/24   train_loss = 1.398
+Epoch  67 Batch   12/24   train_loss = 1.409
+Epoch  67 Batch   22/24   train_loss = 1.404
+Epoch  68 Batch    8/24   train_loss = 1.339
+Epoch  68 Batch   18/24   train_loss = 1.429
+Epoch  69 Batch    4/24   train_loss = 1.371
+Epoch  69 Batch   14/24   train_loss = 1.402
+Epoch  70 Batch    0/24   train_loss = 1.439
+Epoch  70 Batch   10/24   train_loss = 1.382
+Epoch  70 Batch   20/24   train_loss = 1.436
+Epoch  71 Batch    6/24   train_loss = 1.411
+Epoch  71 Batch   16/24   train_loss = 1.379
+Epoch  72 Batch    2/24   train_loss = 1.347
+Epoch  72 Batch   12/24   train_loss = 1.326
+Epoch  72 Batch   22/24   train_loss = 1.335
+Epoch  73 Batch    8/24   train_loss = 1.284
+Epoch  73 Batch   18/24   train_loss = 1.369
+Epoch  74 Batch    4/24   train_loss = 1.308
+Epoch  74 Batch   14/24   train_loss = 1.305
+Epoch  75 Batch    0/24   train_loss = 1.329
+Epoch  75 Batch   10/24   train_loss = 1.291
+Epoch  75 Batch   20/24   train_loss = 1.345
+Epoch  76 Batch    6/24   train_loss = 1.303
+Epoch  76 Batch   16/24   train_loss = 1.287
+Epoch  77 Batch    2/24   train_loss = 1.260
+Epoch  77 Batch   12/24   train_loss = 1.229
+Epoch  77 Batch   22/24   train_loss = 1.228
+Epoch  78 Batch    8/24   train_loss = 1.176
+Epoch  78 Batch   18/24   train_loss = 1.247
+Epoch  79 Batch    4/24   train_loss = 1.176
+Epoch  79 Batch   14/24   train_loss = 1.211
+Epoch  80 Batch    0/24   train_loss = 1.255
+Epoch  80 Batch   10/24   train_loss = 1.214
+Epoch  80 Batch   20/24   train_loss = 1.233
+Epoch  81 Batch    6/24   train_loss = 1.194
+Epoch  81 Batch   16/24   train_loss = 1.173
+Epoch  82 Batch    2/24   train_loss = 1.179
+Epoch  82 Batch   12/24   train_loss = 1.115
+Epoch  82 Batch   22/24   train_loss = 1.123
+Epoch  83 Batch    8/24   train_loss = 1.058
+Epoch  83 Batch   18/24   train_loss = 1.138
+Epoch  84 Batch    4/24   train_loss = 1.085
+Epoch  84 Batch   14/24   train_loss = 1.120
+Epoch  85 Batch    0/24   train_loss = 1.157
+Epoch  85 Batch   10/24   train_loss = 1.081
+Epoch  85 Batch   20/24   train_loss = 1.157
+Epoch  86 Batch    6/24   train_loss = 1.129
+Epoch  86 Batch   16/24   train_loss = 1.081
+Epoch  87 Batch    2/24   train_loss = 1.078
+Epoch  87 Batch   12/24   train_loss = 1.033
+Epoch  87 Batch   22/24   train_loss = 1.048
+Epoch  88 Batch    8/24   train_loss = 1.021
+Epoch  88 Batch   18/24   train_loss = 1.088
+Epoch  89 Batch    4/24   train_loss = 1.019
+Epoch  89 Batch   14/24   train_loss = 1.046
+Epoch  90 Batch    0/24   train_loss = 1.085
+Epoch  90 Batch   10/24   train_loss = 1.045
+Epoch  90 Batch   20/24   train_loss = 1.093
+Epoch  91 Batch    6/24   train_loss = 1.056
+Epoch  91 Batch   16/24   train_loss = 1.035
+Epoch  92 Batch    2/24   train_loss = 1.047
+Epoch  92 Batch   12/24   train_loss = 1.002
+Epoch  92 Batch   22/24   train_loss = 1.011
+Epoch  93 Batch    8/24   train_loss = 0.952
+Epoch  93 Batch   18/24   train_loss = 1.036
+Epoch  94 Batch    4/24   train_loss = 0.982
+Epoch  94 Batch   14/24   train_loss = 1.020
+Epoch  95 Batch    0/24   train_loss = 1.029
+Epoch  95 Batch   10/24   train_loss = 0.961
+Epoch  95 Batch   20/24   train_loss = 0.999
+Epoch  96 Batch    6/24   train_loss = 0.982
+Epoch  96 Batch   16/24   train_loss = 0.979
+Epoch  97 Batch    2/24   train_loss = 0.980
+Epoch  97 Batch   12/24   train_loss = 0.938
+Epoch  97 Batch   22/24   train_loss = 0.939
+Epoch  98 Batch    8/24   train_loss = 0.902
+Epoch  98 Batch   18/24   train_loss = 0.976
+Epoch  99 Batch    4/24   train_loss = 0.920
+Epoch  99 Batch   14/24   train_loss = 0.949
 Model Trained and Saved
 
@@ -13378,7 +13576,7 @@ Model Trained and Saved
-
In [198]:
+
In [111]:
"""
@@ -13404,7 +13602,7 @@ Model Trained and Saved
 
-
In [272]:
+
In [112]:
"""
@@ -13443,7 +13641,7 @@ Model Trained and Saved
 
-
In [273]:
+
In [113]:
def get_tensors(loaded_graph):
@@ -13499,7 +13697,7 @@ Model Trained and Saved
 
-
In [274]:
+
In [121]:
def pick_word(probabilities, int_to_vocab):
@@ -13510,9 +13708,11 @@ Model Trained and Saved
     :return: String of the predicted word
     """
     
-    word = int_to_vocab[np.argmax(probabilities)]
+    word_p = np.random.choice(probabilities,p=probabilities)
+    word = probabilities.tolist().index(word_p)
+    
     
-    return word
+    return int_to_vocab[word]
 
 
 """
@@ -13554,7 +13754,7 @@ Model Trained and Saved
 
-
In [275]:
+
In [122]:
gen_length = 200
@@ -13615,7 +13815,28 @@ Model Trained and Saved
 
-
moe_szyslak: sizes good-looking slap detective_homer_simpson: takin' cesss planning parrot smoke parrot sizes frustrated choked slap gesture elmo's jerry duff's butterball officials sizes themselves gesture whiny irrelevant paintings continuing huddle tony butterball worst jerry neighborhood slap slap slap detective_homer_simpson: meatpies crooks sail slap slap slap sizes worst mr slap worst gesture parrot calendars bathed schnapps butterball stuck jerry dash my-y-y-y-y-y slap slap slap detective_homer_simpson: rain gesture bashir's jerry longest slap slap slap detective_homer_simpson: realize gesture parrot neighborhood jerry dad's poet presided scrutinizes presided rope neighborhood booth detective_homer_simpson: enjoyed gesture electronic sam: jerry dash my-y-y-y-y-y butterball protestantism dash my-y-y-y-y-y friendly dash happiness agreement slap protestantism muttering muttering sugar-free parrot is: abandon fudd scrutinizes detective_homer_simpson: itself duff's butterball drinker slap muttering shaky slap cuff giant face knockin' tv-station_announcer: that's slap detective_homer_simpson: celebrate rubbed 2nd_voice_on_transmitter: further rubbed usual laramie bunch slap detective_homer_simpson: itself gesture child jerry premise poet sarcastic slap detective_homer_simpson: meatpies skydiving scrutinizes scream renee: scrutinizes detective_homer_simpson: itself lenses butterball tapered smokin' 2nd_voice_on_transmitter: slap detective_homer_simpson: detective_homer_simpson: detective_homer_simpson: aims always butterball oh-so-sophisticated wine dislike sizes bury gang butterball renee: rope laramie themselves beings slap detective_homer_simpson: rain indicates butterball stunned slap detective_homer_simpson: rain arts butterball ratted 2nd_voice_on_transmitter: pepsi oh-so-sophisticated planning booth rope presided rope abandon worst
+
moe_szyslak: okay, you can't sell it till it blows at the mr.
+moe_szyslak: what?
+homer_simpson: do you goin' homer?
+moe_szyslak: oh, why don't you had? he's just a day?
+homer_simpson: marge if it isn't little call? i'm gonna invite me out.
+barney_gumble:(to homer) all knows me? hey, but all day it's everyone anymore.
+moe_szyslak: aw, behind not one about us, like how about the last guy old.
+lenny_leonard: hey, what that can hide!
+seymour_skinner: i had to my time you say, big day...
+kirk_van_houten: oh, nuts.
+homer_simpson: when i'm not your best friend because i'm gonna plotz.
+homer_simpson: don't be lost in a grampa.
+homer_simpson: oh, right. it wasn't up from the" sex on the car.
+moe_szyslak: ah, he's down for a man. to be a friend.
+
+
+homer_simpson:(moans) we're sure is.
+
+
+
+
+homer_simpson:(to tv) hey, hibachi head.
 
diff --git a/dlnd_tv_script_generation.ipynb b/dlnd_tv_script_generation.ipynb index 9a36bd0..8840d5a 100644 --- a/dlnd_tv_script_generation.ipynb +++ b/dlnd_tv_script_generation.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, @@ -104,6 +104,390 @@ "print('\\n'.join(text.split('\\n')[view_sentence_range[0]:view_sentence_range[1]]))" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)\r\n", + "00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]\r\n", + "00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]\r\n", + "00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01)\r\n", + "00:02.0 VGA compatible controller: Cirrus Logic GD 5446\r\n", + "00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)\r\n", + "00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)\r\n" + ] + } + ], + "source": [ + "!lspci" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "#### Exploring Sentence Lengths \n", + "\n", + "Find sentence length average to use it as the RRN sequence length" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " Loading BokehJS ...\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "(function(global) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + "\n", + " if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", + " window._bokeh_onload_callbacks = [];\n", + " window._bokeh_is_loading = undefined;\n", + " }\n", + "\n", + "\n", + " \n", + " if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n", + " window._bokeh_timeout = Date.now() + 5000;\n", + " window._bokeh_failed_load = false;\n", + " }\n", + "\n", + " var NB_LOAD_WARNING = {'data': {'text/html':\n", + " \"
\\n\"+\n", + " \"

\\n\"+\n", + " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", + " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", + " \"

\\n\"+\n", + " \"
    \\n\"+\n", + " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", + " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", + " \"
\\n\"+\n", + " \"\\n\"+\n", + " \"from bokeh.resources import INLINE\\n\"+\n", + " \"output_notebook(resources=INLINE)\\n\"+\n", + " \"\\n\"+\n", + " \"
\"}};\n", + "\n", + " function display_loaded() {\n", + " if (window.Bokeh !== undefined) {\n", + " document.getElementById(\"a1d47867-3c6a-4b12-b791-9b6e6f68b735\").textContent = \"BokehJS successfully loaded.\";\n", + " } else if (Date.now() < window._bokeh_timeout) {\n", + " setTimeout(display_loaded, 100)\n", + " }\n", + " }\n", + "\n", + " function run_callbacks() {\n", + " window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", + " delete window._bokeh_onload_callbacks\n", + " console.info(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(js_urls, callback) {\n", + " window._bokeh_onload_callbacks.push(callback);\n", + " if (window._bokeh_is_loading > 0) {\n", + " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls == null || js_urls.length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " window._bokeh_is_loading = js_urls.length;\n", + " for (var i = 0; i < js_urls.length; i++) {\n", + " var url = js_urls[i];\n", + " var s = document.createElement('script');\n", + " s.src = url;\n", + " s.async = false;\n", + " s.onreadystatechange = s.onload = function() {\n", + " window._bokeh_is_loading--;\n", + " if (window._bokeh_is_loading === 0) {\n", + " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", + " run_callbacks()\n", + " }\n", + " };\n", + " s.onerror = function() {\n", + " console.warn(\"failed to load library \" + url);\n", + " };\n", + " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", + " }\n", + " };var element = document.getElementById(\"a1d47867-3c6a-4b12-b791-9b6e6f68b735\");\n", + " if (element == null) {\n", + " console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'a1d47867-3c6a-4b12-b791-9b6e6f68b735' but no matching script tag was found. \")\n", + " return false;\n", + " }\n", + "\n", + " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.js\"];\n", + "\n", + " var inline_js = [\n", + " function(Bokeh) {\n", + " Bokeh.set_log_level(\"info\");\n", + " },\n", + " \n", + " function(Bokeh) {\n", + " \n", + " document.getElementById(\"a1d47867-3c6a-4b12-b791-9b6e6f68b735\").textContent = \"BokehJS is loading...\";\n", + " },\n", + " function(Bokeh) {\n", + " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n", + " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n", + " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n", + " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n", + " }\n", + " ];\n", + "\n", + " function run_inline_js() {\n", + " \n", + " if ((window.Bokeh !== undefined) || (force === true)) {\n", + " for (var i = 0; i < inline_js.length; i++) {\n", + " inline_js[i](window.Bokeh);\n", + " }if (force === true) {\n", + " display_loaded();\n", + " }} else if (Date.now() < window._bokeh_timeout) {\n", + " setTimeout(run_inline_js, 100);\n", + " } else if (!window._bokeh_failed_load) {\n", + " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", + " window._bokeh_failed_load = true;\n", + " } else if (force !== true) {\n", + " var cell = $(document.getElementById(\"a1d47867-3c6a-4b12-b791-9b6e6f68b735\")).parents('.cell').data().cell;\n", + " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", + " }\n", + "\n", + " }\n", + "\n", + " if (window._bokeh_is_loading === 0) {\n", + " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", + " run_inline_js();\n", + " } else {\n", + " load_libs(js_urls, function() {\n", + " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", + " run_inline_js();\n", + " });\n", + " }\n", + "}(this));" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean of sentences length is 11.279889538661468\n" + ] + } + ], + "source": [ + "import nltk\n", + "from collections import Counter\n", + "from bokeh.charts import Histogram, output_notebook, show\n", + "\n", + "output_notebook()\n", + "\n", + "sentences = set(nltk.sent_tokenize(text[81:]))\n", + "sent_c = Counter()\n", + "\n", + "# Get average length\n", + "for s in sentences:\n", + " sent_c[s] = nltk.word_tokenize(s).__len__()\n", + " \n", + "s_lengths = np.array(list(sent_c.values()))\n", + "\n", + "data = dict(x=s_lengths)\n", + "\n", + "p = Histogram(data, xlabel='sentence lengths', bins=50)\n", + "show(p)\n", + "\n", + "\n", + "print('Mean of sentences length is {}'.format(s_lengths.mean()))\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": { @@ -126,7 +510,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, @@ -192,7 +576,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, @@ -246,7 +630,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, @@ -274,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, @@ -304,7 +688,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, @@ -348,7 +732,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 11, "metadata": { "collapsed": false, "deletable": true, @@ -401,7 +785,7 @@ }, { "cell_type": "code", - "execution_count": 225, + "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, @@ -458,7 +842,7 @@ }, { "cell_type": "code", - "execution_count": 227, + "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, @@ -517,7 +901,7 @@ }, { "cell_type": "code", - "execution_count": 207, + "execution_count": 14, "metadata": { "collapsed": false, "deletable": true, @@ -574,7 +958,7 @@ }, { "cell_type": "code", - "execution_count": 228, + "execution_count": 15, "metadata": { "collapsed": false, "deletable": true, @@ -632,7 +1016,7 @@ }, { "cell_type": "code", - "execution_count": 231, + "execution_count": 16, "metadata": { "collapsed": false, "deletable": true, @@ -763,17 +1147,44 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([4, 2, 1, 3])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = np.array([1,2,3,4])\n", + "np.random.shuffle(t)\n", + "t" + ] + }, + { + "cell_type": "code", + "execution_count": 123, "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "n_batches 7\n", + "\n", "Tests Passed\n" ] } @@ -788,9 +1199,13 @@ " :return: Batches as a Numpy array\n", " \"\"\"\n", " \n", - " slice_size = batch_size * seq_length\n", + " slice_size = int(batch_size * seq_length)\n", " n_batches = int(len(int_text)/slice_size)\n", " \n", + " assert n_batches > 0, 'Maybe your batch size is too big ?'\n", + " \n", + " print('n_batches {}\\n'.format(n_batches))\n", + "\n", " # input part\n", " _inputs = np.array(int_text[:n_batches*slice_size])\n", " \n", @@ -798,23 +1213,32 @@ " _targets = np.array(int_text[1:n_batches*slice_size + 1])\n", " \n", "\n", - " # Go through all inputs, targets and split them into batch_size*seq_len list of items\n", - " # [batch, batch, ...]\n", - " inputs, targets = np.split(_inputs, n_batches), np.split(_targets, n_batches)\n", + " # Group inputs, targets into n_batches x seq_len items \n", + " inputs, targets = np.reshape(_inputs, (-1, n_batches, seq_length)), np.reshape(_targets, (-1, n_batches, seq_length))\n", + " \n", + " \n", + " \n", + " # Look through the n_batches axes\n", + " #print(inputs[:,0,:])\n", " \n", - " # concat inputs and targets\n", - " batches = np.c_[inputs, targets]\n", - " #print(batches.shape)\n", + " # Swatch the 0 axis with n_batches axes, now 0 axis is n_batches axis\n", + " inputs, targets = np.swapaxes(inputs, 0,1), np.swapaxes(targets, 0,1)\n", + " \n", + " \n", + " # stack inputs and targets on columns\n", + " batches = np.column_stack((inputs, targets))\n", + "\n", " \n", " # Reshape into final batches output\n", " batches = batches.reshape((-1, 2, batch_size, seq_length))\n", "\n", - " #print(batches[0][1])\n", - "\n", " \n", " return batches\n", "\n", "\n", + "#Check first batch result\n", + "#print(get_batches(np.arange(1,200,1), 20, 3)[0])\n", + "\n", "\"\"\"\n", "DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n", "\"\"\"\n", @@ -842,24 +1266,25 @@ }, { "cell_type": "code", - "execution_count": 234, + "execution_count": 107, "metadata": { - "collapsed": true, + "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Number of Epochs\n", - "num_epochs = 1000\n", + "num_epochs = 100\n", "# Batch Size\n", - "batch_size = 128\n", + "batch_size = 256\n", "# RNN Size\n", - "rnn_size = 70\n", + "rnn_size = 128\n", "# Sequence Length\n", - "seq_length = 100\n", + "# Use the mean of sentences length as sequence length\n", + "seq_length = int(s_lengths.mean())\n", "# Learning Rate\n", - "learning_rate = 1e-3\n", + "learning_rate = 1e-2\n", "# Show stats for every n number of batches\n", "show_every_n_batches = 10\n", "\n", @@ -882,7 +1307,7 @@ }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 109, "metadata": { "collapsed": false, "deletable": true, @@ -931,7 +1356,7 @@ }, { "cell_type": "code", - "execution_count": 238, + "execution_count": 36, "metadata": { "collapsed": false, "deletable": true, @@ -958,7 +1383,7 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 110, "metadata": { "collapsed": false, "deletable": true, @@ -969,507 +1394,248 @@ "name": "stdout", "output_type": "stream", "text": [ - "5\n", - "Epoch 0 Batch 0/5 train_loss = 8.825\n", - "Epoch 2 Batch 0/5 train_loss = 6.441\n", - "Epoch 4 Batch 0/5 train_loss = 6.023\n", - "Epoch 6 Batch 0/5 train_loss = 5.927\n", - "Epoch 8 Batch 0/5 train_loss = 5.903\n", - "Epoch 10 Batch 0/5 train_loss = 5.883\n", - "Epoch 12 Batch 0/5 train_loss = 5.874\n", - "Epoch 14 Batch 0/5 train_loss = 5.858\n", - "Epoch 16 Batch 0/5 train_loss = 5.833\n", - "Epoch 18 Batch 0/5 train_loss = 5.794\n", - "Epoch 20 Batch 0/5 train_loss = 5.739\n", - "Epoch 22 Batch 0/5 train_loss = 5.682\n", - "Epoch 24 Batch 0/5 train_loss = 5.626\n", - "Epoch 26 Batch 0/5 train_loss = 5.572\n", - "Epoch 28 Batch 0/5 train_loss = 5.521\n", - "Epoch 30 Batch 0/5 train_loss = 5.471\n", - "Epoch 32 Batch 0/5 train_loss = 5.421\n", - "Epoch 34 Batch 0/5 train_loss = 5.365\n", - "Epoch 36 Batch 0/5 train_loss = 5.304\n", - "Epoch 38 Batch 0/5 train_loss = 5.244\n", - "Epoch 40 Batch 0/5 train_loss = 5.185\n", - "Epoch 42 Batch 0/5 train_loss = 5.124\n", - "Epoch 44 Batch 0/5 train_loss = 5.063\n", - "Epoch 46 Batch 0/5 train_loss = 5.003\n", - "Epoch 48 Batch 0/5 train_loss = 4.945\n", - "Epoch 50 Batch 0/5 train_loss = 4.891\n", - "Epoch 52 Batch 0/5 train_loss = 4.841\n", - "Epoch 54 Batch 0/5 train_loss = 4.794\n", - "Epoch 56 Batch 0/5 train_loss = 4.751\n", - "Epoch 58 Batch 0/5 train_loss = 4.710\n", - "Epoch 60 Batch 0/5 train_loss = 4.669\n", - "Epoch 62 Batch 0/5 train_loss = 4.638\n", - "Epoch 64 Batch 0/5 train_loss = 4.638\n", - "Epoch 66 Batch 0/5 train_loss = 4.589\n", - "Epoch 68 Batch 0/5 train_loss = 4.537\n", - "Epoch 70 Batch 0/5 train_loss = 4.501\n", - "Epoch 72 Batch 0/5 train_loss = 4.469\n", - "Epoch 74 Batch 0/5 train_loss = 4.436\n", - "Epoch 76 Batch 0/5 train_loss = 4.405\n", - "Epoch 78 Batch 0/5 train_loss = 4.375\n", - "Epoch 80 Batch 0/5 train_loss = 4.344\n", - "Epoch 82 Batch 0/5 train_loss = 4.363\n", - "Epoch 84 Batch 0/5 train_loss = 4.311\n", - "Epoch 86 Batch 0/5 train_loss = 4.274\n", - "Epoch 88 Batch 0/5 train_loss = 4.240\n", - "Epoch 90 Batch 0/5 train_loss = 4.211\n", - "Epoch 92 Batch 0/5 train_loss = 4.182\n", - "Epoch 94 Batch 0/5 train_loss = 4.155\n", - "Epoch 96 Batch 0/5 train_loss = 4.135\n", - "Epoch 98 Batch 0/5 train_loss = 4.107\n", - "Epoch 100 Batch 0/5 train_loss = 4.093\n", - "Epoch 102 Batch 0/5 train_loss = 4.053\n", - "Epoch 104 Batch 0/5 train_loss = 4.030\n", - "Epoch 106 Batch 0/5 train_loss = 4.002\n", - "Epoch 108 Batch 0/5 train_loss = 3.978\n", - "Epoch 110 Batch 0/5 train_loss = 3.951\n", - "Epoch 112 Batch 0/5 train_loss = 3.928\n", - "Epoch 114 Batch 0/5 train_loss = 3.902\n", - "Epoch 116 Batch 0/5 train_loss = 3.884\n", - "Epoch 118 Batch 0/5 train_loss = 3.862\n", - "Epoch 120 Batch 0/5 train_loss = 3.840\n", - "Epoch 122 Batch 0/5 train_loss = 3.814\n", - "Epoch 124 Batch 0/5 train_loss = 3.803\n", - "Epoch 126 Batch 0/5 train_loss = 3.775\n", - "Epoch 128 Batch 0/5 train_loss = 3.738\n", - "Epoch 130 Batch 0/5 train_loss = 3.714\n", - "Epoch 132 Batch 0/5 train_loss = 3.690\n", - "Epoch 134 Batch 0/5 train_loss = 3.665\n", - "Epoch 136 Batch 0/5 train_loss = 3.642\n", - "Epoch 138 Batch 0/5 train_loss = 3.619\n", - "Epoch 140 Batch 0/5 train_loss = 3.596\n", - "Epoch 142 Batch 0/5 train_loss = 3.577\n", - "Epoch 144 Batch 0/5 train_loss = 3.588\n", - "Epoch 146 Batch 0/5 train_loss = 3.561\n", - "Epoch 148 Batch 0/5 train_loss = 3.537\n", - "Epoch 150 Batch 0/5 train_loss = 3.494\n", - "Epoch 152 Batch 0/5 train_loss = 3.475\n", - "Epoch 154 Batch 0/5 train_loss = 3.444\n", - "Epoch 156 Batch 0/5 train_loss = 3.431\n", - "Epoch 158 Batch 0/5 train_loss = 3.403\n", - "Epoch 160 Batch 0/5 train_loss = 3.393\n", - "Epoch 162 Batch 0/5 train_loss = 3.371\n", - "Epoch 164 Batch 0/5 train_loss = 3.352\n", - "Epoch 166 Batch 0/5 train_loss = 3.323\n", - "Epoch 168 Batch 0/5 train_loss = 3.328\n", - "Epoch 170 Batch 0/5 train_loss = 3.281\n", - "Epoch 172 Batch 0/5 train_loss = 3.261\n", - "Epoch 174 Batch 0/5 train_loss = 3.238\n", - "Epoch 176 Batch 0/5 train_loss = 3.216\n", - "Epoch 178 Batch 0/5 train_loss = 3.197\n", - "Epoch 180 Batch 0/5 train_loss = 3.172\n", - "Epoch 182 Batch 0/5 train_loss = 3.169\n", - "Epoch 184 Batch 0/5 train_loss = 3.140\n", - "Epoch 186 Batch 0/5 train_loss = 3.136\n", - "Epoch 188 Batch 0/5 train_loss = 3.145\n", - "Epoch 190 Batch 0/5 train_loss = 3.106\n", - "Epoch 192 Batch 0/5 train_loss = 3.069\n", - "Epoch 194 Batch 0/5 train_loss = 3.038\n", - "Epoch 196 Batch 0/5 train_loss = 3.019\n", - "Epoch 198 Batch 0/5 train_loss = 2.995\n", - "Epoch 200 Batch 0/5 train_loss = 2.979\n", - "Epoch 202 Batch 0/5 train_loss = 2.960\n", - "Epoch 204 Batch 0/5 train_loss = 2.943\n", - "Epoch 206 Batch 0/5 train_loss = 2.963\n", - "Epoch 208 Batch 0/5 train_loss = 2.917\n", - "Epoch 210 Batch 0/5 train_loss = 2.898\n", - "Epoch 212 Batch 0/5 train_loss = 2.867\n", - "Epoch 214 Batch 0/5 train_loss = 2.863\n", - "Epoch 216 Batch 0/5 train_loss = 2.834\n", - "Epoch 218 Batch 0/5 train_loss = 2.809\n", - "Epoch 220 Batch 0/5 train_loss = 2.797\n", - "Epoch 222 Batch 0/5 train_loss = 2.774\n", - "Epoch 224 Batch 0/5 train_loss = 2.759\n", - "Epoch 226 Batch 0/5 train_loss = 2.732\n", - "Epoch 228 Batch 0/5 train_loss = 2.742\n", - "Epoch 230 Batch 0/5 train_loss = 2.704\n", - "Epoch 232 Batch 0/5 train_loss = 2.703\n", - "Epoch 234 Batch 0/5 train_loss = 2.663\n", - "Epoch 236 Batch 0/5 train_loss = 2.672\n", - "Epoch 238 Batch 0/5 train_loss = 2.638\n", - "Epoch 240 Batch 0/5 train_loss = 2.620\n", - "Epoch 242 Batch 0/5 train_loss = 2.595\n", - "Epoch 244 Batch 0/5 train_loss = 2.585\n", - "Epoch 246 Batch 0/5 train_loss = 2.563\n", - "Epoch 248 Batch 0/5 train_loss = 2.539\n", - "Epoch 250 Batch 0/5 train_loss = 2.534\n", - "Epoch 252 Batch 0/5 train_loss = 2.517\n", - "Epoch 254 Batch 0/5 train_loss = 2.497\n", - "Epoch 256 Batch 0/5 train_loss = 2.475\n", - "Epoch 258 Batch 0/5 train_loss = 2.463\n", - "Epoch 260 Batch 0/5 train_loss = 2.478\n", - "Epoch 262 Batch 0/5 train_loss = 2.450\n", - "Epoch 264 Batch 0/5 train_loss = 2.436\n", - "Epoch 266 Batch 0/5 train_loss = 2.417\n", - "Epoch 268 Batch 0/5 train_loss = 2.384\n", - "Epoch 270 Batch 0/5 train_loss = 2.363\n", - "Epoch 272 Batch 0/5 train_loss = 2.340\n", - "Epoch 274 Batch 0/5 train_loss = 2.323\n", - "Epoch 276 Batch 0/5 train_loss = 2.314\n", - "Epoch 278 Batch 0/5 train_loss = 2.302\n", - "Epoch 280 Batch 0/5 train_loss = 2.300\n", - "Epoch 282 Batch 0/5 train_loss = 2.300\n", - "Epoch 284 Batch 0/5 train_loss = 2.283\n", - "Epoch 286 Batch 0/5 train_loss = 2.246\n", - "Epoch 288 Batch 0/5 train_loss = 2.246\n", - "Epoch 290 Batch 0/5 train_loss = 2.210\n", - "Epoch 292 Batch 0/5 train_loss = 2.203\n", - "Epoch 294 Batch 0/5 train_loss = 2.185\n", - "Epoch 296 Batch 0/5 train_loss = 2.170\n", - "Epoch 298 Batch 0/5 train_loss = 2.150\n", - "Epoch 300 Batch 0/5 train_loss = 2.130\n", - "Epoch 302 Batch 0/5 train_loss = 2.132\n", - "Epoch 304 Batch 0/5 train_loss = 2.113\n", - "Epoch 306 Batch 0/5 train_loss = 2.083\n", - "Epoch 308 Batch 0/5 train_loss = 2.073\n", - "Epoch 310 Batch 0/5 train_loss = 2.060\n", - "Epoch 312 Batch 0/5 train_loss = 2.072\n", - "Epoch 314 Batch 0/5 train_loss = 2.081\n", - "Epoch 316 Batch 0/5 train_loss = 2.031\n", - "Epoch 318 Batch 0/5 train_loss = 2.007\n", - "Epoch 320 Batch 0/5 train_loss = 2.001\n", - "Epoch 322 Batch 0/5 train_loss = 1.987\n", - "Epoch 324 Batch 0/5 train_loss = 1.978\n", - "Epoch 326 Batch 0/5 train_loss = 1.963\n", - "Epoch 328 Batch 0/5 train_loss = 1.952\n", - "Epoch 330 Batch 0/5 train_loss = 1.932\n", - "Epoch 332 Batch 0/5 train_loss = 1.918\n", - "Epoch 334 Batch 0/5 train_loss = 1.898\n", - "Epoch 336 Batch 0/5 train_loss = 1.885\n", - "Epoch 338 Batch 0/5 train_loss = 1.872\n", - "Epoch 340 Batch 0/5 train_loss = 1.864\n", - "Epoch 342 Batch 0/5 train_loss = 1.867\n", - "Epoch 344 Batch 0/5 train_loss = 1.848\n", - "Epoch 346 Batch 0/5 train_loss = 1.821\n", - "Epoch 348 Batch 0/5 train_loss = 1.814\n", - "Epoch 350 Batch 0/5 train_loss = 1.788\n", - "Epoch 352 Batch 0/5 train_loss = 1.806\n", - "Epoch 354 Batch 0/5 train_loss = 1.790\n", - "Epoch 356 Batch 0/5 train_loss = 1.761\n", - "Epoch 358 Batch 0/5 train_loss = 1.745\n", - "Epoch 360 Batch 0/5 train_loss = 1.735\n", - "Epoch 362 Batch 0/5 train_loss = 1.718\n", - "Epoch 364 Batch 0/5 train_loss = 1.747\n", - "Epoch 366 Batch 0/5 train_loss = 1.726\n", - "Epoch 368 Batch 0/5 train_loss = 1.753\n", - "Epoch 370 Batch 0/5 train_loss = 1.703\n", - "Epoch 372 Batch 0/5 train_loss = 1.662\n", - "Epoch 374 Batch 0/5 train_loss = 1.643\n", - "Epoch 376 Batch 0/5 train_loss = 1.624\n", - "Epoch 378 Batch 0/5 train_loss = 1.617\n", - "Epoch 380 Batch 0/5 train_loss = 1.598\n", - "Epoch 382 Batch 0/5 train_loss = 1.613\n", - "Epoch 384 Batch 0/5 train_loss = 1.601\n", - "Epoch 386 Batch 0/5 train_loss = 1.584\n", - "Epoch 388 Batch 0/5 train_loss = 1.569\n", - "Epoch 390 Batch 0/5 train_loss = 1.557\n", - "Epoch 392 Batch 0/5 train_loss = 1.534\n", - "Epoch 394 Batch 0/5 train_loss = 1.534\n", - "Epoch 396 Batch 0/5 train_loss = 1.520\n", - "Epoch 398 Batch 0/5 train_loss = 1.547\n", - "Epoch 400 Batch 0/5 train_loss = 1.545\n", - "Epoch 402 Batch 0/5 train_loss = 1.521\n", - "Epoch 404 Batch 0/5 train_loss = 1.486\n", - "Epoch 406 Batch 0/5 train_loss = 1.469\n", - "Epoch 408 Batch 0/5 train_loss = 1.458\n", - "Epoch 410 Batch 0/5 train_loss = 1.442\n", - "Epoch 412 Batch 0/5 train_loss = 1.431\n", - "Epoch 414 Batch 0/5 train_loss = 1.410\n", - "Epoch 416 Batch 0/5 train_loss = 1.411\n", - "Epoch 418 Batch 0/5 train_loss = 1.412\n", - "Epoch 420 Batch 0/5 train_loss = 1.398\n", - "Epoch 422 Batch 0/5 train_loss = 1.417\n", - "Epoch 424 Batch 0/5 train_loss = 1.381\n", - "Epoch 426 Batch 0/5 train_loss = 1.355\n", - "Epoch 428 Batch 0/5 train_loss = 1.354\n", - "Epoch 430 Batch 0/5 train_loss = 1.338\n", - "Epoch 432 Batch 0/5 train_loss = 1.321\n", - "Epoch 434 Batch 0/5 train_loss = 1.326\n", - "Epoch 436 Batch 0/5 train_loss = 1.324\n", - "Epoch 438 Batch 0/5 train_loss = 1.314\n", - "Epoch 440 Batch 0/5 train_loss = 1.292\n", - "Epoch 442 Batch 0/5 train_loss = 1.279\n", - "Epoch 444 Batch 0/5 train_loss = 1.259\n", - "Epoch 446 Batch 0/5 train_loss = 1.283\n", - "Epoch 448 Batch 0/5 train_loss = 1.274\n", - "Epoch 450 Batch 0/5 train_loss = 1.251\n", - "Epoch 452 Batch 0/5 train_loss = 1.279\n", - "Epoch 454 Batch 0/5 train_loss = 1.249\n", - "Epoch 456 Batch 0/5 train_loss = 1.214\n", - "Epoch 458 Batch 0/5 train_loss = 1.196\n", - "Epoch 460 Batch 0/5 train_loss = 1.185\n", - "Epoch 462 Batch 0/5 train_loss = 1.174\n", - "Epoch 464 Batch 0/5 train_loss = 1.158\n", - "Epoch 466 Batch 0/5 train_loss = 1.195\n", - "Epoch 468 Batch 0/5 train_loss = 1.158\n", - "Epoch 470 Batch 0/5 train_loss = 1.145\n", - "Epoch 472 Batch 0/5 train_loss = 1.160\n", - "Epoch 474 Batch 0/5 train_loss = 1.123\n", - "Epoch 476 Batch 0/5 train_loss = 1.118\n", - "Epoch 478 Batch 0/5 train_loss = 1.103\n", - "Epoch 480 Batch 0/5 train_loss = 1.088\n", - "Epoch 482 Batch 0/5 train_loss = 1.089\n", - "Epoch 484 Batch 0/5 train_loss = 1.094\n", - "Epoch 486 Batch 0/5 train_loss = 1.092\n", - "Epoch 488 Batch 0/5 train_loss = 1.106\n", - "Epoch 490 Batch 0/5 train_loss = 1.053\n", - "Epoch 492 Batch 0/5 train_loss = 1.052\n", - "Epoch 494 Batch 0/5 train_loss = 1.046\n", - "Epoch 496 Batch 0/5 train_loss = 1.030\n", - "Epoch 498 Batch 0/5 train_loss = 1.021\n", - "Epoch 500 Batch 0/5 train_loss = 1.020\n", - "Epoch 502 Batch 0/5 train_loss = 1.046\n", - "Epoch 504 Batch 0/5 train_loss = 1.040\n", - "Epoch 506 Batch 0/5 train_loss = 1.026\n", - "Epoch 508 Batch 0/5 train_loss = 0.982\n", - "Epoch 510 Batch 0/5 train_loss = 0.969\n", - "Epoch 512 Batch 0/5 train_loss = 0.962\n", - "Epoch 514 Batch 0/5 train_loss = 0.946\n", - "Epoch 516 Batch 0/5 train_loss = 0.941\n", - "Epoch 518 Batch 0/5 train_loss = 0.951\n", - "Epoch 520 Batch 0/5 train_loss = 0.945\n", - "Epoch 522 Batch 0/5 train_loss = 0.952\n", - "Epoch 524 Batch 0/5 train_loss = 0.931\n", - "Epoch 526 Batch 0/5 train_loss = 0.905\n", - "Epoch 528 Batch 0/5 train_loss = 0.893\n", - "Epoch 530 Batch 0/5 train_loss = 0.881\n", - "Epoch 532 Batch 0/5 train_loss = 0.882\n", - "Epoch 534 Batch 0/5 train_loss = 0.871\n", - "Epoch 536 Batch 0/5 train_loss = 0.904\n", - "Epoch 538 Batch 0/5 train_loss = 0.893\n", - "Epoch 540 Batch 0/5 train_loss = 0.884\n", - "Epoch 542 Batch 0/5 train_loss = 0.864\n", - "Epoch 544 Batch 0/5 train_loss = 0.854\n", - "Epoch 546 Batch 0/5 train_loss = 0.854\n", - "Epoch 548 Batch 0/5 train_loss = 0.836\n", - "Epoch 550 Batch 0/5 train_loss = 0.816\n", - "Epoch 552 Batch 0/5 train_loss = 0.829\n", - "Epoch 554 Batch 0/5 train_loss = 0.813\n", - "Epoch 556 Batch 0/5 train_loss = 0.798\n", - "Epoch 558 Batch 0/5 train_loss = 0.808\n", - "Epoch 560 Batch 0/5 train_loss = 0.789\n", - "Epoch 562 Batch 0/5 train_loss = 0.791\n", - "Epoch 564 Batch 0/5 train_loss = 0.779\n", - "Epoch 566 Batch 0/5 train_loss = 0.765\n", - "Epoch 568 Batch 0/5 train_loss = 0.746\n", - "Epoch 570 Batch 0/5 train_loss = 0.746\n", - "Epoch 572 Batch 0/5 train_loss = 0.733\n", - "Epoch 574 Batch 0/5 train_loss = 0.733\n", - "Epoch 576 Batch 0/5 train_loss = 0.752\n", - "Epoch 578 Batch 0/5 train_loss = 0.727\n", - "Epoch 580 Batch 0/5 train_loss = 0.712\n", - "Epoch 582 Batch 0/5 train_loss = 0.711\n", - "Epoch 584 Batch 0/5 train_loss = 0.708\n", - "Epoch 586 Batch 0/5 train_loss = 0.695\n", - "Epoch 588 Batch 0/5 train_loss = 0.699\n", - "Epoch 590 Batch 0/5 train_loss = 0.688\n", - "Epoch 592 Batch 0/5 train_loss = 0.682\n", - "Epoch 594 Batch 0/5 train_loss = 0.703\n", - "Epoch 596 Batch 0/5 train_loss = 0.681\n", - "Epoch 598 Batch 0/5 train_loss = 0.672\n", - "Epoch 600 Batch 0/5 train_loss = 0.678\n", - "Epoch 602 Batch 0/5 train_loss = 0.657\n", - "Epoch 604 Batch 0/5 train_loss = 0.652\n", - "Epoch 606 Batch 0/5 train_loss = 0.627\n", - "Epoch 608 Batch 0/5 train_loss = 0.623\n", - "Epoch 610 Batch 0/5 train_loss = 0.633\n", - "Epoch 612 Batch 0/5 train_loss = 0.608\n", - "Epoch 614 Batch 0/5 train_loss = 0.614\n", - "Epoch 616 Batch 0/5 train_loss = 0.620\n", - "Epoch 618 Batch 0/5 train_loss = 0.610\n", - "Epoch 620 Batch 0/5 train_loss = 0.596\n", - "Epoch 622 Batch 0/5 train_loss = 0.596\n", - "Epoch 624 Batch 0/5 train_loss = 0.605\n", - "Epoch 626 Batch 0/5 train_loss = 0.574\n", - "Epoch 628 Batch 0/5 train_loss = 0.581\n", - "Epoch 630 Batch 0/5 train_loss = 0.571\n", - "Epoch 632 Batch 0/5 train_loss = 0.563\n", - "Epoch 634 Batch 0/5 train_loss = 0.582\n", - "Epoch 636 Batch 0/5 train_loss = 0.579\n", - "Epoch 638 Batch 0/5 train_loss = 0.562\n", - "Epoch 640 Batch 0/5 train_loss = 0.549\n", - "Epoch 642 Batch 0/5 train_loss = 0.540\n", - "Epoch 644 Batch 0/5 train_loss = 0.520\n", - "Epoch 646 Batch 0/5 train_loss = 0.515\n", - "Epoch 648 Batch 0/5 train_loss = 0.509\n", - "Epoch 650 Batch 0/5 train_loss = 0.509\n", - "Epoch 652 Batch 0/5 train_loss = 0.527\n", - "Epoch 654 Batch 0/5 train_loss = 0.524\n", - "Epoch 656 Batch 0/5 train_loss = 0.509\n", - "Epoch 658 Batch 0/5 train_loss = 0.523\n", - "Epoch 660 Batch 0/5 train_loss = 0.502\n", - "Epoch 662 Batch 0/5 train_loss = 0.477\n", - "Epoch 664 Batch 0/5 train_loss = 0.473\n", - "Epoch 666 Batch 0/5 train_loss = 0.463\n", - "Epoch 668 Batch 0/5 train_loss = 0.457\n", - "Epoch 670 Batch 0/5 train_loss = 0.455\n", - "Epoch 672 Batch 0/5 train_loss = 0.459\n", - "Epoch 674 Batch 0/5 train_loss = 0.475\n", - "Epoch 676 Batch 0/5 train_loss = 0.471\n", - "Epoch 678 Batch 0/5 train_loss = 0.455\n", - "Epoch 680 Batch 0/5 train_loss = 0.443\n", - "Epoch 682 Batch 0/5 train_loss = 0.456\n", - "Epoch 684 Batch 0/5 train_loss = 0.440\n", - "Epoch 686 Batch 0/5 train_loss = 0.421\n", - "Epoch 688 Batch 0/5 train_loss = 0.413\n", - "Epoch 690 Batch 0/5 train_loss = 0.405\n", - "Epoch 692 Batch 0/5 train_loss = 0.401\n", - "Epoch 694 Batch 0/5 train_loss = 0.404\n", - "Epoch 696 Batch 0/5 train_loss = 0.400\n", - "Epoch 698 Batch 0/5 train_loss = 0.428\n", - "Epoch 700 Batch 0/5 train_loss = 0.451\n", - "Epoch 702 Batch 0/5 train_loss = 0.426\n", - "Epoch 704 Batch 0/5 train_loss = 0.410\n", - "Epoch 706 Batch 0/5 train_loss = 0.422\n", - "Epoch 708 Batch 0/5 train_loss = 0.398\n", - "Epoch 710 Batch 0/5 train_loss = 0.377\n", - "Epoch 712 Batch 0/5 train_loss = 0.368\n", - "Epoch 714 Batch 0/5 train_loss = 0.358\n", - "Epoch 716 Batch 0/5 train_loss = 0.352\n", - "Epoch 718 Batch 0/5 train_loss = 0.349\n", - "Epoch 720 Batch 0/5 train_loss = 0.344\n", - "Epoch 722 Batch 0/5 train_loss = 0.346\n", - "Epoch 724 Batch 0/5 train_loss = 0.345\n", - "Epoch 726 Batch 0/5 train_loss = 0.337\n", - "Epoch 728 Batch 0/5 train_loss = 0.345\n", - "Epoch 730 Batch 0/5 train_loss = 0.348\n", - "Epoch 732 Batch 0/5 train_loss = 0.358\n", - "Epoch 734 Batch 0/5 train_loss = 0.346\n", - "Epoch 736 Batch 0/5 train_loss = 0.337\n", - "Epoch 738 Batch 0/5 train_loss = 0.329\n", - "Epoch 740 Batch 0/5 train_loss = 0.320\n", - "Epoch 742 Batch 0/5 train_loss = 0.323\n", - "Epoch 744 Batch 0/5 train_loss = 0.316\n", - "Epoch 746 Batch 0/5 train_loss = 0.304\n", - "Epoch 748 Batch 0/5 train_loss = 0.299\n", - "Epoch 750 Batch 0/5 train_loss = 0.292\n", - "Epoch 752 Batch 0/5 train_loss = 0.288\n", - "Epoch 754 Batch 0/5 train_loss = 0.289\n", - "Epoch 756 Batch 0/5 train_loss = 0.284\n", - "Epoch 758 Batch 0/5 train_loss = 0.290\n", - "Epoch 760 Batch 0/5 train_loss = 0.304\n", - "Epoch 762 Batch 0/5 train_loss = 0.311\n", - "Epoch 764 Batch 0/5 train_loss = 0.405\n", - "Epoch 766 Batch 0/5 train_loss = 0.390\n", - "Epoch 768 Batch 0/5 train_loss = 0.344\n", - "Epoch 770 Batch 0/5 train_loss = 0.320\n", - "Epoch 772 Batch 0/5 train_loss = 0.280\n", - "Epoch 774 Batch 0/5 train_loss = 0.265\n", - "Epoch 776 Batch 0/5 train_loss = 0.258\n", - "Epoch 778 Batch 0/5 train_loss = 0.252\n", - "Epoch 780 Batch 0/5 train_loss = 0.247\n", - "Epoch 782 Batch 0/5 train_loss = 0.243\n", - "Epoch 784 Batch 0/5 train_loss = 0.240\n", - "Epoch 786 Batch 0/5 train_loss = 0.237\n", - "Epoch 788 Batch 0/5 train_loss = 0.233\n", - "Epoch 790 Batch 0/5 train_loss = 0.231\n", - "Epoch 792 Batch 0/5 train_loss = 0.229\n", - "Epoch 794 Batch 0/5 train_loss = 0.225\n", - "Epoch 796 Batch 0/5 train_loss = 0.230\n", - "Epoch 798 Batch 0/5 train_loss = 0.226\n", - "Epoch 800 Batch 0/5 train_loss = 0.222\n", - "Epoch 802 Batch 0/5 train_loss = 0.237\n", - "Epoch 804 Batch 0/5 train_loss = 0.225\n", - "Epoch 806 Batch 0/5 train_loss = 0.225\n", - "Epoch 808 Batch 0/5 train_loss = 0.245\n", - "Epoch 810 Batch 0/5 train_loss = 0.227\n", - "Epoch 812 Batch 0/5 train_loss = 0.210\n", - "Epoch 814 Batch 0/5 train_loss = 0.206\n", - "Epoch 816 Batch 0/5 train_loss = 0.202\n", - "Epoch 818 Batch 0/5 train_loss = 0.198\n", - "Epoch 820 Batch 0/5 train_loss = 0.195\n", - "Epoch 822 Batch 0/5 train_loss = 0.192\n", - "Epoch 824 Batch 0/5 train_loss = 0.189\n", - "Epoch 826 Batch 0/5 train_loss = 0.189\n", - "Epoch 828 Batch 0/5 train_loss = 0.187\n", - "Epoch 830 Batch 0/5 train_loss = 0.186\n", - "Epoch 832 Batch 0/5 train_loss = 0.187\n", - "Epoch 834 Batch 0/5 train_loss = 0.189\n", - "Epoch 836 Batch 0/5 train_loss = 0.189\n", - "Epoch 838 Batch 0/5 train_loss = 0.197\n", - "Epoch 840 Batch 0/5 train_loss = 0.207\n", - "Epoch 842 Batch 0/5 train_loss = 0.196\n", - "Epoch 844 Batch 0/5 train_loss = 0.187\n", - "Epoch 846 Batch 0/5 train_loss = 0.197\n", - "Epoch 848 Batch 0/5 train_loss = 0.189\n", - "Epoch 850 Batch 0/5 train_loss = 0.176\n", - "Epoch 852 Batch 0/5 train_loss = 0.171\n", - "Epoch 854 Batch 0/5 train_loss = 0.164\n", - "Epoch 856 Batch 0/5 train_loss = 0.161\n", - "Epoch 858 Batch 0/5 train_loss = 0.157\n", - "Epoch 860 Batch 0/5 train_loss = 0.154\n", - "Epoch 862 Batch 0/5 train_loss = 0.152\n", - "Epoch 864 Batch 0/5 train_loss = 0.150\n", - "Epoch 866 Batch 0/5 train_loss = 0.148\n", - "Epoch 868 Batch 0/5 train_loss = 0.146\n", - "Epoch 870 Batch 0/5 train_loss = 0.145\n", - "Epoch 872 Batch 0/5 train_loss = 0.145\n", - "Epoch 874 Batch 0/5 train_loss = 0.142\n", - "Epoch 876 Batch 0/5 train_loss = 0.143\n", - "Epoch 878 Batch 0/5 train_loss = 0.159\n", - "Epoch 880 Batch 0/5 train_loss = 0.145\n", - "Epoch 882 Batch 0/5 train_loss = 0.161\n", - "Epoch 884 Batch 0/5 train_loss = 0.211\n", - "Epoch 886 Batch 0/5 train_loss = 0.196\n", - "Epoch 888 Batch 0/5 train_loss = 0.335\n", - "Epoch 890 Batch 0/5 train_loss = 0.325\n", - "Epoch 892 Batch 0/5 train_loss = 0.279\n", - "Epoch 894 Batch 0/5 train_loss = 0.244\n", - "Epoch 896 Batch 0/5 train_loss = 0.214\n", - "Epoch 898 Batch 0/5 train_loss = 0.174\n", - "Epoch 900 Batch 0/5 train_loss = 0.147\n", - "Epoch 902 Batch 0/5 train_loss = 0.138\n", - "Epoch 904 Batch 0/5 train_loss = 0.131\n", - "Epoch 906 Batch 0/5 train_loss = 0.128\n", - "Epoch 908 Batch 0/5 train_loss = 0.125\n", - "Epoch 910 Batch 0/5 train_loss = 0.123\n", - "Epoch 912 Batch 0/5 train_loss = 0.121\n", - "Epoch 914 Batch 0/5 train_loss = 0.119\n", - "Epoch 916 Batch 0/5 train_loss = 0.117\n", - "Epoch 918 Batch 0/5 train_loss = 0.116\n", - "Epoch 920 Batch 0/5 train_loss = 0.114\n", - "Epoch 922 Batch 0/5 train_loss = 0.113\n", - "Epoch 924 Batch 0/5 train_loss = 0.112\n", - "Epoch 926 Batch 0/5 train_loss = 0.111\n", - "Epoch 928 Batch 0/5 train_loss = 0.109\n", - "Epoch 930 Batch 0/5 train_loss = 0.108\n", - "Epoch 932 Batch 0/5 train_loss = 0.107\n", - "Epoch 934 Batch 0/5 train_loss = 0.106\n", - "Epoch 936 Batch 0/5 train_loss = 0.105\n", - "Epoch 938 Batch 0/5 train_loss = 0.103\n", - "Epoch 940 Batch 0/5 train_loss = 0.102\n", - "Epoch 942 Batch 0/5 train_loss = 0.101\n", - "Epoch 944 Batch 0/5 train_loss = 0.100\n", - "Epoch 946 Batch 0/5 train_loss = 0.099\n", - "Epoch 948 Batch 0/5 train_loss = 0.098\n", - "Epoch 950 Batch 0/5 train_loss = 0.097\n", - "Epoch 952 Batch 0/5 train_loss = 0.096\n", - "Epoch 954 Batch 0/5 train_loss = 0.095\n", - "Epoch 956 Batch 0/5 train_loss = 0.094\n", - "Epoch 958 Batch 0/5 train_loss = 0.094\n", - "Epoch 960 Batch 0/5 train_loss = 0.093\n", - "Epoch 962 Batch 0/5 train_loss = 0.092\n", - "Epoch 964 Batch 0/5 train_loss = 0.091\n", - "Epoch 966 Batch 0/5 train_loss = 0.090\n", - "Epoch 968 Batch 0/5 train_loss = 0.089\n", - "Epoch 970 Batch 0/5 train_loss = 0.088\n", - "Epoch 972 Batch 0/5 train_loss = 0.088\n", - "Epoch 974 Batch 0/5 train_loss = 0.087\n", - "Epoch 976 Batch 0/5 train_loss = 0.086\n", - "Epoch 978 Batch 0/5 train_loss = 0.085\n", - "Epoch 980 Batch 0/5 train_loss = 0.084\n", - "Epoch 982 Batch 0/5 train_loss = 0.083\n", - "Epoch 984 Batch 0/5 train_loss = 0.083\n", - "Epoch 986 Batch 0/5 train_loss = 0.082\n", - "Epoch 988 Batch 0/5 train_loss = 0.081\n", - "Epoch 990 Batch 0/5 train_loss = 0.080\n", - "Epoch 992 Batch 0/5 train_loss = 0.080\n", - "Epoch 994 Batch 0/5 train_loss = 0.079\n", - "Epoch 996 Batch 0/5 train_loss = 0.078\n", - "Epoch 998 Batch 0/5 train_loss = 0.078\n", + "n_batches 24\n", + "\n", + "Epoch 0 Batch 0/24 train_loss = 8.821\n", + "Epoch 0 Batch 10/24 train_loss = 6.639\n", + "Epoch 0 Batch 20/24 train_loss = 6.516\n", + "Epoch 1 Batch 6/24 train_loss = 6.023\n", + "Epoch 1 Batch 16/24 train_loss = 6.070\n", + "Epoch 2 Batch 2/24 train_loss = 5.976\n", + "Epoch 2 Batch 12/24 train_loss = 6.045\n", + "Epoch 2 Batch 22/24 train_loss = 5.987\n", + "Epoch 3 Batch 8/24 train_loss = 5.959\n", + "Epoch 3 Batch 18/24 train_loss = 5.839\n", + "Epoch 4 Batch 4/24 train_loss = 5.702\n", + "Epoch 4 Batch 14/24 train_loss = 5.684\n", + "Epoch 5 Batch 0/24 train_loss = 5.578\n", + "Epoch 5 Batch 10/24 train_loss = 5.687\n", + "Epoch 5 Batch 20/24 train_loss = 5.597\n", + "Epoch 6 Batch 6/24 train_loss = 5.504\n", + "Epoch 6 Batch 16/24 train_loss = 5.442\n", + "Epoch 7 Batch 2/24 train_loss = 5.276\n", + "Epoch 7 Batch 12/24 train_loss = 5.422\n", + "Epoch 7 Batch 22/24 train_loss = 5.317\n", + "Epoch 8 Batch 8/24 train_loss = 5.296\n", + "Epoch 8 Batch 18/24 train_loss = 5.165\n", + "Epoch 9 Batch 4/24 train_loss = 5.019\n", + "Epoch 9 Batch 14/24 train_loss = 4.972\n", + "Epoch 10 Batch 0/24 train_loss = 4.883\n", + "Epoch 10 Batch 10/24 train_loss = 4.991\n", + "Epoch 10 Batch 20/24 train_loss = 4.891\n", + "Epoch 11 Batch 6/24 train_loss = 4.799\n", + "Epoch 11 Batch 16/24 train_loss = 4.764\n", + "Epoch 12 Batch 2/24 train_loss = 4.581\n", + "Epoch 12 Batch 12/24 train_loss = 4.673\n", + "Epoch 12 Batch 22/24 train_loss = 4.586\n", + "Epoch 13 Batch 8/24 train_loss = 4.603\n", + "Epoch 13 Batch 18/24 train_loss = 4.454\n", + "Epoch 14 Batch 4/24 train_loss = 4.280\n", + "Epoch 14 Batch 14/24 train_loss = 4.301\n", + "Epoch 15 Batch 0/24 train_loss = 4.275\n", + "Epoch 15 Batch 10/24 train_loss = 4.371\n", + "Epoch 15 Batch 20/24 train_loss = 4.248\n", + "Epoch 16 Batch 6/24 train_loss = 4.220\n", + "Epoch 16 Batch 16/24 train_loss = 4.169\n", + "Epoch 17 Batch 2/24 train_loss = 3.998\n", + "Epoch 17 Batch 12/24 train_loss = 4.083\n", + "Epoch 17 Batch 22/24 train_loss = 3.965\n", + "Epoch 18 Batch 8/24 train_loss = 3.985\n", + "Epoch 18 Batch 18/24 train_loss = 3.911\n", + "Epoch 19 Batch 4/24 train_loss = 3.733\n", + "Epoch 19 Batch 14/24 train_loss = 3.779\n", + "Epoch 20 Batch 0/24 train_loss = 3.714\n", + "Epoch 20 Batch 10/24 train_loss = 3.793\n", + "Epoch 20 Batch 20/24 train_loss = 3.735\n", + "Epoch 21 Batch 6/24 train_loss = 3.713\n", + "Epoch 21 Batch 16/24 train_loss = 3.677\n", + "Epoch 22 Batch 2/24 train_loss = 3.518\n", + "Epoch 22 Batch 12/24 train_loss = 3.561\n", + "Epoch 22 Batch 22/24 train_loss = 3.501\n", + "Epoch 23 Batch 8/24 train_loss = 3.499\n", + "Epoch 23 Batch 18/24 train_loss = 3.451\n", + "Epoch 24 Batch 4/24 train_loss = 3.291\n", + "Epoch 24 Batch 14/24 train_loss = 3.295\n", + "Epoch 25 Batch 0/24 train_loss = 3.271\n", + "Epoch 25 Batch 10/24 train_loss = 3.331\n", + "Epoch 25 Batch 20/24 train_loss = 3.256\n", + "Epoch 26 Batch 6/24 train_loss = 3.238\n", + "Epoch 26 Batch 16/24 train_loss = 3.167\n", + "Epoch 27 Batch 2/24 train_loss = 3.038\n", + "Epoch 27 Batch 12/24 train_loss = 3.106\n", + "Epoch 27 Batch 22/24 train_loss = 2.985\n", + "Epoch 28 Batch 8/24 train_loss = 3.011\n", + "Epoch 28 Batch 18/24 train_loss = 2.991\n", + "Epoch 29 Batch 4/24 train_loss = 2.907\n", + "Epoch 29 Batch 14/24 train_loss = 2.891\n", + "Epoch 30 Batch 0/24 train_loss = 2.911\n", + "Epoch 30 Batch 10/24 train_loss = 2.948\n", + "Epoch 30 Batch 20/24 train_loss = 2.903\n", + "Epoch 31 Batch 6/24 train_loss = 2.885\n", + "Epoch 31 Batch 16/24 train_loss = 2.808\n", + "Epoch 32 Batch 2/24 train_loss = 2.670\n", + "Epoch 32 Batch 12/24 train_loss = 2.701\n", + "Epoch 32 Batch 22/24 train_loss = 2.591\n", + "Epoch 33 Batch 8/24 train_loss = 2.579\n", + "Epoch 33 Batch 18/24 train_loss = 2.603\n", + "Epoch 34 Batch 4/24 train_loss = 2.498\n", + "Epoch 34 Batch 14/24 train_loss = 2.504\n", + "Epoch 35 Batch 0/24 train_loss = 2.482\n", + "Epoch 35 Batch 10/24 train_loss = 2.530\n", + "Epoch 35 Batch 20/24 train_loss = 2.489\n", + "Epoch 36 Batch 6/24 train_loss = 2.486\n", + "Epoch 36 Batch 16/24 train_loss = 2.417\n", + "Epoch 37 Batch 2/24 train_loss = 2.320\n", + "Epoch 37 Batch 12/24 train_loss = 2.348\n", + "Epoch 37 Batch 22/24 train_loss = 2.287\n", + "Epoch 38 Batch 8/24 train_loss = 2.245\n", + "Epoch 38 Batch 18/24 train_loss = 2.322\n", + "Epoch 39 Batch 4/24 train_loss = 2.230\n", + "Epoch 39 Batch 14/24 train_loss = 2.234\n", + "Epoch 40 Batch 0/24 train_loss = 2.223\n", + "Epoch 40 Batch 10/24 train_loss = 2.263\n", + "Epoch 40 Batch 20/24 train_loss = 2.267\n", + "Epoch 41 Batch 6/24 train_loss = 2.251\n", + "Epoch 41 Batch 16/24 train_loss = 2.179\n", + "Epoch 42 Batch 2/24 train_loss = 2.121\n", + "Epoch 42 Batch 12/24 train_loss = 2.155\n", + "Epoch 42 Batch 22/24 train_loss = 2.100\n", + "Epoch 43 Batch 8/24 train_loss = 2.031\n", + "Epoch 43 Batch 18/24 train_loss = 2.134\n", + "Epoch 44 Batch 4/24 train_loss = 2.016\n", + "Epoch 44 Batch 14/24 train_loss = 2.027\n", + "Epoch 45 Batch 0/24 train_loss = 2.049\n", + "Epoch 45 Batch 10/24 train_loss = 2.042\n", + "Epoch 45 Batch 20/24 train_loss = 2.060\n", + "Epoch 46 Batch 6/24 train_loss = 2.031\n", + "Epoch 46 Batch 16/24 train_loss = 1.943\n", + "Epoch 47 Batch 2/24 train_loss = 1.888\n", + "Epoch 47 Batch 12/24 train_loss = 1.901\n", + "Epoch 47 Batch 22/24 train_loss = 1.881\n", + "Epoch 48 Batch 8/24 train_loss = 1.794\n", + "Epoch 48 Batch 18/24 train_loss = 1.910\n", + "Epoch 49 Batch 4/24 train_loss = 1.802\n", + "Epoch 49 Batch 14/24 train_loss = 1.839\n", + "Epoch 50 Batch 0/24 train_loss = 1.860\n", + "Epoch 50 Batch 10/24 train_loss = 1.836\n", + "Epoch 50 Batch 20/24 train_loss = 1.834\n", + "Epoch 51 Batch 6/24 train_loss = 1.841\n", + "Epoch 51 Batch 16/24 train_loss = 1.803\n", + "Epoch 52 Batch 2/24 train_loss = 1.735\n", + "Epoch 52 Batch 12/24 train_loss = 1.723\n", + "Epoch 52 Batch 22/24 train_loss = 1.692\n", + "Epoch 53 Batch 8/24 train_loss = 1.636\n", + "Epoch 53 Batch 18/24 train_loss = 1.754\n", + "Epoch 54 Batch 4/24 train_loss = 1.671\n", + "Epoch 54 Batch 14/24 train_loss = 1.657\n", + "Epoch 55 Batch 0/24 train_loss = 1.722\n", + "Epoch 55 Batch 10/24 train_loss = 1.697\n", + "Epoch 55 Batch 20/24 train_loss = 1.719\n", + "Epoch 56 Batch 6/24 train_loss = 1.689\n", + "Epoch 56 Batch 16/24 train_loss = 1.624\n", + "Epoch 57 Batch 2/24 train_loss = 1.592\n", + "Epoch 57 Batch 12/24 train_loss = 1.616\n", + "Epoch 57 Batch 22/24 train_loss = 1.556\n", + "Epoch 58 Batch 8/24 train_loss = 1.525\n", + "Epoch 58 Batch 18/24 train_loss = 1.592\n", + "Epoch 59 Batch 4/24 train_loss = 1.547\n", + "Epoch 59 Batch 14/24 train_loss = 1.549\n", + "Epoch 60 Batch 0/24 train_loss = 1.570\n", + "Epoch 60 Batch 10/24 train_loss = 1.530\n", + "Epoch 60 Batch 20/24 train_loss = 1.580\n", + "Epoch 61 Batch 6/24 train_loss = 1.540\n", + "Epoch 61 Batch 16/24 train_loss = 1.496\n", + "Epoch 62 Batch 2/24 train_loss = 1.459\n", + "Epoch 62 Batch 12/24 train_loss = 1.450\n", + "Epoch 62 Batch 22/24 train_loss = 1.432\n", + "Epoch 63 Batch 8/24 train_loss = 1.387\n", + "Epoch 63 Batch 18/24 train_loss = 1.483\n", + "Epoch 64 Batch 4/24 train_loss = 1.414\n", + "Epoch 64 Batch 14/24 train_loss = 1.430\n", + "Epoch 65 Batch 0/24 train_loss = 1.452\n", + "Epoch 65 Batch 10/24 train_loss = 1.433\n", + "Epoch 65 Batch 20/24 train_loss = 1.496\n", + "Epoch 66 Batch 6/24 train_loss = 1.447\n", + "Epoch 66 Batch 16/24 train_loss = 1.436\n", + "Epoch 67 Batch 2/24 train_loss = 1.398\n", + "Epoch 67 Batch 12/24 train_loss = 1.409\n", + "Epoch 67 Batch 22/24 train_loss = 1.404\n", + "Epoch 68 Batch 8/24 train_loss = 1.339\n", + "Epoch 68 Batch 18/24 train_loss = 1.429\n", + "Epoch 69 Batch 4/24 train_loss = 1.371\n", + "Epoch 69 Batch 14/24 train_loss = 1.402\n", + "Epoch 70 Batch 0/24 train_loss = 1.439\n", + "Epoch 70 Batch 10/24 train_loss = 1.382\n", + "Epoch 70 Batch 20/24 train_loss = 1.436\n", + "Epoch 71 Batch 6/24 train_loss = 1.411\n", + "Epoch 71 Batch 16/24 train_loss = 1.379\n", + "Epoch 72 Batch 2/24 train_loss = 1.347\n", + "Epoch 72 Batch 12/24 train_loss = 1.326\n", + "Epoch 72 Batch 22/24 train_loss = 1.335\n", + "Epoch 73 Batch 8/24 train_loss = 1.284\n", + "Epoch 73 Batch 18/24 train_loss = 1.369\n", + "Epoch 74 Batch 4/24 train_loss = 1.308\n", + "Epoch 74 Batch 14/24 train_loss = 1.305\n", + "Epoch 75 Batch 0/24 train_loss = 1.329\n", + "Epoch 75 Batch 10/24 train_loss = 1.291\n", + "Epoch 75 Batch 20/24 train_loss = 1.345\n", + "Epoch 76 Batch 6/24 train_loss = 1.303\n", + "Epoch 76 Batch 16/24 train_loss = 1.287\n", + "Epoch 77 Batch 2/24 train_loss = 1.260\n", + "Epoch 77 Batch 12/24 train_loss = 1.229\n", + "Epoch 77 Batch 22/24 train_loss = 1.228\n", + "Epoch 78 Batch 8/24 train_loss = 1.176\n", + "Epoch 78 Batch 18/24 train_loss = 1.247\n", + "Epoch 79 Batch 4/24 train_loss = 1.176\n", + "Epoch 79 Batch 14/24 train_loss = 1.211\n", + "Epoch 80 Batch 0/24 train_loss = 1.255\n", + "Epoch 80 Batch 10/24 train_loss = 1.214\n", + "Epoch 80 Batch 20/24 train_loss = 1.233\n", + "Epoch 81 Batch 6/24 train_loss = 1.194\n", + "Epoch 81 Batch 16/24 train_loss = 1.173\n", + "Epoch 82 Batch 2/24 train_loss = 1.179\n", + "Epoch 82 Batch 12/24 train_loss = 1.115\n", + "Epoch 82 Batch 22/24 train_loss = 1.123\n", + "Epoch 83 Batch 8/24 train_loss = 1.058\n", + "Epoch 83 Batch 18/24 train_loss = 1.138\n", + "Epoch 84 Batch 4/24 train_loss = 1.085\n", + "Epoch 84 Batch 14/24 train_loss = 1.120\n", + "Epoch 85 Batch 0/24 train_loss = 1.157\n", + "Epoch 85 Batch 10/24 train_loss = 1.081\n", + "Epoch 85 Batch 20/24 train_loss = 1.157\n", + "Epoch 86 Batch 6/24 train_loss = 1.129\n", + "Epoch 86 Batch 16/24 train_loss = 1.081\n", + "Epoch 87 Batch 2/24 train_loss = 1.078\n", + "Epoch 87 Batch 12/24 train_loss = 1.033\n", + "Epoch 87 Batch 22/24 train_loss = 1.048\n", + "Epoch 88 Batch 8/24 train_loss = 1.021\n", + "Epoch 88 Batch 18/24 train_loss = 1.088\n", + "Epoch 89 Batch 4/24 train_loss = 1.019\n", + "Epoch 89 Batch 14/24 train_loss = 1.046\n", + "Epoch 90 Batch 0/24 train_loss = 1.085\n", + "Epoch 90 Batch 10/24 train_loss = 1.045\n", + "Epoch 90 Batch 20/24 train_loss = 1.093\n", + "Epoch 91 Batch 6/24 train_loss = 1.056\n", + "Epoch 91 Batch 16/24 train_loss = 1.035\n", + "Epoch 92 Batch 2/24 train_loss = 1.047\n", + "Epoch 92 Batch 12/24 train_loss = 1.002\n", + "Epoch 92 Batch 22/24 train_loss = 1.011\n", + "Epoch 93 Batch 8/24 train_loss = 0.952\n", + "Epoch 93 Batch 18/24 train_loss = 1.036\n", + "Epoch 94 Batch 4/24 train_loss = 0.982\n", + "Epoch 94 Batch 14/24 train_loss = 1.020\n", + "Epoch 95 Batch 0/24 train_loss = 1.029\n", + "Epoch 95 Batch 10/24 train_loss = 0.961\n", + "Epoch 95 Batch 20/24 train_loss = 0.999\n", + "Epoch 96 Batch 6/24 train_loss = 0.982\n", + "Epoch 96 Batch 16/24 train_loss = 0.979\n", + "Epoch 97 Batch 2/24 train_loss = 0.980\n", + "Epoch 97 Batch 12/24 train_loss = 0.938\n", + "Epoch 97 Batch 22/24 train_loss = 0.939\n", + "Epoch 98 Batch 8/24 train_loss = 0.902\n", + "Epoch 98 Batch 18/24 train_loss = 0.976\n", + "Epoch 99 Batch 4/24 train_loss = 0.920\n", + "Epoch 99 Batch 14/24 train_loss = 0.949\n", "Model Trained and Saved\n" ] } @@ -1521,7 +1687,7 @@ }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 111, "metadata": { "collapsed": false, "deletable": true, @@ -1548,7 +1714,7 @@ }, { "cell_type": "code", - "execution_count": 272, + "execution_count": 112, "metadata": { "collapsed": false, "deletable": true, @@ -1588,7 +1754,7 @@ }, { "cell_type": "code", - "execution_count": 273, + "execution_count": 113, "metadata": { "collapsed": false, "deletable": true, @@ -1637,7 +1803,7 @@ }, { "cell_type": "code", - "execution_count": 274, + "execution_count": 121, "metadata": { "collapsed": false, "deletable": true, @@ -1661,9 +1827,11 @@ " :return: String of the predicted word\n", " \"\"\"\n", " \n", - " word = int_to_vocab[np.argmax(probabilities)]\n", + " word_p = np.random.choice(probabilities,p=probabilities)\n", + " word = probabilities.tolist().index(word_p)\n", + " \n", " \n", - " return word\n", + " return int_to_vocab[word]\n", "\n", "\n", "\"\"\"\n", @@ -1685,7 +1853,7 @@ }, { "cell_type": "code", - "execution_count": 275, + "execution_count": 122, "metadata": { "collapsed": false, "deletable": true, @@ -1696,7 +1864,28 @@ "name": "stdout", "output_type": "stream", "text": [ - "moe_szyslak: sizes good-looking slap detective_homer_simpson: takin' cesss planning parrot smoke parrot sizes frustrated choked slap gesture elmo's jerry duff's butterball officials sizes themselves gesture whiny irrelevant paintings continuing huddle tony butterball worst jerry neighborhood slap slap slap detective_homer_simpson: meatpies crooks sail slap slap slap sizes worst mr slap worst gesture parrot calendars bathed schnapps butterball stuck jerry dash my-y-y-y-y-y slap slap slap detective_homer_simpson: rain gesture bashir's jerry longest slap slap slap detective_homer_simpson: realize gesture parrot neighborhood jerry dad's poet presided scrutinizes presided rope neighborhood booth detective_homer_simpson: enjoyed gesture electronic sam: jerry dash my-y-y-y-y-y butterball protestantism dash my-y-y-y-y-y friendly dash happiness agreement slap protestantism muttering muttering sugar-free parrot is: abandon fudd scrutinizes detective_homer_simpson: itself duff's butterball drinker slap muttering shaky slap cuff giant face knockin' tv-station_announcer: that's slap detective_homer_simpson: celebrate rubbed 2nd_voice_on_transmitter: further rubbed usual laramie bunch slap detective_homer_simpson: itself gesture child jerry premise poet sarcastic slap detective_homer_simpson: meatpies skydiving scrutinizes scream renee: scrutinizes detective_homer_simpson: itself lenses butterball tapered smokin' 2nd_voice_on_transmitter: slap detective_homer_simpson: detective_homer_simpson: detective_homer_simpson: aims always butterball oh-so-sophisticated wine dislike sizes bury gang butterball renee: rope laramie themselves beings slap detective_homer_simpson: rain indicates butterball stunned slap detective_homer_simpson: rain arts butterball ratted 2nd_voice_on_transmitter: pepsi oh-so-sophisticated planning booth rope presided rope abandon worst\n" + "moe_szyslak: okay, you can't sell it till it blows at the mr.\n", + "moe_szyslak: what?\n", + "homer_simpson: do you goin' homer?\n", + "moe_szyslak: oh, why don't you had? he's just a day?\n", + "homer_simpson: marge if it isn't little call? i'm gonna invite me out.\n", + "barney_gumble:(to homer) all knows me? hey, but all day it's everyone anymore.\n", + "moe_szyslak: aw, behind not one about us, like how about the last guy old.\n", + "lenny_leonard: hey, what that can hide!\n", + "seymour_skinner: i had to my time you say, big day...\n", + "kirk_van_houten: oh, nuts.\n", + "homer_simpson: when i'm not your best friend because i'm gonna plotz.\n", + "homer_simpson: don't be lost in a grampa.\n", + "homer_simpson: oh, right. it wasn't up from the\" sex on the car.\n", + "moe_szyslak: ah, he's down for a man. to be a friend.\n", + "\n", + "\n", + "homer_simpson:(moans) we're sure is.\n", + "\n", + "\n", + "\n", + "\n", + "homer_simpson:(to tv) hey, hibachi head.\n" ] } ], diff --git a/logs/1/events.out.tfevents.1490895533.ip-172-31-18-64 b/logs/1/events.out.tfevents.1490895533.ip-172-31-18-64 index e4b0945f1fb4cb75c9085de65b3ae3c06d12d3da..1dfde1cd967072891fd45b4c05c5757af11ed3a3 100644 GIT binary patch delta 423 zcmZ2|N_pco<%Sl<7N!>F7M2#)7Pc1lEgafUrw0Xcm~-kEr6#6W8E|c#KJgZZ$@BwX znORt@41{c^GX`^*PUmN4VP}$paCl%!cQbNXf~DEw4S`DSAWGxdSU8!apqvJF7WV0{ zA9Ki0V`Pz=uJMFJ2Fyr$!l4LeEPTSD0%Ryme+rROm@fB;8EBLJbVC&u<7oyQTtG)a z+$23+fQ3aC;-*427KEEX98@;}Ma)48?WTiR(-YW0j)!s_TsT-+fo2AAO~1&^A_`I_ zJ-v{VMPzycCrBBTBhSUc$_7*x!6h;MpfrmZNS!R0HND=01E>zdfd^aAF7M2#)7Pc1lEgafU0fdGLM*si- diff --git a/logs/1/events.out.tfevents.1490999151.ip-172-31-18-64 b/logs/1/events.out.tfevents.1490999151.ip-172-31-18-64 new file mode 100644 index 0000000000000000000000000000000000000000..54ded9d90f991a4cbba3724a3b03b84f6c4d8827 GIT binary patch literal 584497 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 LLGqjZAGdx2&?b!| literal 0 HcmV?d00001