In [1]:
from __future__ import print_function
import gzip
import itertools
import pickle
import os
import sys
import numpy as np
import lasagne
import theano
import theano.tensor as T
import time
from sklearn.externals import joblib
In [2]:
NUM_EPOCHS = 500
BATCH_SIZE = 600
NUM_HIDDEN_UNITS = 512
LEARNING_RATE = 0.01
MOMENTUM = 0.9
In [21]:
def create_iter_functions(dataset, output_layer,
X_tensor_type=T.matrix,
batch_size=BATCH_SIZE,
learning_rate=LEARNING_RATE, momentum=MOMENTUM):
"""Create functions for training, validation and testing to iterate one
epoch.
"""
batch_index = T.iscalar('batch_index')
X_batch = X_tensor_type('x')
y_batch = T.ivector('y')
batch_slice = slice(batch_index * batch_size,
(batch_index + 1) * batch_size)
objective = lasagne.objectives.Objective(output_layer,
loss_function=lasagne.objectives.categorical_crossentropy)
loss_train = objective.get_loss(X_batch, target=y_batch)
loss_eval = objective.get_loss(X_batch, target=y_batch,
deterministic=True)
pred = T.argmax(
lasagne.layers.get_output(output_layer, X_batch, deterministic=True),
axis=1)
accuracy = T.mean(T.eq(pred, y_batch), dtype=theano.config.floatX)
all_params = lasagne.layers.get_all_params(output_layer)
updates = lasagne.updates.nesterov_momentum(
loss_train, all_params, learning_rate, momentum)
iter_train = theano.function(
[batch_index], loss_train,
updates=updates,
givens={
X_batch: dataset['X_train'][batch_slice],
y_batch: dataset['y_train'][batch_slice],
},
)
iter_valid = theano.function(
[batch_index], [loss_eval, accuracy],
givens={
X_batch: dataset['X_valid'][batch_slice],
y_batch: dataset['y_valid'][batch_slice],
},
)
iter_test = theano.function(
[batch_index], [loss_eval, accuracy],
givens={
X_batch: dataset['X_test'][batch_slice],
y_batch: dataset['y_test'][batch_slice],
},
)
return dict(
train=iter_train,
valid=iter_valid,
test=iter_test,
)
In [22]:
def train(iter_funcs, dataset, batch_size=BATCH_SIZE):
"""Train the model with `dataset` with mini-batch training. Each
mini-batch has `batch_size` recordings.
"""
num_batches_train = dataset['num_examples_train'] // batch_size
num_batches_valid = dataset['num_examples_valid'] // batch_size
for epoch in itertools.count(1):
batch_train_losses = []
for b in range(num_batches_train):
batch_train_loss = iter_funcs['train'](b)
batch_train_losses.append(batch_train_loss)
avg_train_loss = np.mean(batch_train_losses)
batch_valid_losses = []
batch_valid_accuracies = []
for b in range(num_batches_valid):
batch_valid_loss, batch_valid_accuracy = iter_funcs['valid'](b)
batch_valid_losses.append(batch_valid_loss)
batch_valid_accuracies.append(batch_valid_accuracy)
avg_valid_loss = np.mean(batch_valid_losses)
avg_valid_accuracy = np.mean(batch_valid_accuracies)
yield {
'number': epoch,
'train_loss': avg_train_loss,
'valid_loss': avg_valid_loss,
'valid_accuracy': avg_valid_accuracy,
}
In [23]:
def load_data(features, labels):
"""Get data with labels, split into training, validation and test set."""
X_train = features[:4000]
y_train = labels[:4000]
X_valid = features[4000:5000]
y_valid = labels[4000:5000]
X_test = features[5000:]
y_test = labels[5000:]
return dict(
X_train=theano.shared(lasagne.utils.floatX(X_train)),
y_train=T.cast(theano.shared(y_train), 'int32'),
X_valid=theano.shared(lasagne.utils.floatX(X_valid)),
y_valid=T.cast(theano.shared(y_valid), 'int32'),
X_test=theano.shared(lasagne.utils.floatX(X_test)),
y_test=T.cast(theano.shared(y_test), 'int32'),
num_examples_train=X_train.shape[0],
num_examples_valid=X_valid.shape[0],
num_examples_test=X_test.shape[0],
input_dim=X_train.shape[1],
output_dim=9,
)
In [24]:
def build_model(input_dim, output_dim,
batch_size=BATCH_SIZE, num_hidden_units=NUM_HIDDEN_UNITS):
"""Create a symbolic representation of a neural network with `intput_dim`
input nodes, `output_dim` output nodes and `num_hidden_units` per hidden
layer.
The training function of this model must have a mini-batch size of
`batch_size`.
A theano expression which represents such a network is returned.
"""
l_in = lasagne.layers.InputLayer(
shape=(batch_size, input_dim),
)
l_hidden1 = lasagne.layers.DenseLayer(
l_in,
num_units=num_hidden_units,
nonlinearity=lasagne.nonlinearities.rectify,
)
l_hidden1_dropout = lasagne.layers.DropoutLayer(
l_hidden1,
p=0.5,
)
l_hidden2 = lasagne.layers.DenseLayer(
l_hidden1_dropout,
num_units=num_hidden_units,
nonlinearity=lasagne.nonlinearities.rectify,
)
l_hidden2_dropout = lasagne.layers.DropoutLayer(
l_hidden2,
p=0.5,
)
l_out = lasagne.layers.DenseLayer(
l_hidden2_dropout,
num_units=output_dim,
nonlinearity=lasagne.nonlinearities.softmax,
)
return l_out
In [25]:
def scale(X, eps = 0.001):
# scale the data points s.t the columns of the feature space
# (i.e the predictors) are within the range [0, 1]
return (X - np.min(X, axis = 0)) / (np.max(X, axis = 0) + eps)
In [26]:
features = joblib.load("./mldata/features_1200.mat")
labels = joblib.load("./mldata/lables_1200.mat")
features = features.astype("float32")
features = scale(features)
labels = np.array(labels, 'int')
dataset = load_data(features, labels)
print("Building model and compiling functions...")
output_layer = build_model(
input_dim=dataset['input_dim'],
output_dim=dataset['output_dim'],
)
iter_funcs = create_iter_functions(dataset, output_layer)
print("Starting training...")
now = time.time()
num_epochs = NUM_EPOCHS
try:
for epoch in train(iter_funcs, dataset):
print("Epoch {} of {} took {:.3f}s".format(
epoch['number'], num_epochs, time.time() - now))
now = time.time()
print(" training loss:\t\t{:.6f}".format(epoch['train_loss']))
print(" validation loss:\t\t{:.6f}".format(epoch['valid_loss']))
print(" validation accuracy:\t\t{:.2f} %%".format(
epoch['valid_accuracy'] * 100))
if epoch['number'] >= num_epochs:
break
except KeyboardInterrupt:
pass
Building model and compiling functions...
Starting training...
Epoch 1 of 500 took 0.554s
training loss: 2.212563
validation loss: 1.357382
validation accuracy: 72.67 %%
Epoch 2 of 500 took 0.517s
training loss: 1.301100
validation loss: 0.789225
validation accuracy: 89.50 %%
Epoch 3 of 500 took 0.504s
training loss: 0.849578
validation loss: 0.528523
validation accuracy: 89.67 %%
Epoch 4 of 500 took 0.506s
training loss: 0.620904
validation loss: 0.439446
validation accuracy: 90.00 %%
Epoch 5 of 500 took 0.513s
training loss: 0.512841
validation loss: 0.418126
validation accuracy: 89.67 %%
Epoch 6 of 500 took 0.503s
training loss: 0.447643
validation loss: 0.412704
validation accuracy: 89.50 %%
Epoch 7 of 500 took 0.508s
training loss: 0.424851
validation loss: 0.408623
validation accuracy: 89.50 %%
Epoch 8 of 500 took 0.520s
training loss: 0.408980
validation loss: 0.402280
validation accuracy: 89.50 %%
Epoch 9 of 500 took 0.507s
training loss: 0.393826
validation loss: 0.396009
validation accuracy: 89.67 %%
Epoch 10 of 500 took 0.516s
training loss: 0.369515
validation loss: 0.392182
validation accuracy: 90.00 %%
Epoch 11 of 500 took 0.504s
training loss: 0.365479
validation loss: 0.389200
validation accuracy: 89.83 %%
Epoch 12 of 500 took 0.507s
training loss: 0.351615
validation loss: 0.386139
validation accuracy: 90.33 %%
Epoch 13 of 500 took 0.544s
training loss: 0.354457
validation loss: 0.383394
validation accuracy: 90.17 %%
Epoch 14 of 500 took 0.505s
training loss: 0.347704
validation loss: 0.381520
validation accuracy: 90.17 %%
Epoch 15 of 500 took 0.516s
training loss: 0.340337
validation loss: 0.378631
validation accuracy: 90.33 %%
Epoch 16 of 500 took 0.532s
training loss: 0.337515
validation loss: 0.373871
validation accuracy: 90.50 %%
Epoch 17 of 500 took 0.526s
training loss: 0.335463
validation loss: 0.370887
validation accuracy: 90.50 %%
Epoch 18 of 500 took 0.525s
training loss: 0.312103
validation loss: 0.370339
validation accuracy: 90.67 %%
Epoch 19 of 500 took 0.554s
training loss: 0.323713
validation loss: 0.369846
validation accuracy: 90.33 %%
Epoch 20 of 500 took 0.587s
training loss: 0.322713
validation loss: 0.366978
validation accuracy: 90.83 %%
Epoch 21 of 500 took 0.576s
training loss: 0.313227
validation loss: 0.364737
validation accuracy: 90.67 %%
Epoch 22 of 500 took 0.608s
training loss: 0.299187
validation loss: 0.363983
validation accuracy: 91.00 %%
Epoch 23 of 500 took 0.571s
training loss: 0.306930
validation loss: 0.363656
validation accuracy: 90.67 %%
Epoch 24 of 500 took 0.563s
training loss: 0.303755
validation loss: 0.363661
validation accuracy: 90.67 %%
Epoch 25 of 500 took 0.509s
training loss: 0.302773
validation loss: 0.362870
validation accuracy: 90.67 %%
Epoch 26 of 500 took 0.507s
training loss: 0.295430
validation loss: 0.361361
validation accuracy: 90.67 %%
Epoch 27 of 500 took 0.521s
training loss: 0.287428
validation loss: 0.358771
validation accuracy: 90.67 %%
Epoch 28 of 500 took 0.513s
training loss: 0.296747
validation loss: 0.357170
validation accuracy: 90.67 %%
Epoch 29 of 500 took 0.606s
training loss: 0.288987
validation loss: 0.357729
validation accuracy: 90.67 %%
Epoch 30 of 500 took 0.539s
training loss: 0.282418
validation loss: 0.357081
validation accuracy: 90.67 %%
Epoch 31 of 500 took 0.496s
training loss: 0.290727
validation loss: 0.355975
validation accuracy: 90.67 %%
Epoch 32 of 500 took 0.515s
training loss: 0.281680
validation loss: 0.354811
validation accuracy: 90.67 %%
Epoch 33 of 500 took 0.505s
training loss: 0.273497
validation loss: 0.353391
validation accuracy: 90.67 %%
Epoch 34 of 500 took 0.510s
training loss: 0.272299
validation loss: 0.353180
validation accuracy: 90.67 %%
Epoch 35 of 500 took 0.509s
training loss: 0.274959
validation loss: 0.351814
validation accuracy: 90.67 %%
Epoch 36 of 500 took 0.498s
training loss: 0.269371
validation loss: 0.350328
validation accuracy: 90.67 %%
Epoch 37 of 500 took 0.493s
training loss: 0.271597
validation loss: 0.349905
validation accuracy: 90.67 %%
Epoch 38 of 500 took 0.500s
training loss: 0.273270
validation loss: 0.350546
validation accuracy: 90.67 %%
Epoch 39 of 500 took 0.518s
training loss: 0.265132
validation loss: 0.349787
validation accuracy: 90.67 %%
Epoch 40 of 500 took 0.499s
training loss: 0.270219
validation loss: 0.348710
validation accuracy: 90.67 %%
Epoch 41 of 500 took 0.505s
training loss: 0.264988
validation loss: 0.348955
validation accuracy: 90.67 %%
Epoch 42 of 500 took 0.496s
training loss: 0.263798
validation loss: 0.348160
validation accuracy: 90.67 %%
Epoch 43 of 500 took 0.515s
training loss: 0.259839
validation loss: 0.347456
validation accuracy: 90.67 %%
Epoch 44 of 500 took 0.504s
training loss: 0.259743
validation loss: 0.348119
validation accuracy: 90.67 %%
Epoch 45 of 500 took 0.514s
training loss: 0.261768
validation loss: 0.348182
validation accuracy: 90.83 %%
Epoch 46 of 500 took 0.518s
training loss: 0.256819
validation loss: 0.347164
validation accuracy: 90.83 %%
Epoch 47 of 500 took 0.501s
training loss: 0.255079
validation loss: 0.345837
validation accuracy: 90.83 %%
Epoch 48 of 500 took 0.505s
training loss: 0.247465
validation loss: 0.345990
validation accuracy: 90.83 %%
Epoch 49 of 500 took 0.501s
training loss: 0.246268
validation loss: 0.347595
validation accuracy: 90.83 %%
Epoch 50 of 500 took 0.519s
training loss: 0.254081
validation loss: 0.348336
validation accuracy: 90.67 %%
Epoch 51 of 500 took 0.507s
training loss: 0.247604
validation loss: 0.349471
validation accuracy: 90.67 %%
Epoch 52 of 500 took 0.514s
training loss: 0.242117
validation loss: 0.349595
validation accuracy: 90.83 %%
Epoch 53 of 500 took 0.547s
training loss: 0.245925
validation loss: 0.347918
validation accuracy: 90.67 %%
Epoch 54 of 500 took 0.505s
training loss: 0.252451
validation loss: 0.345641
validation accuracy: 90.67 %%
Epoch 55 of 500 took 0.507s
training loss: 0.238750
validation loss: 0.344868
validation accuracy: 90.67 %%
Epoch 56 of 500 took 0.511s
training loss: 0.242358
validation loss: 0.343926
validation accuracy: 90.83 %%
Epoch 57 of 500 took 0.511s
training loss: 0.245817
validation loss: 0.344148
validation accuracy: 90.83 %%
Epoch 58 of 500 took 0.518s
training loss: 0.238174
validation loss: 0.344923
validation accuracy: 90.83 %%
Epoch 59 of 500 took 0.499s
training loss: 0.237185
validation loss: 0.345343
validation accuracy: 90.83 %%
Epoch 60 of 500 took 0.494s
training loss: 0.240364
validation loss: 0.345230
validation accuracy: 90.83 %%
Epoch 61 of 500 took 0.508s
training loss: 0.233236
validation loss: 0.344083
validation accuracy: 90.67 %%
Epoch 62 of 500 took 0.504s
training loss: 0.237831
validation loss: 0.345668
validation accuracy: 90.67 %%
Epoch 63 of 500 took 0.500s
training loss: 0.230621
validation loss: 0.346340
validation accuracy: 90.83 %%
Epoch 64 of 500 took 0.533s
training loss: 0.230877
validation loss: 0.346487
validation accuracy: 90.83 %%
Epoch 65 of 500 took 0.507s
training loss: 0.229972
validation loss: 0.346589
validation accuracy: 90.83 %%
Epoch 66 of 500 took 0.505s
training loss: 0.231966
validation loss: 0.346672
validation accuracy: 90.83 %%
Epoch 67 of 500 took 0.495s
training loss: 0.233163
validation loss: 0.346856
validation accuracy: 91.00 %%
Epoch 68 of 500 took 0.507s
training loss: 0.227992
validation loss: 0.346408
validation accuracy: 90.83 %%
Epoch 69 of 500 took 0.523s
training loss: 0.227453
validation loss: 0.346218
validation accuracy: 90.83 %%
Epoch 70 of 500 took 0.499s
training loss: 0.223485
validation loss: 0.346070
validation accuracy: 90.83 %%
Epoch 71 of 500 took 0.506s
training loss: 0.223411
validation loss: 0.344974
validation accuracy: 91.00 %%
Epoch 72 of 500 took 0.498s
training loss: 0.233869
validation loss: 0.344363
validation accuracy: 91.00 %%
Epoch 73 of 500 took 0.508s
training loss: 0.227577
validation loss: 0.343205
validation accuracy: 91.00 %%
Epoch 74 of 500 took 0.506s
training loss: 0.225866
validation loss: 0.342744
validation accuracy: 91.17 %%
Epoch 75 of 500 took 0.514s
training loss: 0.221926
validation loss: 0.344036
validation accuracy: 91.33 %%
Epoch 76 of 500 took 0.504s
training loss: 0.221296
validation loss: 0.345307
validation accuracy: 91.17 %%
Epoch 77 of 500 took 0.493s
training loss: 0.210707
validation loss: 0.347464
validation accuracy: 91.17 %%
Epoch 78 of 500 took 0.526s
training loss: 0.215038
validation loss: 0.348117
validation accuracy: 91.17 %%
Epoch 79 of 500 took 0.522s
training loss: 0.219028
validation loss: 0.346458
validation accuracy: 91.17 %%
Epoch 80 of 500 took 0.500s
training loss: 0.216299
validation loss: 0.346063
validation accuracy: 91.17 %%
Epoch 81 of 500 took 0.505s
training loss: 0.215585
validation loss: 0.345873
validation accuracy: 91.17 %%
Epoch 82 of 500 took 0.514s
training loss: 0.214350
validation loss: 0.345632
validation accuracy: 91.17 %%
Epoch 83 of 500 took 0.509s
training loss: 0.216883
validation loss: 0.346956
validation accuracy: 91.33 %%
Epoch 84 of 500 took 0.504s
training loss: 0.212267
validation loss: 0.347651
validation accuracy: 91.33 %%
Epoch 85 of 500 took 0.513s
training loss: 0.216667
validation loss: 0.345920
validation accuracy: 91.33 %%
Epoch 86 of 500 took 0.507s
training loss: 0.213785
validation loss: 0.344966
validation accuracy: 91.17 %%
Epoch 87 of 500 took 0.510s
training loss: 0.206041
validation loss: 0.346759
validation accuracy: 91.17 %%
Epoch 88 of 500 took 0.494s
training loss: 0.206938
validation loss: 0.346672
validation accuracy: 91.17 %%
Epoch 89 of 500 took 0.502s
training loss: 0.208915
validation loss: 0.347151
validation accuracy: 91.17 %%
Epoch 90 of 500 took 0.516s
training loss: 0.207642
validation loss: 0.348171
validation accuracy: 91.17 %%
Epoch 91 of 500 took 0.516s
training loss: 0.206369
validation loss: 0.348354
validation accuracy: 91.17 %%
Epoch 92 of 500 took 0.507s
training loss: 0.208393
validation loss: 0.348760
validation accuracy: 91.33 %%
Epoch 93 of 500 took 0.501s
training loss: 0.206199
validation loss: 0.346293
validation accuracy: 91.33 %%
Epoch 94 of 500 took 0.507s
training loss: 0.203992
validation loss: 0.343797
validation accuracy: 91.33 %%
Epoch 95 of 500 took 0.497s
training loss: 0.204061
validation loss: 0.344042
validation accuracy: 91.33 %%
Epoch 96 of 500 took 0.506s
training loss: 0.194323
validation loss: 0.347011
validation accuracy: 91.17 %%
Epoch 97 of 500 took 0.509s
training loss: 0.205042
validation loss: 0.348781
validation accuracy: 91.33 %%
Epoch 98 of 500 took 0.502s
training loss: 0.206909
validation loss: 0.346463
validation accuracy: 91.33 %%
Epoch 99 of 500 took 0.508s
training loss: 0.200721
validation loss: 0.347608
validation accuracy: 91.33 %%
Epoch 100 of 500 took 0.516s
training loss: 0.200805
validation loss: 0.348752
validation accuracy: 91.33 %%
Epoch 101 of 500 took 0.524s
training loss: 0.199123
validation loss: 0.349506
validation accuracy: 91.50 %%
Epoch 102 of 500 took 0.507s
training loss: 0.202860
validation loss: 0.347960
validation accuracy: 91.33 %%
Epoch 103 of 500 took 0.493s
training loss: 0.204831
validation loss: 0.346607
validation accuracy: 91.33 %%
Epoch 104 of 500 took 0.506s
training loss: 0.192337
validation loss: 0.348205
validation accuracy: 91.33 %%
Epoch 105 of 500 took 0.515s
training loss: 0.200447
validation loss: 0.349517
validation accuracy: 91.33 %%
Epoch 106 of 500 took 0.496s
training loss: 0.199740
validation loss: 0.348895
validation accuracy: 91.33 %%
Epoch 107 of 500 took 0.602s
training loss: 0.199348
validation loss: 0.346908
validation accuracy: 91.33 %%
Epoch 108 of 500 took 0.540s
training loss: 0.195208
validation loss: 0.346521
validation accuracy: 91.33 %%
Epoch 109 of 500 took 0.595s
training loss: 0.195862
validation loss: 0.349331
validation accuracy: 91.50 %%
Epoch 110 of 500 took 0.578s
training loss: 0.194465
validation loss: 0.351001
validation accuracy: 91.33 %%
Epoch 111 of 500 took 0.544s
training loss: 0.189810
validation loss: 0.350078
validation accuracy: 91.17 %%
Epoch 112 of 500 took 0.530s
training loss: 0.197469
validation loss: 0.348593
validation accuracy: 91.50 %%
Epoch 113 of 500 took 0.560s
training loss: 0.184688
validation loss: 0.348835
validation accuracy: 91.50 %%
Epoch 114 of 500 took 0.537s
training loss: 0.188705
validation loss: 0.349877
validation accuracy: 91.33 %%
Epoch 115 of 500 took 0.535s
training loss: 0.183380
validation loss: 0.352381
validation accuracy: 91.17 %%
Epoch 116 of 500 took 0.521s
training loss: 0.192743
validation loss: 0.351976
validation accuracy: 91.17 %%
Epoch 117 of 500 took 0.513s
training loss: 0.193948
validation loss: 0.349956
validation accuracy: 91.17 %%
Epoch 118 of 500 took 0.498s
training loss: 0.185374
validation loss: 0.349591
validation accuracy: 91.33 %%
Epoch 119 of 500 took 0.539s
training loss: 0.187753
validation loss: 0.350289
validation accuracy: 91.33 %%
Epoch 120 of 500 took 0.520s
training loss: 0.181514
validation loss: 0.352020
validation accuracy: 91.50 %%
Epoch 121 of 500 took 0.495s
training loss: 0.180254
validation loss: 0.352288
validation accuracy: 91.50 %%
Epoch 122 of 500 took 0.507s
training loss: 0.180265
validation loss: 0.352641
validation accuracy: 91.50 %%
Epoch 123 of 500 took 0.502s
training loss: 0.182092
validation loss: 0.353148
validation accuracy: 91.50 %%
Epoch 124 of 500 took 0.495s
training loss: 0.188237
validation loss: 0.353207
validation accuracy: 91.50 %%
Epoch 125 of 500 took 0.514s
training loss: 0.189379
validation loss: 0.351643
validation accuracy: 91.50 %%
Epoch 126 of 500 took 0.502s
training loss: 0.182934
validation loss: 0.350882
validation accuracy: 91.50 %%
Epoch 127 of 500 took 0.563s
training loss: 0.189296
validation loss: 0.351480
validation accuracy: 91.50 %%
Epoch 128 of 500 took 0.535s
training loss: 0.184548
validation loss: 0.351763
validation accuracy: 91.50 %%
Epoch 129 of 500 took 0.524s
training loss: 0.178009
validation loss: 0.353316
validation accuracy: 91.50 %%
Epoch 130 of 500 took 0.505s
training loss: 0.180373
validation loss: 0.353824
validation accuracy: 91.50 %%
Epoch 131 of 500 took 0.513s
training loss: 0.176869
validation loss: 0.353511
validation accuracy: 91.50 %%
Epoch 132 of 500 took 0.511s
training loss: 0.173026
validation loss: 0.354146
validation accuracy: 91.67 %%
Epoch 133 of 500 took 0.492s
training loss: 0.180532
validation loss: 0.353876
validation accuracy: 91.67 %%
Epoch 134 of 500 took 0.504s
training loss: 0.178827
validation loss: 0.353207
validation accuracy: 91.67 %%
Epoch 135 of 500 took 0.529s
training loss: 0.182392
validation loss: 0.352913
validation accuracy: 91.83 %%
Epoch 136 of 500 took 0.531s
training loss: 0.175073
validation loss: 0.353282
validation accuracy: 91.83 %%
Epoch 137 of 500 took 0.565s
training loss: 0.171990
validation loss: 0.354465
validation accuracy: 91.50 %%
Epoch 138 of 500 took 0.527s
training loss: 0.174284
validation loss: 0.355859
validation accuracy: 91.67 %%
Epoch 139 of 500 took 0.528s
training loss: 0.172635
validation loss: 0.356356
validation accuracy: 91.67 %%
Epoch 140 of 500 took 0.563s
training loss: 0.173746
validation loss: 0.356659
validation accuracy: 91.83 %%
Epoch 141 of 500 took 0.548s
training loss: 0.172823
validation loss: 0.356351
validation accuracy: 91.67 %%
Epoch 142 of 500 took 0.498s
training loss: 0.175551
validation loss: 0.356636
validation accuracy: 91.83 %%
Epoch 143 of 500 took 0.506s
training loss: 0.173603
validation loss: 0.355944
validation accuracy: 91.83 %%
Epoch 144 of 500 took 0.518s
training loss: 0.173363
validation loss: 0.355356
validation accuracy: 92.00 %%
Epoch 145 of 500 took 0.531s
training loss: 0.172684
validation loss: 0.356382
validation accuracy: 92.00 %%
Epoch 146 of 500 took 0.540s
training loss: 0.168953
validation loss: 0.356765
validation accuracy: 91.67 %%
Epoch 147 of 500 took 0.539s
training loss: 0.169347
validation loss: 0.357055
validation accuracy: 91.67 %%
Epoch 148 of 500 took 0.502s
training loss: 0.162659
validation loss: 0.358856
validation accuracy: 91.67 %%
Epoch 149 of 500 took 0.505s
training loss: 0.166481
validation loss: 0.360635
validation accuracy: 91.67 %%
Epoch 150 of 500 took 0.556s
training loss: 0.168268
validation loss: 0.360228
validation accuracy: 91.67 %%
Epoch 151 of 500 took 0.518s
training loss: 0.167528
validation loss: 0.359639
validation accuracy: 91.67 %%
Epoch 152 of 500 took 0.505s
training loss: 0.166340
validation loss: 0.359701
validation accuracy: 91.67 %%
Epoch 153 of 500 took 0.520s
training loss: 0.166859
validation loss: 0.359383
validation accuracy: 91.83 %%
Epoch 154 of 500 took 0.503s
training loss: 0.161888
validation loss: 0.358542
validation accuracy: 91.67 %%
Epoch 155 of 500 took 0.508s
training loss: 0.161851
validation loss: 0.360164
validation accuracy: 91.67 %%
Epoch 156 of 500 took 0.528s
training loss: 0.168079
validation loss: 0.362301
validation accuracy: 91.67 %%
Epoch 157 of 500 took 0.504s
training loss: 0.163055
validation loss: 0.362712
validation accuracy: 91.83 %%
Epoch 158 of 500 took 0.501s
training loss: 0.166310
validation loss: 0.361559
validation accuracy: 91.83 %%
Epoch 159 of 500 took 0.520s
training loss: 0.160440
validation loss: 0.363102
validation accuracy: 91.83 %%
Epoch 160 of 500 took 0.516s
training loss: 0.162820
validation loss: 0.362392
validation accuracy: 91.83 %%
Epoch 161 of 500 took 0.498s
training loss: 0.172684
validation loss: 0.360194
validation accuracy: 92.17 %%
Epoch 162 of 500 took 0.498s
training loss: 0.165654
validation loss: 0.361396
validation accuracy: 92.00 %%
Epoch 163 of 500 took 0.500s
training loss: 0.160575
validation loss: 0.360932
validation accuracy: 91.83 %%
Epoch 164 of 500 took 0.506s
training loss: 0.161102
validation loss: 0.360544
validation accuracy: 92.00 %%
Epoch 165 of 500 took 0.498s
training loss: 0.157776
validation loss: 0.362437
validation accuracy: 91.83 %%
Epoch 166 of 500 took 0.514s
training loss: 0.161803
validation loss: 0.363316
validation accuracy: 91.83 %%
Epoch 167 of 500 took 0.556s
training loss: 0.156104
validation loss: 0.365872
validation accuracy: 92.00 %%
Epoch 168 of 500 took 0.562s
training loss: 0.154953
validation loss: 0.367114
validation accuracy: 92.00 %%
Epoch 169 of 500 took 0.512s
training loss: 0.158851
validation loss: 0.365581
validation accuracy: 92.17 %%
Epoch 170 of 500 took 0.549s
training loss: 0.152625
validation loss: 0.364515
validation accuracy: 92.17 %%
Epoch 171 of 500 took 0.565s
training loss: 0.160117
validation loss: 0.363891
validation accuracy: 92.00 %%
Epoch 172 of 500 took 0.509s
training loss: 0.154916
validation loss: 0.363979
validation accuracy: 92.00 %%
Epoch 173 of 500 took 0.505s
training loss: 0.155935
validation loss: 0.364075
validation accuracy: 92.00 %%
Epoch 174 of 500 took 0.521s
training loss: 0.153634
validation loss: 0.364663
validation accuracy: 92.00 %%
Epoch 175 of 500 took 0.511s
training loss: 0.158196
validation loss: 0.365421
validation accuracy: 91.83 %%
Epoch 176 of 500 took 0.497s
training loss: 0.155762
validation loss: 0.367243
validation accuracy: 91.67 %%
Epoch 177 of 500 took 0.513s
training loss: 0.154647
validation loss: 0.367419
validation accuracy: 91.67 %%
Epoch 178 of 500 took 0.490s
training loss: 0.149602
validation loss: 0.367980
validation accuracy: 92.00 %%
Epoch 179 of 500 took 0.500s
training loss: 0.156670
validation loss: 0.369199
validation accuracy: 92.17 %%
Epoch 180 of 500 took 0.500s
training loss: 0.148374
validation loss: 0.369470
validation accuracy: 92.17 %%
Epoch 181 of 500 took 0.494s
training loss: 0.150815
validation loss: 0.371096
validation accuracy: 92.00 %%
Epoch 182 of 500 took 0.537s
training loss: 0.147813
validation loss: 0.371558
validation accuracy: 92.17 %%
Epoch 183 of 500 took 0.634s
training loss: 0.154634
validation loss: 0.368702
validation accuracy: 92.17 %%
Epoch 184 of 500 took 0.520s
training loss: 0.147824
validation loss: 0.367914
validation accuracy: 92.17 %%
Epoch 185 of 500 took 0.556s
training loss: 0.150807
validation loss: 0.369049
validation accuracy: 91.83 %%
Epoch 186 of 500 took 0.549s
training loss: 0.144943
validation loss: 0.369481
validation accuracy: 92.00 %%
Epoch 187 of 500 took 0.556s
training loss: 0.153364
validation loss: 0.368541
validation accuracy: 92.00 %%
Epoch 188 of 500 took 0.554s
training loss: 0.149564
validation loss: 0.367999
validation accuracy: 92.17 %%
Epoch 189 of 500 took 0.539s
training loss: 0.147105
validation loss: 0.368412
validation accuracy: 92.00 %%
Epoch 190 of 500 took 0.556s
training loss: 0.147613
validation loss: 0.370326
validation accuracy: 92.00 %%
Epoch 191 of 500 took 0.547s
training loss: 0.150351
validation loss: 0.370472
validation accuracy: 92.00 %%
Epoch 192 of 500 took 0.549s
training loss: 0.152880
validation loss: 0.371617
validation accuracy: 92.00 %%
Epoch 193 of 500 took 0.505s
training loss: 0.143557
validation loss: 0.372245
validation accuracy: 91.83 %%
Epoch 194 of 500 took 0.536s
training loss: 0.150166
validation loss: 0.372655
validation accuracy: 91.67 %%
Epoch 195 of 500 took 0.498s
training loss: 0.148087
validation loss: 0.374222
validation accuracy: 91.67 %%
Epoch 196 of 500 took 0.567s
training loss: 0.153610
validation loss: 0.373617
validation accuracy: 91.50 %%
Epoch 197 of 500 took 0.541s
training loss: 0.148501
validation loss: 0.372290
validation accuracy: 91.67 %%
Epoch 198 of 500 took 0.537s
training loss: 0.142378
validation loss: 0.374162
validation accuracy: 91.67 %%
Epoch 199 of 500 took 0.519s
training loss: 0.144274
validation loss: 0.375725
validation accuracy: 91.67 %%
Epoch 200 of 500 took 0.524s
training loss: 0.141838
validation loss: 0.376001
validation accuracy: 91.50 %%
Epoch 201 of 500 took 0.565s
training loss: 0.141541
validation loss: 0.378278
validation accuracy: 91.50 %%
Epoch 202 of 500 took 0.546s
training loss: 0.150214
validation loss: 0.378871
validation accuracy: 91.50 %%
Epoch 203 of 500 took 0.582s
training loss: 0.145045
validation loss: 0.379330
validation accuracy: 91.50 %%
Epoch 204 of 500 took 0.508s
training loss: 0.145518
validation loss: 0.379267
validation accuracy: 91.67 %%
Epoch 205 of 500 took 0.508s
training loss: 0.143179
validation loss: 0.380894
validation accuracy: 91.50 %%
Epoch 206 of 500 took 0.521s
training loss: 0.141261
validation loss: 0.382031
validation accuracy: 91.83 %%
Epoch 207 of 500 took 0.503s
training loss: 0.142130
validation loss: 0.382782
validation accuracy: 91.83 %%
Epoch 208 of 500 took 0.556s
training loss: 0.141702
validation loss: 0.382874
validation accuracy: 91.50 %%
Epoch 209 of 500 took 0.557s
training loss: 0.147433
validation loss: 0.381987
validation accuracy: 92.00 %%
Epoch 210 of 500 took 0.528s
training loss: 0.139698
validation loss: 0.381846
validation accuracy: 92.00 %%
Epoch 211 of 500 took 0.525s
training loss: 0.143033
validation loss: 0.381201
validation accuracy: 92.00 %%
Epoch 212 of 500 took 0.506s
training loss: 0.146525
validation loss: 0.380463
validation accuracy: 92.00 %%
Epoch 213 of 500 took 0.509s
training loss: 0.142592
validation loss: 0.379473
validation accuracy: 91.83 %%
Epoch 214 of 500 took 0.539s
training loss: 0.141092
validation loss: 0.381572
validation accuracy: 91.83 %%
Epoch 215 of 500 took 0.520s
training loss: 0.139391
validation loss: 0.382935
validation accuracy: 91.83 %%
Epoch 216 of 500 took 0.512s
training loss: 0.137644
validation loss: 0.384199
validation accuracy: 91.83 %%
Epoch 217 of 500 took 0.498s
training loss: 0.132930
validation loss: 0.385672
validation accuracy: 91.67 %%
Epoch 218 of 500 took 0.503s
training loss: 0.131616
validation loss: 0.387975
validation accuracy: 91.67 %%
Epoch 219 of 500 took 0.507s
training loss: 0.134774
validation loss: 0.389056
validation accuracy: 91.50 %%
Epoch 220 of 500 took 0.518s
training loss: 0.139950
validation loss: 0.387277
validation accuracy: 91.67 %%
Epoch 221 of 500 took 0.504s
training loss: 0.134044
validation loss: 0.387658
validation accuracy: 91.67 %%
Epoch 222 of 500 took 0.505s
training loss: 0.125724
validation loss: 0.389720
validation accuracy: 91.67 %%
Epoch 223 of 500 took 0.499s
training loss: 0.141681
validation loss: 0.388368
validation accuracy: 91.50 %%
Epoch 224 of 500 took 0.499s
training loss: 0.135293
validation loss: 0.386348
validation accuracy: 91.83 %%
Epoch 225 of 500 took 0.508s
training loss: 0.137255
validation loss: 0.386102
validation accuracy: 91.83 %%
Epoch 226 of 500 took 0.511s
training loss: 0.132541
validation loss: 0.385624
validation accuracy: 91.83 %%
Epoch 227 of 500 took 0.503s
training loss: 0.139399
validation loss: 0.385040
validation accuracy: 91.67 %%
Epoch 228 of 500 took 0.508s
training loss: 0.132393
validation loss: 0.386450
validation accuracy: 91.67 %%
Epoch 229 of 500 took 0.509s
training loss: 0.129771
validation loss: 0.388046
validation accuracy: 91.67 %%
Epoch 230 of 500 took 0.512s
training loss: 0.129541
validation loss: 0.390409
validation accuracy: 91.67 %%
Epoch 231 of 500 took 0.493s
training loss: 0.134635
validation loss: 0.389924
validation accuracy: 91.83 %%
Epoch 232 of 500 took 0.525s
training loss: 0.135462
validation loss: 0.388612
validation accuracy: 91.83 %%
Epoch 233 of 500 took 0.523s
training loss: 0.135259
validation loss: 0.387359
validation accuracy: 91.83 %%
Epoch 234 of 500 took 0.595s
training loss: 0.134106
validation loss: 0.386996
validation accuracy: 91.83 %%
Epoch 235 of 500 took 0.566s
training loss: 0.132841
validation loss: 0.390675
validation accuracy: 91.83 %%
Epoch 236 of 500 took 0.529s
training loss: 0.137349
validation loss: 0.391512
validation accuracy: 91.67 %%
Epoch 237 of 500 took 0.540s
training loss: 0.128275
validation loss: 0.392360
validation accuracy: 91.67 %%
Epoch 238 of 500 took 0.575s
training loss: 0.130045
validation loss: 0.393250
validation accuracy: 91.83 %%
Epoch 239 of 500 took 0.556s
training loss: 0.128876
validation loss: 0.393938
validation accuracy: 91.83 %%
Epoch 240 of 500 took 0.555s
training loss: 0.132238
validation loss: 0.395154
validation accuracy: 91.67 %%
Epoch 241 of 500 took 0.529s
training loss: 0.133539
validation loss: 0.396228
validation accuracy: 91.83 %%
Epoch 242 of 500 took 0.630s
training loss: 0.131146
validation loss: 0.394910
validation accuracy: 91.83 %%
Epoch 243 of 500 took 0.527s
training loss: 0.132437
validation loss: 0.392930
validation accuracy: 91.83 %%
Epoch 244 of 500 took 0.532s
training loss: 0.130009
validation loss: 0.393122
validation accuracy: 91.83 %%
Epoch 245 of 500 took 0.499s
training loss: 0.132033
validation loss: 0.394031
validation accuracy: 91.83 %%
Epoch 246 of 500 took 0.506s
training loss: 0.124702
validation loss: 0.395186
validation accuracy: 91.83 %%
Epoch 247 of 500 took 0.577s
training loss: 0.127840
validation loss: 0.398067
validation accuracy: 91.67 %%
Epoch 248 of 500 took 0.495s
training loss: 0.128064
validation loss: 0.397447
validation accuracy: 91.83 %%
Epoch 249 of 500 took 0.529s
training loss: 0.128034
validation loss: 0.397267
validation accuracy: 91.67 %%
Epoch 250 of 500 took 0.562s
training loss: 0.126413
validation loss: 0.399153
validation accuracy: 91.83 %%
Epoch 251 of 500 took 0.545s
training loss: 0.127311
validation loss: 0.399497
validation accuracy: 91.83 %%
Epoch 252 of 500 took 0.567s
training loss: 0.130248
validation loss: 0.397494
validation accuracy: 91.83 %%
Epoch 253 of 500 took 0.573s
training loss: 0.125118
validation loss: 0.397989
validation accuracy: 91.83 %%
Epoch 254 of 500 took 0.534s
training loss: 0.126068
validation loss: 0.398838
validation accuracy: 91.83 %%
Epoch 255 of 500 took 0.525s
training loss: 0.131049
validation loss: 0.400470
validation accuracy: 91.83 %%
Epoch 256 of 500 took 0.557s
training loss: 0.126161
validation loss: 0.400466
validation accuracy: 91.83 %%
Epoch 257 of 500 took 0.533s
training loss: 0.127840
validation loss: 0.400832
validation accuracy: 91.50 %%
Epoch 258 of 500 took 0.580s
training loss: 0.130566
validation loss: 0.402176
validation accuracy: 91.83 %%
Epoch 259 of 500 took 0.548s
training loss: 0.125625
validation loss: 0.404072
validation accuracy: 91.83 %%
Epoch 260 of 500 took 0.538s
training loss: 0.123007
validation loss: 0.405240
validation accuracy: 91.83 %%
Epoch 261 of 500 took 0.527s
training loss: 0.127370
validation loss: 0.402312
validation accuracy: 91.83 %%
Epoch 262 of 500 took 0.532s
training loss: 0.119139
validation loss: 0.400898
validation accuracy: 91.83 %%
Epoch 263 of 500 took 0.576s
training loss: 0.121938
validation loss: 0.402076
validation accuracy: 91.83 %%
Epoch 264 of 500 took 0.578s
training loss: 0.121917
validation loss: 0.403906
validation accuracy: 91.83 %%
Epoch 265 of 500 took 0.543s
training loss: 0.120070
validation loss: 0.405292
validation accuracy: 91.83 %%
Epoch 266 of 500 took 0.509s
training loss: 0.119787
validation loss: 0.407370
validation accuracy: 91.83 %%
Epoch 267 of 500 took 0.513s
training loss: 0.125890
validation loss: 0.407282
validation accuracy: 91.50 %%
Epoch 268 of 500 took 0.501s
training loss: 0.121198
validation loss: 0.407170
validation accuracy: 91.83 %%
Epoch 269 of 500 took 0.499s
training loss: 0.124616
validation loss: 0.405714
validation accuracy: 91.67 %%
Epoch 270 of 500 took 0.587s
training loss: 0.121165
validation loss: 0.404312
validation accuracy: 91.50 %%
Epoch 271 of 500 took 0.526s
training loss: 0.117996
validation loss: 0.405273
validation accuracy: 91.50 %%
Epoch 272 of 500 took 0.571s
training loss: 0.124203
validation loss: 0.406789
validation accuracy: 91.83 %%
Epoch 273 of 500 took 0.534s
training loss: 0.117644
validation loss: 0.408146
validation accuracy: 91.83 %%
Epoch 274 of 500 took 0.505s
training loss: 0.120906
validation loss: 0.408417
validation accuracy: 91.50 %%
Epoch 275 of 500 took 0.506s
training loss: 0.120234
validation loss: 0.411096
validation accuracy: 91.50 %%
Epoch 276 of 500 took 0.507s
training loss: 0.118623
validation loss: 0.412178
validation accuracy: 91.67 %%
Epoch 277 of 500 took 0.514s
training loss: 0.123549
validation loss: 0.409719
validation accuracy: 91.83 %%
Epoch 278 of 500 took 0.519s
training loss: 0.119453
validation loss: 0.406725
validation accuracy: 91.67 %%
Epoch 279 of 500 took 0.498s
training loss: 0.119858
validation loss: 0.408148
validation accuracy: 91.67 %%
Epoch 280 of 500 took 0.516s
training loss: 0.118200
validation loss: 0.411328
validation accuracy: 91.83 %%
Epoch 281 of 500 took 0.503s
training loss: 0.117734
validation loss: 0.411333
validation accuracy: 91.50 %%
Epoch 282 of 500 took 0.560s
training loss: 0.115393
validation loss: 0.413595
validation accuracy: 91.50 %%
Epoch 283 of 500 took 0.523s
training loss: 0.119416
validation loss: 0.412336
validation accuracy: 91.83 %%
Epoch 284 of 500 took 0.516s
training loss: 0.114979
validation loss: 0.414136
validation accuracy: 91.83 %%
Epoch 285 of 500 took 0.513s
training loss: 0.118575
validation loss: 0.414094
validation accuracy: 91.83 %%
Epoch 286 of 500 took 0.523s
training loss: 0.119662
validation loss: 0.412201
validation accuracy: 91.50 %%
Epoch 287 of 500 took 0.504s
training loss: 0.115651
validation loss: 0.413215
validation accuracy: 91.50 %%
Epoch 288 of 500 took 0.517s
training loss: 0.116012
validation loss: 0.416478
validation accuracy: 91.67 %%
Epoch 289 of 500 took 0.497s
training loss: 0.114298
validation loss: 0.417687
validation accuracy: 91.67 %%
Epoch 290 of 500 took 0.512s
training loss: 0.117403
validation loss: 0.417829
validation accuracy: 91.67 %%
Epoch 291 of 500 took 0.532s
training loss: 0.114959
validation loss: 0.418769
validation accuracy: 91.83 %%
Epoch 292 of 500 took 0.525s
training loss: 0.121398
validation loss: 0.418548
validation accuracy: 91.83 %%
Epoch 293 of 500 took 0.517s
training loss: 0.118490
validation loss: 0.417156
validation accuracy: 91.67 %%
Epoch 294 of 500 took 0.501s
training loss: 0.120477
validation loss: 0.415599
validation accuracy: 91.67 %%
Epoch 295 of 500 took 0.512s
training loss: 0.124490
validation loss: 0.414653
validation accuracy: 91.67 %%
Epoch 296 of 500 took 0.530s
training loss: 0.108862
validation loss: 0.416417
validation accuracy: 91.67 %%
Epoch 297 of 500 took 0.510s
training loss: 0.114767
validation loss: 0.418955
validation accuracy: 91.67 %%
Epoch 298 of 500 took 0.519s
training loss: 0.118689
validation loss: 0.418166
validation accuracy: 91.83 %%
Epoch 299 of 500 took 0.545s
training loss: 0.116837
validation loss: 0.419073
validation accuracy: 91.67 %%
Epoch 300 of 500 took 0.539s
training loss: 0.114567
validation loss: 0.418911
validation accuracy: 91.50 %%
Epoch 301 of 500 took 0.570s
training loss: 0.112654
validation loss: 0.421303
validation accuracy: 91.50 %%
Epoch 302 of 500 took 0.586s
training loss: 0.115934
validation loss: 0.420054
validation accuracy: 91.67 %%
Epoch 303 of 500 took 0.515s
training loss: 0.110273
validation loss: 0.422002
validation accuracy: 91.67 %%
Epoch 304 of 500 took 0.523s
training loss: 0.108423
validation loss: 0.425290
validation accuracy: 91.50 %%
Epoch 305 of 500 took 0.529s
training loss: 0.114260
validation loss: 0.425616
validation accuracy: 91.50 %%
Epoch 306 of 500 took 0.580s
training loss: 0.112111
validation loss: 0.426623
validation accuracy: 91.67 %%
Epoch 307 of 500 took 0.529s
training loss: 0.112699
validation loss: 0.426329
validation accuracy: 91.50 %%
Epoch 308 of 500 took 0.534s
training loss: 0.114372
validation loss: 0.422893
validation accuracy: 91.50 %%
Epoch 309 of 500 took 0.511s
training loss: 0.112895
validation loss: 0.421572
validation accuracy: 91.50 %%
Epoch 310 of 500 took 0.534s
training loss: 0.106459
validation loss: 0.422805
validation accuracy: 91.67 %%
Epoch 311 of 500 took 0.572s
training loss: 0.117973
validation loss: 0.423956
validation accuracy: 91.67 %%
Epoch 312 of 500 took 0.551s
training loss: 0.108974
validation loss: 0.425609
validation accuracy: 91.67 %%
Epoch 313 of 500 took 0.510s
training loss: 0.112757
validation loss: 0.423302
validation accuracy: 91.67 %%
Epoch 314 of 500 took 0.527s
training loss: 0.111562
validation loss: 0.423546
validation accuracy: 91.83 %%
Epoch 315 of 500 took 0.515s
training loss: 0.111179
validation loss: 0.426158
validation accuracy: 91.67 %%
Epoch 316 of 500 took 0.541s
training loss: 0.115734
validation loss: 0.426459
validation accuracy: 91.67 %%
Epoch 317 of 500 took 0.519s
training loss: 0.105782
validation loss: 0.426197
validation accuracy: 91.67 %%
Epoch 318 of 500 took 0.537s
training loss: 0.112187
validation loss: 0.426946
validation accuracy: 91.67 %%
Epoch 319 of 500 took 0.526s
training loss: 0.112756
validation loss: 0.427263
validation accuracy: 91.67 %%
Epoch 320 of 500 took 0.507s
training loss: 0.102225
validation loss: 0.431632
validation accuracy: 91.67 %%
Epoch 321 of 500 took 0.504s
training loss: 0.113250
validation loss: 0.432978
validation accuracy: 91.67 %%
Epoch 322 of 500 took 0.508s
training loss: 0.104368
validation loss: 0.431552
validation accuracy: 91.67 %%
Epoch 323 of 500 took 0.634s
training loss: 0.112587
validation loss: 0.429175
validation accuracy: 91.67 %%
Epoch 324 of 500 took 0.534s
training loss: 0.111486
validation loss: 0.430175
validation accuracy: 91.67 %%
Epoch 325 of 500 took 0.568s
training loss: 0.104865
validation loss: 0.433673
validation accuracy: 91.67 %%
Epoch 326 of 500 took 0.513s
training loss: 0.103743
validation loss: 0.435760
validation accuracy: 91.67 %%
Epoch 327 of 500 took 0.519s
training loss: 0.106913
validation loss: 0.433363
validation accuracy: 91.50 %%
Epoch 328 of 500 took 0.522s
training loss: 0.106342
validation loss: 0.430933
validation accuracy: 91.67 %%
Epoch 329 of 500 took 0.507s
training loss: 0.106703
validation loss: 0.429250
validation accuracy: 91.33 %%
Epoch 330 of 500 took 0.504s
training loss: 0.107703
validation loss: 0.430495
validation accuracy: 91.50 %%
Epoch 331 of 500 took 0.498s
training loss: 0.110239
validation loss: 0.433225
validation accuracy: 91.67 %%
Epoch 332 of 500 took 0.517s
training loss: 0.108738
validation loss: 0.433041
validation accuracy: 91.67 %%
Epoch 333 of 500 took 0.500s
training loss: 0.111082
validation loss: 0.432258
validation accuracy: 91.67 %%
Epoch 334 of 500 took 0.523s
training loss: 0.107563
validation loss: 0.431274
validation accuracy: 91.67 %%
Epoch 335 of 500 took 0.507s
training loss: 0.105387
validation loss: 0.429591
validation accuracy: 91.67 %%
Epoch 336 of 500 took 0.504s
training loss: 0.104253
validation loss: 0.431209
validation accuracy: 91.83 %%
Epoch 337 of 500 took 0.586s
training loss: 0.103887
validation loss: 0.434417
validation accuracy: 91.67 %%
Epoch 338 of 500 took 0.577s
training loss: 0.105163
validation loss: 0.436727
validation accuracy: 91.67 %%
Epoch 339 of 500 took 0.561s
training loss: 0.102775
validation loss: 0.437144
validation accuracy: 91.67 %%
Epoch 340 of 500 took 0.581s
training loss: 0.105939
validation loss: 0.438817
validation accuracy: 91.67 %%
Epoch 341 of 500 took 0.586s
training loss: 0.109516
validation loss: 0.440071
validation accuracy: 91.50 %%
Epoch 342 of 500 took 0.512s
training loss: 0.107572
validation loss: 0.438438
validation accuracy: 91.50 %%
Epoch 343 of 500 took 0.551s
training loss: 0.104647
validation loss: 0.437141
validation accuracy: 91.50 %%
Epoch 344 of 500 took 0.515s
training loss: 0.101967
validation loss: 0.437121
validation accuracy: 91.67 %%
Epoch 345 of 500 took 0.528s
training loss: 0.102350
validation loss: 0.440091
validation accuracy: 91.67 %%
Epoch 346 of 500 took 0.529s
training loss: 0.106894
validation loss: 0.442070
validation accuracy: 91.67 %%
Epoch 347 of 500 took 0.528s
training loss: 0.101618
validation loss: 0.442254
validation accuracy: 91.67 %%
Epoch 348 of 500 took 0.513s
training loss: 0.107960
validation loss: 0.438327
validation accuracy: 91.67 %%
Epoch 349 of 500 took 0.521s
training loss: 0.104171
validation loss: 0.437612
validation accuracy: 91.67 %%
Epoch 350 of 500 took 0.516s
training loss: 0.097367
validation loss: 0.442194
validation accuracy: 91.67 %%
Epoch 351 of 500 took 0.539s
training loss: 0.108259
validation loss: 0.440893
validation accuracy: 91.83 %%
Epoch 352 of 500 took 0.516s
training loss: 0.098119
validation loss: 0.441407
validation accuracy: 91.67 %%
Epoch 353 of 500 took 0.543s
training loss: 0.101273
validation loss: 0.440963
validation accuracy: 91.67 %%
Epoch 354 of 500 took 0.520s
training loss: 0.102387
validation loss: 0.441369
validation accuracy: 91.67 %%
Epoch 355 of 500 took 0.546s
training loss: 0.100373
validation loss: 0.442022
validation accuracy: 91.83 %%
Epoch 356 of 500 took 0.510s
training loss: 0.105401
validation loss: 0.442814
validation accuracy: 91.67 %%
Epoch 357 of 500 took 0.504s
training loss: 0.104517
validation loss: 0.440065
validation accuracy: 91.67 %%
Epoch 358 of 500 took 0.516s
training loss: 0.107570
validation loss: 0.439339
validation accuracy: 91.67 %%
Epoch 359 of 500 took 0.505s
training loss: 0.100327
validation loss: 0.443119
validation accuracy: 91.67 %%
Epoch 360 of 500 took 0.523s
training loss: 0.107022
validation loss: 0.445418
validation accuracy: 91.67 %%
Epoch 361 of 500 took 0.510s
training loss: 0.101770
validation loss: 0.444039
validation accuracy: 91.67 %%
Epoch 362 of 500 took 0.505s
training loss: 0.101237
validation loss: 0.443763
validation accuracy: 91.67 %%
Epoch 363 of 500 took 0.519s
training loss: 0.097788
validation loss: 0.444285
validation accuracy: 91.67 %%
Epoch 364 of 500 took 0.496s
training loss: 0.100630
validation loss: 0.444176
validation accuracy: 91.67 %%
Epoch 365 of 500 took 0.506s
training loss: 0.103064
validation loss: 0.443331
validation accuracy: 91.67 %%
Epoch 366 of 500 took 0.502s
training loss: 0.101692
validation loss: 0.444615
validation accuracy: 91.67 %%
Epoch 367 of 500 took 0.531s
training loss: 0.095892
validation loss: 0.449158
validation accuracy: 91.67 %%
Epoch 368 of 500 took 0.608s
training loss: 0.096963
validation loss: 0.450234
validation accuracy: 91.67 %%
Epoch 369 of 500 took 0.573s
training loss: 0.102659
validation loss: 0.446115
validation accuracy: 91.67 %%
Epoch 370 of 500 took 0.590s
training loss: 0.095891
validation loss: 0.448329
validation accuracy: 91.50 %%
Epoch 371 of 500 took 0.592s
training loss: 0.099817
validation loss: 0.452704
validation accuracy: 91.67 %%
Epoch 372 of 500 took 0.523s
training loss: 0.099222
validation loss: 0.454639
validation accuracy: 91.50 %%
Epoch 373 of 500 took 0.540s
training loss: 0.103786
validation loss: 0.453629
validation accuracy: 91.67 %%
Epoch 374 of 500 took 0.509s
training loss: 0.102217
validation loss: 0.452222
validation accuracy: 91.50 %%
Epoch 375 of 500 took 0.509s
training loss: 0.096869
validation loss: 0.452751
validation accuracy: 91.67 %%
Epoch 376 of 500 took 0.514s
training loss: 0.099671
validation loss: 0.451003
validation accuracy: 91.67 %%
Epoch 377 of 500 took 0.504s
training loss: 0.100581
validation loss: 0.449755
validation accuracy: 91.83 %%
Epoch 378 of 500 took 0.511s
training loss: 0.102720
validation loss: 0.449226
validation accuracy: 91.67 %%
Epoch 379 of 500 took 0.503s
training loss: 0.102073
validation loss: 0.450568
validation accuracy: 91.67 %%
Epoch 380 of 500 took 0.518s
training loss: 0.093670
validation loss: 0.452252
validation accuracy: 91.67 %%
Epoch 381 of 500 took 0.503s
training loss: 0.098529
validation loss: 0.451112
validation accuracy: 91.67 %%
Epoch 382 of 500 took 0.510s
training loss: 0.092224
validation loss: 0.453382
validation accuracy: 91.67 %%
Epoch 383 of 500 took 0.526s
training loss: 0.098685
validation loss: 0.454893
validation accuracy: 91.67 %%
Epoch 384 of 500 took 0.560s
training loss: 0.101828
validation loss: 0.454771
validation accuracy: 91.67 %%
Epoch 385 of 500 took 0.565s
training loss: 0.098287
validation loss: 0.454854
validation accuracy: 91.67 %%
Epoch 386 of 500 took 0.549s
training loss: 0.097364
validation loss: 0.456531
validation accuracy: 91.67 %%
Epoch 387 of 500 took 0.545s
training loss: 0.092238
validation loss: 0.458380
validation accuracy: 91.67 %%
Epoch 388 of 500 took 0.565s
training loss: 0.099652
validation loss: 0.458915
validation accuracy: 91.50 %%
Epoch 389 of 500 took 0.563s
training loss: 0.098059
validation loss: 0.456971
validation accuracy: 91.67 %%
Epoch 390 of 500 took 0.527s
training loss: 0.094568
validation loss: 0.456896
validation accuracy: 91.50 %%
Epoch 391 of 500 took 0.506s
training loss: 0.098770
validation loss: 0.457336
validation accuracy: 91.50 %%
Epoch 392 of 500 took 0.532s
training loss: 0.095801
validation loss: 0.456776
validation accuracy: 91.83 %%
Epoch 393 of 500 took 0.546s
training loss: 0.093626
validation loss: 0.458275
validation accuracy: 91.67 %%
Epoch 394 of 500 took 0.550s
training loss: 0.098596
validation loss: 0.458332
validation accuracy: 91.67 %%
Epoch 395 of 500 took 0.590s
training loss: 0.098164
validation loss: 0.458762
validation accuracy: 91.67 %%
Epoch 396 of 500 took 0.515s
training loss: 0.091681
validation loss: 0.460753
validation accuracy: 91.67 %%
Epoch 397 of 500 took 0.544s
training loss: 0.097967
validation loss: 0.464030
validation accuracy: 91.67 %%
Epoch 398 of 500 took 0.521s
training loss: 0.096328
validation loss: 0.464873
validation accuracy: 91.67 %%
Epoch 399 of 500 took 0.539s
training loss: 0.092246
validation loss: 0.462225
validation accuracy: 91.67 %%
Epoch 400 of 500 took 0.531s
training loss: 0.096577
validation loss: 0.460759
validation accuracy: 91.67 %%
Epoch 401 of 500 took 0.559s
training loss: 0.091564
validation loss: 0.462478
validation accuracy: 91.67 %%
Epoch 402 of 500 took 0.527s
training loss: 0.093332
validation loss: 0.461832
validation accuracy: 91.67 %%
Epoch 403 of 500 took 0.506s
training loss: 0.094001
validation loss: 0.462473
validation accuracy: 91.50 %%
Epoch 404 of 500 took 0.578s
training loss: 0.092078
validation loss: 0.465058
validation accuracy: 91.67 %%
Epoch 405 of 500 took 0.521s
training loss: 0.091831
validation loss: 0.464808
validation accuracy: 91.50 %%
Epoch 406 of 500 took 0.564s
training loss: 0.094271
validation loss: 0.463161
validation accuracy: 91.50 %%
Epoch 407 of 500 took 0.543s
training loss: 0.095988
validation loss: 0.462729
validation accuracy: 91.50 %%
Epoch 408 of 500 took 0.548s
training loss: 0.090120
validation loss: 0.464403
validation accuracy: 91.67 %%
Epoch 409 of 500 took 0.543s
training loss: 0.098736
validation loss: 0.464823
validation accuracy: 91.50 %%
Epoch 410 of 500 took 0.567s
training loss: 0.090225
validation loss: 0.465560
validation accuracy: 91.50 %%
Epoch 411 of 500 took 0.537s
training loss: 0.089716
validation loss: 0.461259
validation accuracy: 91.67 %%
Epoch 412 of 500 took 0.556s
training loss: 0.093358
validation loss: 0.462501
validation accuracy: 91.67 %%
Epoch 413 of 500 took 0.510s
training loss: 0.091310
validation loss: 0.463541
validation accuracy: 91.50 %%
Epoch 414 of 500 took 0.547s
training loss: 0.091233
validation loss: 0.464665
validation accuracy: 91.67 %%
Epoch 415 of 500 took 0.556s
training loss: 0.097118
validation loss: 0.461792
validation accuracy: 91.67 %%
Epoch 416 of 500 took 0.569s
training loss: 0.098389
validation loss: 0.462225
validation accuracy: 91.83 %%
Epoch 417 of 500 took 0.571s
training loss: 0.093560
validation loss: 0.463787
validation accuracy: 91.33 %%
Epoch 418 of 500 took 0.540s
training loss: 0.095032
validation loss: 0.462827
validation accuracy: 91.67 %%
Epoch 419 of 500 took 0.573s
training loss: 0.094116
validation loss: 0.465845
validation accuracy: 91.50 %%
Epoch 420 of 500 took 0.578s
training loss: 0.089167
validation loss: 0.467287
validation accuracy: 91.67 %%
Epoch 421 of 500 took 0.590s
training loss: 0.090164
validation loss: 0.467489
validation accuracy: 91.67 %%
Epoch 422 of 500 took 0.624s
training loss: 0.088922
validation loss: 0.465690
validation accuracy: 91.50 %%
Epoch 423 of 500 took 0.564s
training loss: 0.093394
validation loss: 0.464297
validation accuracy: 91.67 %%
Epoch 424 of 500 took 0.519s
training loss: 0.092953
validation loss: 0.464224
validation accuracy: 91.50 %%
Epoch 425 of 500 took 0.572s
training loss: 0.092648
validation loss: 0.466099
validation accuracy: 91.50 %%
Epoch 426 of 500 took 0.542s
training loss: 0.089321
validation loss: 0.468458
validation accuracy: 91.50 %%
Epoch 427 of 500 took 0.537s
training loss: 0.087487
validation loss: 0.470311
validation accuracy: 91.67 %%
Epoch 428 of 500 took 0.552s
training loss: 0.087772
validation loss: 0.469926
validation accuracy: 91.67 %%
Epoch 429 of 500 took 0.533s
training loss: 0.089466
validation loss: 0.466367
validation accuracy: 91.50 %%
Epoch 430 of 500 took 0.521s
training loss: 0.091164
validation loss: 0.467908
validation accuracy: 91.67 %%
Epoch 431 of 500 took 0.561s
training loss: 0.091671
validation loss: 0.468511
validation accuracy: 91.67 %%
Epoch 432 of 500 took 0.528s
training loss: 0.088325
validation loss: 0.470769
validation accuracy: 91.67 %%
Epoch 433 of 500 took 0.535s
training loss: 0.094575
validation loss: 0.466750
validation accuracy: 91.67 %%
Epoch 434 of 500 took 0.562s
training loss: 0.086203
validation loss: 0.465801
validation accuracy: 91.50 %%
Epoch 435 of 500 took 0.540s
training loss: 0.090701
validation loss: 0.466512
validation accuracy: 91.50 %%
Epoch 436 of 500 took 0.597s
training loss: 0.088922
validation loss: 0.470448
validation accuracy: 91.67 %%
Epoch 437 of 500 took 0.530s
training loss: 0.089456
validation loss: 0.474570
validation accuracy: 91.50 %%
Epoch 438 of 500 took 0.542s
training loss: 0.093599
validation loss: 0.472383
validation accuracy: 91.50 %%
Epoch 439 of 500 took 0.569s
training loss: 0.088055
validation loss: 0.471588
validation accuracy: 91.50 %%
Epoch 440 of 500 took 0.589s
training loss: 0.090465
validation loss: 0.473730
validation accuracy: 91.67 %%
Epoch 441 of 500 took 0.563s
training loss: 0.087227
validation loss: 0.479504
validation accuracy: 91.67 %%
Epoch 442 of 500 took 0.574s
training loss: 0.093528
validation loss: 0.478564
validation accuracy: 91.50 %%
Epoch 443 of 500 took 0.519s
training loss: 0.091817
validation loss: 0.470676
validation accuracy: 91.50 %%
Epoch 444 of 500 took 0.540s
training loss: 0.089917
validation loss: 0.466475
validation accuracy: 91.50 %%
Epoch 445 of 500 took 0.561s
training loss: 0.087898
validation loss: 0.471731
validation accuracy: 91.50 %%
Epoch 446 of 500 took 0.566s
training loss: 0.089354
validation loss: 0.477481
validation accuracy: 91.50 %%
Epoch 447 of 500 took 0.534s
training loss: 0.089637
validation loss: 0.475223
validation accuracy: 91.50 %%
Epoch 448 of 500 took 0.577s
training loss: 0.088660
validation loss: 0.475150
validation accuracy: 91.33 %%
Epoch 449 of 500 took 0.503s
training loss: 0.085992
validation loss: 0.476908
validation accuracy: 91.50 %%
Epoch 450 of 500 took 0.513s
training loss: 0.089980
validation loss: 0.475831
validation accuracy: 91.67 %%
Epoch 451 of 500 took 0.521s
training loss: 0.084162
validation loss: 0.476943
validation accuracy: 91.67 %%
Epoch 452 of 500 took 0.502s
training loss: 0.087743
validation loss: 0.475777
validation accuracy: 91.67 %%
Epoch 453 of 500 took 0.507s
training loss: 0.088418
validation loss: 0.476291
validation accuracy: 91.50 %%
Epoch 454 of 500 took 0.511s
training loss: 0.087290
validation loss: 0.479921
validation accuracy: 91.17 %%
Epoch 455 of 500 took 0.505s
training loss: 0.089352
validation loss: 0.478292
validation accuracy: 91.33 %%
Epoch 456 of 500 took 0.504s
training loss: 0.095240
validation loss: 0.477826
validation accuracy: 91.33 %%
Epoch 457 of 500 took 0.503s
training loss: 0.087969
validation loss: 0.476403
validation accuracy: 91.50 %%
Epoch 458 of 500 took 0.501s
training loss: 0.090563
validation loss: 0.477968
validation accuracy: 91.50 %%
Epoch 459 of 500 took 0.511s
training loss: 0.085327
validation loss: 0.479293
validation accuracy: 91.33 %%
Epoch 460 of 500 took 0.515s
training loss: 0.089703
validation loss: 0.481388
validation accuracy: 91.50 %%
Epoch 461 of 500 took 0.517s
training loss: 0.095642
validation loss: 0.475863
validation accuracy: 91.33 %%
Epoch 462 of 500 took 0.497s
training loss: 0.083026
validation loss: 0.473741
validation accuracy: 91.50 %%
Epoch 463 of 500 took 0.519s
training loss: 0.085041
validation loss: 0.479369
validation accuracy: 91.50 %%
Epoch 464 of 500 took 0.511s
training loss: 0.084955
validation loss: 0.480957
validation accuracy: 91.50 %%
Epoch 465 of 500 took 0.501s
training loss: 0.086455
validation loss: 0.483783
validation accuracy: 91.33 %%
Epoch 466 of 500 took 0.492s
training loss: 0.090641
validation loss: 0.484308
validation accuracy: 91.50 %%
Epoch 467 of 500 took 0.504s
training loss: 0.086076
validation loss: 0.479515
validation accuracy: 91.33 %%
Epoch 468 of 500 took 0.518s
training loss: 0.087550
validation loss: 0.479509
validation accuracy: 91.33 %%
Epoch 469 of 500 took 0.511s
training loss: 0.088354
validation loss: 0.481809
validation accuracy: 91.33 %%
Epoch 470 of 500 took 0.499s
training loss: 0.084638
validation loss: 0.482032
validation accuracy: 91.33 %%
Epoch 471 of 500 took 0.508s
training loss: 0.085921
validation loss: 0.480937
validation accuracy: 91.33 %%
Epoch 472 of 500 took 0.547s
training loss: 0.085513
validation loss: 0.482076
validation accuracy: 91.33 %%
Epoch 473 of 500 took 0.601s
training loss: 0.083161
validation loss: 0.489134
validation accuracy: 91.50 %%
Epoch 474 of 500 took 0.598s
training loss: 0.090308
validation loss: 0.484985
validation accuracy: 91.33 %%
Epoch 475 of 500 took 0.547s
training loss: 0.086438
validation loss: 0.480717
validation accuracy: 91.17 %%
Epoch 476 of 500 took 0.622s
training loss: 0.081136
validation loss: 0.486286
validation accuracy: 91.33 %%
Epoch 477 of 500 took 0.603s
training loss: 0.089759
validation loss: 0.485286
validation accuracy: 91.17 %%
Epoch 478 of 500 took 0.564s
training loss: 0.085017
validation loss: 0.485951
validation accuracy: 91.17 %%
Epoch 479 of 500 took 0.597s
training loss: 0.082980
validation loss: 0.486202
validation accuracy: 91.33 %%
Epoch 480 of 500 took 0.590s
training loss: 0.083761
validation loss: 0.485011
validation accuracy: 91.33 %%
Epoch 481 of 500 took 0.540s
training loss: 0.087234
validation loss: 0.486708
validation accuracy: 91.67 %%
Epoch 482 of 500 took 0.539s
training loss: 0.083104
validation loss: 0.491138
validation accuracy: 91.50 %%
Epoch 483 of 500 took 0.534s
training loss: 0.085939
validation loss: 0.490389
validation accuracy: 91.50 %%
Epoch 484 of 500 took 0.563s
training loss: 0.085987
validation loss: 0.489229
validation accuracy: 91.17 %%
Epoch 485 of 500 took 0.575s
training loss: 0.088535
validation loss: 0.488268
validation accuracy: 91.33 %%
Epoch 486 of 500 took 0.503s
training loss: 0.083276
validation loss: 0.486258
validation accuracy: 91.50 %%
Epoch 487 of 500 took 0.505s
training loss: 0.086571
validation loss: 0.485124
validation accuracy: 91.50 %%
Epoch 488 of 500 took 0.544s
training loss: 0.085009
validation loss: 0.488071
validation accuracy: 91.33 %%
Epoch 489 of 500 took 0.549s
training loss: 0.082974
validation loss: 0.489233
validation accuracy: 91.50 %%
Epoch 490 of 500 took 0.517s
training loss: 0.081769
validation loss: 0.491784
validation accuracy: 91.67 %%
Epoch 491 of 500 took 0.507s
training loss: 0.081230
validation loss: 0.491790
validation accuracy: 91.17 %%
Epoch 492 of 500 took 0.525s
training loss: 0.087636
validation loss: 0.491618
validation accuracy: 91.33 %%
Epoch 493 of 500 took 0.512s
training loss: 0.077988
validation loss: 0.492815
validation accuracy: 91.50 %%
Epoch 494 of 500 took 0.510s
training loss: 0.088125
validation loss: 0.492982
validation accuracy: 91.33 %%
Epoch 495 of 500 took 0.527s
training loss: 0.084025
validation loss: 0.492356
validation accuracy: 91.33 %%
Epoch 496 of 500 took 0.518s
training loss: 0.081907
validation loss: 0.495231
validation accuracy: 91.33 %%
Epoch 497 of 500 took 0.524s
training loss: 0.081390
validation loss: 0.496492
validation accuracy: 91.17 %%
Epoch 498 of 500 took 0.554s
training loss: 0.082482
validation loss: 0.495703
validation accuracy: 91.17 %%
Epoch 499 of 500 took 0.547s
training loss: 0.082908
validation loss: 0.493745
validation accuracy: 90.83 %%
Epoch 500 of 500 took 0.530s
training loss: 0.082753
validation loss: 0.496571
validation accuracy: 91.00 %%
Content source: dikien/break-captcha
Similar notebooks: