In [1]:
from keras.layers import Dense, Dropout, Input
from keras.models import Model, Sequential
from keras.optimizers import Adam
import salty
from sklearn import preprocessing
from keras import regularizers
import matplotlib.pyplot as plt
import numpy as np
from keras.callbacks import EarlyStopping
from sklearn.metrics import mean_squared_error
import numpy as np
import pandas as pd
import time
import math
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential, Model, model_from_json
from keras.layers import Dense, Dropout, SpatialDropout2D, Flatten, Activation, merge, Input, Masking, BatchNormalization
from keras.layers.core import Lambda
from keras.layers.convolutional import Convolution2D, MaxPooling2D, AveragePooling2D
from keras.layers.pooling import GlobalAveragePooling2D
from keras.layers.normalization import BatchNormalization
from keras.layers.advanced_activations import PReLU, ELU
from keras.optimizers import Adam, Nadam, RMSprop, SGD
from keras.callbacks import ModelCheckpoint, EarlyStopping, Callback, LearningRateScheduler
from keras.regularizers import l2, l1
from keras.utils import np_utils
from keras import backend as K
import tensorflow as tf
from math import sqrt
import scipy
from sklearn.model_selection import StratifiedKFold, KFold, StratifiedShuffleSplit, ShuffleSplit
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve, auc, confusion_matrix,mean_squared_error,r2_score
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
c:\users\james\miniconda3\envs\research\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
In [2]:
devmodel = salty.aggregate_data(['viscosity','thermal_conductivity','cpt']) # other option is viscosity
X_train, Y_train, X_test, Y_test = salty.devmodel_to_array\
(devmodel, train_fraction=0.8)
In [3]:
import pandas as pd
data = pd.read_csv("C://users/james/miniconda3/envs/research/lib/site-packages/salty/data/thermal_conductivity_premodel.csv")
data.head(5)
Out[3]:
name-anion
smiles-anion
steiger-anion
Marsili Partial Charges-anion
BalabanJ-anion
BertzCT-anion
Ipc-anion
HallKierAlpha-anion
Kappa1-anion
Kappa2-anion
...
VSA_EState5-cation
VSA_EState6-cation
VSA_EState7-cation
VSA_EState8-cation
VSA_EState9-cation
VSA_EState10-cation
Topliss fragments-cation
Temperature, K
Pressure, kPa
Thermal conductivity, W/m/K
0
tetrafluoroborate
[B-](F)(F)(F)F
777.0
777.0
3.023716
19.119415
3.60964
-0.215065
4.784935
0.877186
...
0.0
0.0
0.0
4.358039
20.141961
0.0
777.0
294.2
100.0
0.164
1
tetrafluoroborate
[B-](F)(F)(F)F
777.0
777.0
3.023716
19.119415
3.60964
-0.215065
4.784935
0.877186
...
0.0
0.0
0.0
4.358039
20.141961
0.0
777.0
294.2
10000.0
0.165
2
tetrafluoroborate
[B-](F)(F)(F)F
777.0
777.0
3.023716
19.119415
3.60964
-0.215065
4.784935
0.877186
...
0.0
0.0
0.0
4.358039
20.141961
0.0
777.0
294.2
20000.0
0.167
3
tetrafluoroborate
[B-](F)(F)(F)F
777.0
777.0
3.023716
19.119415
3.60964
-0.215065
4.784935
0.877186
...
0.0
0.0
0.0
4.358039
20.141961
0.0
777.0
314.3
100.0
0.163
4
tetrafluoroborate
[B-](F)(F)(F)F
777.0
777.0
3.023716
19.119415
3.60964
-0.215065
4.784935
0.877186
...
0.0
0.0
0.0
4.358039
20.141961
0.0
777.0
314.3
10000.0
0.164
5 rows × 195 columns
In [4]:
data = pd.read_csv("C://users/james/miniconda3/envs/research/lib/site-packages/salty/data/electrical_conductivity_premodel.csv")
data.head(5)
Out[4]:
name-anion
smiles-anion
steiger-anion
Marsili Partial Charges-anion
BalabanJ-anion
BertzCT-anion
Ipc-anion
HallKierAlpha-anion
Kappa1-anion
Kappa2-anion
...
VSA_EState6-cation
VSA_EState7-cation
VSA_EState8-cation
VSA_EState9-cation
VSA_EState10-cation
Topliss fragments-cation
Temperature, K
Pressure, kPa
Frequency, MHz
Electrical conductivity, S/m
0
bis(trifluoromethylsulfonyl)imide
C(F)(F)(F)S(=O)(=O)[N-]S(=O)(=O)C(F)(F)F
777.0
777.0
5.284513
384.732803
484.028247
-0.56
14.44
3.482071
...
0.0
0.0
4.276944
14.223056
0.0
777.0
293.10
100.0
0.003
0.365022
1
dicyanamide
C(#N)[N-]C#N
777.0
777.0
2.857272
70.046636
11.245112
-1.22
3.78
2.780000
...
0.0
0.0
4.276944
14.223056
0.0
777.0
273.15
100.0
0.010
0.383000
2
dicyanamide
C(#N)[N-]C#N
777.0
777.0
2.857272
70.046636
11.245112
-1.22
3.78
2.780000
...
0.0
0.0
4.276944
14.223056
0.0
777.0
283.15
100.0
0.010
0.636000
3
dicyanamide
C(#N)[N-]C#N
777.0
777.0
2.857272
70.046636
11.245112
-1.22
3.78
2.780000
...
0.0
0.0
4.276944
14.223056
0.0
777.0
293.15
100.0
0.010
0.972000
4
dicyanamide
C(#N)[N-]C#N
777.0
777.0
2.857272
70.046636
11.245112
-1.22
3.78
2.780000
...
0.0
0.0
4.276944
14.223056
0.0
777.0
298.15
100.0
0.010
1.171000
5 rows × 196 columns
Check to see that the dimensions make sense:
In [5]:
print("X_train.shape: ", X_train.shape)
print("Y_train.shape: ", Y_train.shape)
print("X_test.shape: ", X_test.shape)
print("Y_test.shape: ", Y_test.shape)
X_train.shape: (505, 190)
Y_train.shape: (505, 3)
X_test.shape: (127, 190)
Y_test.shape: (127, 3)
Functional API is used over Sequential model for multi-input and/or multi-output models. Sequential is for single-input, single-output.
"With the functional API, it is easy to reuse trained models: you can treat any model as if it were a layer, by calling it on a tensor. Note that by calling a model you aren't just reusing the architecture of the model, you are also reusing its weights."
In the code below, there is one layer with 150 nodes, and one output layer with 3 nodes. A single layer is called dense. A dense layer connects every node in the input to every node in the output. In a dense layer here, you specify the output dimensions.
Dropout is a method of regularization to prevent overfitting. These neurons are only dropped during training. In the end they are all there. Specifies fraction of neurons to drop during each epoch. One way to consider this is that the neurons weights are set to 0 during the epoch.
Layers are basically functions that contain an internal state called weights that can be trainable or not. When we fit (train) a model, we are changing the weights.
In [116]:
early = EarlyStopping(monitor='loss', patience=50, verbose=2)
mlp_input = Input(shape=(int(X_train.shape[1]),)) #returns an input tensor. Special because you just specify the shape.
#Use l2 regularization instead of dropout. Both are methods of regularization (preventing overfitting)
#l2 just seems to work better.
x = Dense(100, kernel_initializer='glorot_normal', activation='relu',kernel_regularizer=regularizers.l2(0.01))(mlp_input)
#x = Dropout(0.5)(x)
x = Dense(3, activation='linear')(x)
model = Model(mlp_input, x) #input = mlp_input, output = x.
model.compile(optimizer="Adam", loss="mean_squared_error", metrics=['mse'])
history = model.fit(X_train,Y_train, validation_split = 0.2, epochs=1000, verbose=0, callbacks=[early])
scores = model.evaluate(X_test, Y_test, verbose=2)
print(model.summary())
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
Epoch 00443: early stopping
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_71 (InputLayer) (None, 190) 0
_________________________________________________________________
dense_161 (Dense) (None, 100) 19100
_________________________________________________________________
dense_162 (Dense) (None, 3) 303
=================================================================
Total params: 19,403
Trainable params: 19,403
Non-trainable params: 0
_________________________________________________________________
None
mean_squared_error: 4.52%
In [117]:
print(history.history.keys())
plt.plot(history.history['mean_squared_error'])
plt.plot(history.history['val_mean_squared_error'])
plt.title('model mse')
plt.ylabel('mse')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
dict_keys(['val_loss', 'val_mean_squared_error', 'loss', 'mean_squared_error'])
GridSearch examines each combination in param_grid to find the best combination. Below is a simple test that tests 10 and 20 epochs. You can also test different models.
In addition to GridSearch, there is also RandomSearch and model-based search. SKLearn has RandomSearch.
In [51]:
def create_model(optimizer = 'Adam', init = 'glorot_normal'):
mlp_input = Input(shape=(int(X_train.shape[1]),)) #returns an input tensor.
#layer instance is called on tensor, and returns tensor.
x = Dense(150, kernel_initializer='glorot_normal', activation="relu")(mlp_input)
x = Dropout(0.5)(x)
x = Dense(3,activation = 'linear')(x)
model = Model(mlp_input, x)
model.compile(optimizer="Adam",
loss="mean_squared_error",
metrics=['accuracy'])
return model
model = KerasClassifier(build_fn=create_model, batch_size=10, verbose=2)
# Write this to test different optimizers:
# optimizer = ['SGD', 'RMSprop', 'Adagrad', 'Adadelta', 'Adam', 'Adamax', 'Nadam']
# param_grid = dict(optimizer=optimizer)
param_grid = dict(epochs=[10,20])
grid = GridSearchCV(estimator=model, param_grid=param_grid)
grid_result = grid.fit(X_train, Y_train)
Epoch 1/10
- 4s - loss: 1.7815 - acc: 0.8964
Epoch 2/10
- 3s - loss: 0.7401 - acc: 0.9789
Epoch 3/10
- 3s - loss: 0.4684 - acc: 0.9886
Epoch 4/10
- 5s - loss: 0.3282 - acc: 0.9903
Epoch 5/10
- 5s - loss: 0.2741 - acc: 0.9918
Epoch 6/10
- 3s - loss: 0.2187 - acc: 0.9935
Epoch 7/10
- 4s - loss: 0.1503 - acc: 0.9931
Epoch 8/10
- 3s - loss: 0.1236 - acc: 0.9940
Epoch 9/10
- 3s - loss: 0.1143 - acc: 0.9943
Epoch 10/10
- 3s - loss: 0.0596 - acc: 0.9937
Epoch 1/10
- 4s - loss: 1.5587 - acc: 0.9255
Epoch 2/10
- 4s - loss: 0.8766 - acc: 0.9841
Epoch 3/10
- 4s - loss: 0.5288 - acc: 0.9894
Epoch 4/10
- 4s - loss: 0.4506 - acc: 0.9914
Epoch 5/10
- 4s - loss: 0.2765 - acc: 0.9915
Epoch 6/10
- 4s - loss: 0.2011 - acc: 0.9918
Epoch 7/10
- 4s - loss: 0.1709 - acc: 0.9931
Epoch 8/10
- 4s - loss: 0.1370 - acc: 0.9931
Epoch 9/10
- 4s - loss: 0.0912 - acc: 0.9943
Epoch 10/10
- 4s - loss: 0.0659 - acc: 0.9937
Epoch 1/10
- 4s - loss: 1.6541 - acc: 0.9170
Epoch 2/10
- 4s - loss: 0.7094 - acc: 0.9846
Epoch 3/10
- 4s - loss: 0.4675 - acc: 0.9905
Epoch 4/10
- 4s - loss: 0.3634 - acc: 0.9917
Epoch 5/10
- 4s - loss: 0.3608 - acc: 0.9920
Epoch 6/10
- 4s - loss: 0.3201 - acc: 0.9939
Epoch 7/10
- 4s - loss: 0.1733 - acc: 0.9942
Epoch 8/10
- 4s - loss: 0.1333 - acc: 0.9944
Epoch 9/10
- 4s - loss: 0.0927 - acc: 0.9926
Epoch 10/10
- 4s - loss: 0.0963 - acc: 0.9934
Epoch 1/20
- 5s - loss: 1.8606 - acc: 0.9171
Epoch 2/20
- 4s - loss: 0.7076 - acc: 0.9842
Epoch 3/20
- 4s - loss: 0.5152 - acc: 0.9899
Epoch 4/20
- 4s - loss: 0.3887 - acc: 0.9904
Epoch 5/20
- 4s - loss: 0.3014 - acc: 0.9927
Epoch 6/20
- 4s - loss: 0.1754 - acc: 0.9935
Epoch 7/20
- 4s - loss: 0.1390 - acc: 0.9935
Epoch 8/20
- 4s - loss: 0.1043 - acc: 0.9935
Epoch 9/20
- 4s - loss: 0.0692 - acc: 0.9946
Epoch 10/20
- 5s - loss: 0.0489 - acc: 0.9939
Epoch 11/20
- 6s - loss: 0.0455 - acc: 0.9923
Epoch 12/20
- 4s - loss: 0.0584 - acc: 0.9915
Epoch 13/20
- 4s - loss: 0.0375 - acc: 0.9912
Epoch 14/20
- 4s - loss: 0.0619 - acc: 0.9911
Epoch 15/20
- 3s - loss: 0.1357 - acc: 0.9923
Epoch 16/20
- 3s - loss: 0.0392 - acc: 0.9923
Epoch 17/20
- 3s - loss: 0.0357 - acc: 0.9912
Epoch 18/20
- 4s - loss: 0.0672 - acc: 0.9920
Epoch 19/20
- 4s - loss: 0.0432 - acc: 0.9912
Epoch 20/20
- 4s - loss: 0.2015 - acc: 0.9906
Epoch 1/20
- 5s - loss: 1.6914 - acc: 0.8996
Epoch 2/20
- 4s - loss: 0.6651 - acc: 0.9860
Epoch 3/20
- 4s - loss: 0.5726 - acc: 0.9905
Epoch 4/20
- 4s - loss: 0.3806 - acc: 0.9934
Epoch 5/20
- 5s - loss: 0.2866 - acc: 0.9919
Epoch 6/20
- 5s - loss: 0.1943 - acc: 0.9938
Epoch 7/20
- 4s - loss: 0.1491 - acc: 0.9943
Epoch 8/20
- 4s - loss: 0.1331 - acc: 0.9941
Epoch 9/20
- 4s - loss: 0.0694 - acc: 0.9945
Epoch 10/20
- 4s - loss: 0.0552 - acc: 0.9942
Epoch 11/20
- 4s - loss: 0.0350 - acc: 0.9935
Epoch 12/20
- 4s - loss: 0.0437 - acc: 0.9928
Epoch 13/20
- 4s - loss: 0.0532 - acc: 0.9914
Epoch 14/20
- 4s - loss: 0.0565 - acc: 0.9919
Epoch 15/20
- 4s - loss: 0.1093 - acc: 0.9914
Epoch 16/20
- 4s - loss: 0.0462 - acc: 0.9921
Epoch 17/20
- 4s - loss: 0.0475 - acc: 0.9919
Epoch 18/20
- 4s - loss: 0.0631 - acc: 0.9917
Epoch 19/20
- 4s - loss: 0.0423 - acc: 0.9916
Epoch 20/20
- 4s - loss: 0.0549 - acc: 0.9907
Epoch 1/20
- 4s - loss: 1.6500 - acc: 0.9150
Epoch 2/20
- 4s - loss: 0.6186 - acc: 0.9892
Epoch 3/20
- 4s - loss: 0.4398 - acc: 0.9913
Epoch 4/20
- 4s - loss: 0.3348 - acc: 0.9923
Epoch 5/20
- 4s - loss: 0.2318 - acc: 0.9930
Epoch 6/20
- 4s - loss: 0.2220 - acc: 0.9934
Epoch 7/20
- 4s - loss: 0.1528 - acc: 0.9937
Epoch 8/20
- 4s - loss: 0.1050 - acc: 0.9945
Epoch 9/20
- 4s - loss: 0.0806 - acc: 0.9937
Epoch 10/20
- 4s - loss: 0.0774 - acc: 0.9938
Epoch 11/20
- 4s - loss: 0.0647 - acc: 0.9939
Epoch 12/20
- 4s - loss: 0.0425 - acc: 0.9937
Epoch 13/20
- 4s - loss: 0.0336 - acc: 0.9924
Epoch 14/20
- 4s - loss: 0.0609 - acc: 0.9915
Epoch 15/20
- 4s - loss: 0.0803 - acc: 0.9915
Epoch 16/20
- 4s - loss: 0.0765 - acc: 0.9912
Epoch 17/20
- 4s - loss: 0.4818 - acc: 0.9913
Epoch 18/20
- 4s - loss: 0.0977 - acc: 0.9923
Epoch 19/20
- 4s - loss: 0.2976 - acc: 0.9926
Epoch 20/20
- 4s - loss: 0.1402 - acc: 0.9923
Epoch 1/10
- 7s - loss: 1.4575 - acc: 0.9359
Epoch 2/10
- 6s - loss: 0.5951 - acc: 0.9890
Epoch 3/10
- 6s - loss: 0.3381 - acc: 0.9921
Epoch 4/10
- 6s - loss: 0.2294 - acc: 0.9927
Epoch 5/10
- 6s - loss: 0.1438 - acc: 0.9944
Epoch 6/10
- 6s - loss: 0.0896 - acc: 0.9942
Epoch 7/10
- 6s - loss: 0.0762 - acc: 0.9940
Epoch 8/10
- 6s - loss: 0.0498 - acc: 0.9926
Epoch 9/10
- 7s - loss: 0.0457 - acc: 0.9912
Epoch 10/10
- 10s - loss: 0.0723 - acc: 0.9908
In [6]:
# summarize results
print("Best: %f using %s" % (grid_result.best_score_, grid_result.best_params_))
means = grid_result.cv_results_['mean_test_score']
stds = grid_result.cv_results_['std_test_score']
params = grid_result.cv_results_['params']
for mean, stdev, param in zip(means, stds, params):
print("%f (%f) with: %r" % (mean, stdev, param))
Best: 0.996016 using {'epochs': 10}
0.996016 (0.002440) with: {'epochs': 10}
0.996016 (0.002440) with: {'epochs': 20}
In [86]:
early = EarlyStopping(monitor='loss', patience=50, verbose=2)
seed = 7
np.random.seed(seed)
kf = KFold(n_splits=5, shuffle=True, random_state=seed)
cvscores = []
for train, test in kf.split(X_train, Y_train):
# create model
# mlp_input = Input(shape=(int(X_train.shape[1]),))
# x = Dense(150, kernel_initializer='glorot_normal', activation="relu")(mlp_input)
# x = BatchNormalization()(x)
# x = Dropout(0.5)(x)
# x = Dense(3,activation = 'linear')(x)
# model = Model(mlp_input, x)
# model.compile(optimizer="Adam",
# loss="mean_squared_error",
# metrics=['accuracy', 'mse'])
# # Fit the model. Note that the train and test sets are different for each split. Each fraction will used as the validation
# #set eventually.
# model.fit(X_train[train], Y_train[train], validation_data=(X_train[test],Y_train[test]),epochs=100,
# callbacks = [early], batch_size=10, verbose=0)
# # evaluate the model
# scores = model.evaluate(X_train[test], Y_train[test], verbose=0)
# cvscores.append(scores[1] * 100)
mlp_input = Input(shape=(int(X_train.shape[1]),)) #returns an input tensor. Special because you just specify the shape.
x = Dense(100, kernel_initializer='glorot_normal', activation='relu', kernel_regularizer = regularizers.l2(0.01))(mlp_input)
#x = Dropout(0.5)(x)
x = Dense(3, activation='linear')(x)
model = Model(mlp_input, x) #input = mlp_input, output = x.
model.compile(optimizer="Adam", loss="mean_squared_error", metrics=['mse'])
model.fit(X_train[train],Y_train[train],validation_data=(X_train[test],Y_train[test]), callbacks=[early], epochs=100)
scores = model.evaluate(X_train[test], Y_train[test], verbose=0)
cvscores.append(scores[1] * 100)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
Train on 404 samples, validate on 101 samples
Epoch 1/100
404/404 [==============================] - 2s 5ms/step - loss: 14.7524 - mean_squared_error: 13.7587 - val_loss: 8.8611 - val_mean_squared_error: 7.9012
Epoch 2/100
404/404 [==============================] - 0s 187us/step - loss: 5.3727 - mean_squared_error: 4.4312 - val_loss: 2.4555 - val_mean_squared_error: 1.5321
Epoch 3/100
404/404 [==============================] - 0s 220us/step - loss: 1.7525 - mean_squared_error: 0.8412 - val_loss: 1.4791 - val_mean_squared_error: 0.5843
Epoch 4/100
404/404 [==============================] - 0s 201us/step - loss: 1.3455 - mean_squared_error: 0.4681 - val_loss: 1.1155 - val_mean_squared_error: 0.2612
Epoch 5/100
404/404 [==============================] - 0s 201us/step - loss: 1.0081 - mean_squared_error: 0.1713 - val_loss: 0.9583 - val_mean_squared_error: 0.1412
Epoch 6/100
404/404 [==============================] - 0s 198us/step - loss: 0.9159 - mean_squared_error: 0.1118 - val_loss: 0.8810 - val_mean_squared_error: 0.0915
Epoch 7/100
404/404 [==============================] - 0s 198us/step - loss: 0.8549 - mean_squared_error: 0.0761 - val_loss: 0.8388 - val_mean_squared_error: 0.0731
Epoch 8/100
404/404 [==============================] - 0s 178us/step - loss: 0.8228 - mean_squared_error: 0.0674 - val_loss: 0.8138 - val_mean_squared_error: 0.0707
Epoch 9/100
404/404 [==============================] - 0s 213us/step - loss: 0.7892 - mean_squared_error: 0.0555 - val_loss: 0.7799 - val_mean_squared_error: 0.0569
Epoch 10/100
404/404 [==============================] - 0s 216us/step - loss: 0.7644 - mean_squared_error: 0.0497 - val_loss: 0.7546 - val_mean_squared_error: 0.0498
Epoch 11/100
404/404 [==============================] - 0s 196us/step - loss: 0.7455 - mean_squared_error: 0.0484 - val_loss: 0.7342 - val_mean_squared_error: 0.0466
Epoch 12/100
404/404 [==============================] - 0s 188us/step - loss: 0.7247 - mean_squared_error: 0.0443 - val_loss: 0.7096 - val_mean_squared_error: 0.0381
Epoch 13/100
404/404 [==============================] - 0s 196us/step - loss: 0.7014 - mean_squared_error: 0.0369 - val_loss: 0.6897 - val_mean_squared_error: 0.0336
Epoch 14/100
404/404 [==============================] - 0s 186us/step - loss: 0.6810 - mean_squared_error: 0.0316 - val_loss: 0.6723 - val_mean_squared_error: 0.0311
Epoch 15/100
404/404 [==============================] - 0s 211us/step - loss: 0.6661 - mean_squared_error: 0.0314 - val_loss: 0.6522 - val_mean_squared_error: 0.0254
Epoch 16/100
404/404 [==============================] - 0s 215us/step - loss: 0.6479 - mean_squared_error: 0.0274 - val_loss: 0.6444 - val_mean_squared_error: 0.0317
Epoch 17/100
404/404 [==============================] - 0s 176us/step - loss: 0.6415 - mean_squared_error: 0.0350 - val_loss: 0.6258 - val_mean_squared_error: 0.0270
Epoch 18/100
404/404 [==============================] - 0s 178us/step - loss: 0.6232 - mean_squared_error: 0.0303 - val_loss: 0.6068 - val_mean_squared_error: 0.0213
Epoch 19/100
404/404 [==============================] - 0s 218us/step - loss: 0.5998 - mean_squared_error: 0.0202 - val_loss: 0.5912 - val_mean_squared_error: 0.0190
Epoch 20/100
404/404 [==============================] - 0s 198us/step - loss: 0.5857 - mean_squared_error: 0.0194 - val_loss: 0.5866 - val_mean_squared_error: 0.0274
Epoch 21/100
404/404 [==============================] - 0s 188us/step - loss: 0.5758 - mean_squared_error: 0.0222 - val_loss: 0.5645 - val_mean_squared_error: 0.0181
Epoch 22/100
404/404 [==============================] - 0s 193us/step - loss: 0.5606 - mean_squared_error: 0.0200 - val_loss: 0.5489 - val_mean_squared_error: 0.0152
Epoch 23/100
404/404 [==============================] - 0s 193us/step - loss: 0.5436 - mean_squared_error: 0.0154 - val_loss: 0.5390 - val_mean_squared_error: 0.0176
Epoch 24/100
404/404 [==============================] - 0s 181us/step - loss: 0.5309 - mean_squared_error: 0.0150 - val_loss: 0.5224 - val_mean_squared_error: 0.0131
Epoch 25/100
404/404 [==============================] - 0s 178us/step - loss: 0.5162 - mean_squared_error: 0.0124 - val_loss: 0.5103 - val_mean_squared_error: 0.0131
Epoch 26/100
404/404 [==============================] - ETA: 0s - loss: 0.5053 - mean_squared_error: 0.01 - 0s 196us/step - loss: 0.5046 - mean_squared_error: 0.0127 - val_loss: 0.4998 - val_mean_squared_error: 0.0144
Epoch 27/100
404/404 [==============================] - 0s 178us/step - loss: 0.4938 - mean_squared_error: 0.0136 - val_loss: 0.4868 - val_mean_squared_error: 0.0130
Epoch 28/100
404/404 [==============================] - 0s 191us/step - loss: 0.4821 - mean_squared_error: 0.0134 - val_loss: 0.4727 - val_mean_squared_error: 0.0102
Epoch 29/100
404/404 [==============================] - ETA: 0s - loss: 0.4690 - mean_squared_error: 0.01 - 0s 208us/step - loss: 0.4679 - mean_squared_error: 0.0104 - val_loss: 0.4628 - val_mean_squared_error: 0.0114
Epoch 30/100
404/404 [==============================] - 0s 201us/step - loss: 0.4574 - mean_squared_error: 0.0110 - val_loss: 0.4521 - val_mean_squared_error: 0.0116
Epoch 31/100
404/404 [==============================] - 0s 161us/step - loss: 0.4459 - mean_squared_error: 0.0103 - val_loss: 0.4390 - val_mean_squared_error: 0.0093
Epoch 32/100
404/404 [==============================] - 0s 191us/step - loss: 0.4341 - mean_squared_error: 0.0092 - val_loss: 0.4279 - val_mean_squared_error: 0.0088
Epoch 33/100
404/404 [==============================] - 0s 178us/step - loss: 0.4239 - mean_squared_error: 0.0093 - val_loss: 0.4173 - val_mean_squared_error: 0.0084
Epoch 34/100
404/404 [==============================] - 0s 193us/step - loss: 0.4128 - mean_squared_error: 0.0084 - val_loss: 0.4068 - val_mean_squared_error: 0.0080
Epoch 35/100
404/404 [==============================] - 0s 183us/step - loss: 0.4033 - mean_squared_error: 0.0089 - val_loss: 0.3970 - val_mean_squared_error: 0.0080
Epoch 36/100
404/404 [==============================] - 0s 193us/step - loss: 0.3929 - mean_squared_error: 0.0083 - val_loss: 0.3870 - val_mean_squared_error: 0.0078
Epoch 37/100
404/404 [==============================] - 0s 161us/step - loss: 0.3839 - mean_squared_error: 0.0089 - val_loss: 0.3769 - val_mean_squared_error: 0.0070
Epoch 38/100
404/404 [==============================] - 0s 191us/step - loss: 0.3754 - mean_squared_error: 0.0098 - val_loss: 0.3708 - val_mean_squared_error: 0.0102
Epoch 39/100
404/404 [==============================] - 0s 159us/step - loss: 0.3676 - mean_squared_error: 0.0110 - val_loss: 0.3596 - val_mean_squared_error: 0.0079
Epoch 40/100
404/404 [==============================] - 0s 161us/step - loss: 0.3601 - mean_squared_error: 0.0124 - val_loss: 0.3527 - val_mean_squared_error: 0.0099
Epoch 41/100
404/404 [==============================] - 0s 191us/step - loss: 0.3495 - mean_squared_error: 0.0105 - val_loss: 0.3422 - val_mean_squared_error: 0.0078
Epoch 42/100
404/404 [==============================] - 0s 188us/step - loss: 0.3388 - mean_squared_error: 0.0082 - val_loss: 0.3328 - val_mean_squared_error: 0.0069
Epoch 43/100
404/404 [==============================] - 0s 181us/step - loss: 0.3294 - mean_squared_error: 0.0072 - val_loss: 0.3243 - val_mean_squared_error: 0.0066
Epoch 44/100
404/404 [==============================] - 0s 186us/step - loss: 0.3208 - mean_squared_error: 0.0067 - val_loss: 0.3169 - val_mean_squared_error: 0.0072
Epoch 45/100
404/404 [==============================] - 0s 181us/step - loss: 0.3130 - mean_squared_error: 0.0068 - val_loss: 0.3083 - val_mean_squared_error: 0.0063
Epoch 46/100
404/404 [==============================] - 0s 161us/step - loss: 0.3056 - mean_squared_error: 0.0071 - val_loss: 0.3013 - val_mean_squared_error: 0.0071
Epoch 47/100
404/404 [==============================] - 0s 159us/step - loss: 0.2988 - mean_squared_error: 0.0079 - val_loss: 0.2940 - val_mean_squared_error: 0.0071
Epoch 48/100
404/404 [==============================] - 0s 196us/step - loss: 0.2907 - mean_squared_error: 0.0071 - val_loss: 0.2851 - val_mean_squared_error: 0.0056
Epoch 49/100
404/404 [==============================] - 0s 166us/step - loss: 0.2829 - mean_squared_error: 0.0065 - val_loss: 0.2791 - val_mean_squared_error: 0.0066
Epoch 50/100
404/404 [==============================] - 0s 166us/step - loss: 0.2766 - mean_squared_error: 0.0072 - val_loss: 0.2725 - val_mean_squared_error: 0.0069
Epoch 51/100
404/404 [==============================] - 0s 191us/step - loss: 0.2706 - mean_squared_error: 0.0080 - val_loss: 0.2689 - val_mean_squared_error: 0.0101
Epoch 52/100
404/404 [==============================] - 0s 208us/step - loss: 0.2657 - mean_squared_error: 0.0098 - val_loss: 0.2688 - val_mean_squared_error: 0.0166
Epoch 53/100
404/404 [==============================] - 0s 213us/step - loss: 0.2598 - mean_squared_error: 0.0105 - val_loss: 0.2534 - val_mean_squared_error: 0.0075
Epoch 54/100
404/404 [==============================] - 0s 218us/step - loss: 0.2522 - mean_squared_error: 0.0091 - val_loss: 0.2503 - val_mean_squared_error: 0.0107
Epoch 55/100
404/404 [==============================] - 0s 223us/step - loss: 0.2470 - mean_squared_error: 0.0100 - val_loss: 0.2476 - val_mean_squared_error: 0.0140
Epoch 56/100
404/404 [==============================] - 0s 213us/step - loss: 0.2423 - mean_squared_error: 0.0114 - val_loss: 0.2381 - val_mean_squared_error: 0.0103
Epoch 57/100
404/404 [==============================] - 0s 186us/step - loss: 0.2358 - mean_squared_error: 0.0106 - val_loss: 0.2328 - val_mean_squared_error: 0.0108
Epoch 58/100
404/404 [==============================] - 0s 203us/step - loss: 0.2322 - mean_squared_error: 0.0127 - val_loss: 0.2231 - val_mean_squared_error: 0.0066
Epoch 59/100
404/404 [==============================] - 0s 193us/step - loss: 0.2277 - mean_squared_error: 0.0135 - val_loss: 0.2191 - val_mean_squared_error: 0.0078
Epoch 60/100
404/404 [==============================] - 0s 198us/step - loss: 0.2194 - mean_squared_error: 0.0106 - val_loss: 0.2136 - val_mean_squared_error: 0.0078
Epoch 61/100
404/404 [==============================] - 0s 183us/step - loss: 0.2141 - mean_squared_error: 0.0104 - val_loss: 0.2095 - val_mean_squared_error: 0.0086
Epoch 62/100
404/404 [==============================] - 0s 186us/step - loss: 0.2073 - mean_squared_error: 0.0087 - val_loss: 0.2022 - val_mean_squared_error: 0.0062
Epoch 63/100
404/404 [==============================] - 0s 173us/step - loss: 0.2022 - mean_squared_error: 0.0084 - val_loss: 0.2009 - val_mean_squared_error: 0.0098
Epoch 64/100
404/404 [==============================] - 0s 191us/step - loss: 0.1952 - mean_squared_error: 0.0062 - val_loss: 0.1963 - val_mean_squared_error: 0.0099
Epoch 65/100
404/404 [==============================] - 0s 193us/step - loss: 0.1908 - mean_squared_error: 0.0065 - val_loss: 0.1883 - val_mean_squared_error: 0.0064
Epoch 66/100
404/404 [==============================] - 0s 181us/step - loss: 0.1867 - mean_squared_error: 0.0069 - val_loss: 0.1831 - val_mean_squared_error: 0.0057
Epoch 67/100
404/404 [==============================] - 0s 178us/step - loss: 0.1811 - mean_squared_error: 0.0058 - val_loss: 0.1795 - val_mean_squared_error: 0.0067
Epoch 68/100
404/404 [==============================] - 0s 186us/step - loss: 0.1785 - mean_squared_error: 0.0075 - val_loss: 0.1748 - val_mean_squared_error: 0.0062
Epoch 69/100
404/404 [==============================] - 0s 176us/step - loss: 0.1731 - mean_squared_error: 0.0064 - val_loss: 0.1709 - val_mean_squared_error: 0.0064
Epoch 70/100
404/404 [==============================] - 0s 193us/step - loss: 0.1692 - mean_squared_error: 0.0065 - val_loss: 0.1678 - val_mean_squared_error: 0.0073
Epoch 71/100
404/404 [==============================] - 0s 183us/step - loss: 0.1647 - mean_squared_error: 0.0059 - val_loss: 0.1620 - val_mean_squared_error: 0.0053
Epoch 72/100
404/404 [==============================] - 0s 193us/step - loss: 0.1602 - mean_squared_error: 0.0053 - val_loss: 0.1662 - val_mean_squared_error: 0.0135
Epoch 73/100
404/404 [==============================] - 0s 196us/step - loss: 0.1606 - mean_squared_error: 0.0096 - val_loss: 0.1553 - val_mean_squared_error: 0.0062
Epoch 74/100
404/404 [==============================] - 0s 168us/step - loss: 0.1555 - mean_squared_error: 0.0081 - val_loss: 0.1556 - val_mean_squared_error: 0.0100
Epoch 75/100
404/404 [==============================] - 0s 159us/step - loss: 0.1549 - mean_squared_error: 0.0109 - val_loss: 0.1507 - val_mean_squared_error: 0.0087
Epoch 76/100
404/404 [==============================] - 0s 183us/step - loss: 0.1519 - mean_squared_error: 0.0114 - val_loss: 0.1536 - val_mean_squared_error: 0.0150
Epoch 77/100
404/404 [==============================] - 0s 188us/step - loss: 0.1464 - mean_squared_error: 0.0093 - val_loss: 0.1444 - val_mean_squared_error: 0.0092
Epoch 78/100
404/404 [==============================] - 0s 168us/step - loss: 0.1403 - mean_squared_error: 0.0066 - val_loss: 0.1372 - val_mean_squared_error: 0.0053
Epoch 79/100
404/404 [==============================] - 0s 173us/step - loss: 0.1366 - mean_squared_error: 0.0061 - val_loss: 0.1351 - val_mean_squared_error: 0.0063
Epoch 80/100
404/404 [==============================] - 0s 196us/step - loss: 0.1343 - mean_squared_error: 0.0069 - val_loss: 0.1310 - val_mean_squared_error: 0.0053
Epoch 81/100
404/404 [==============================] - 0s 186us/step - loss: 0.1310 - mean_squared_error: 0.0064 - val_loss: 0.1290 - val_mean_squared_error: 0.0060
Epoch 82/100
404/404 [==============================] - 0s 193us/step - loss: 0.1287 - mean_squared_error: 0.0071 - val_loss: 0.1259 - val_mean_squared_error: 0.0058
Epoch 83/100
404/404 [==============================] - 0s 156us/step - loss: 0.1251 - mean_squared_error: 0.0062 - val_loss: 0.1224 - val_mean_squared_error: 0.0051
Epoch 84/100
404/404 [==============================] - 0s 193us/step - loss: 0.1214 - mean_squared_error: 0.0053 - val_loss: 0.1197 - val_mean_squared_error: 0.0052
Epoch 85/100
404/404 [==============================] - 0s 166us/step - loss: 0.1187 - mean_squared_error: 0.0054 - val_loss: 0.1162 - val_mean_squared_error: 0.0044
Epoch 86/100
404/404 [==============================] - 0s 191us/step - loss: 0.1172 - mean_squared_error: 0.0066 - val_loss: 0.1152 - val_mean_squared_error: 0.0061
Epoch 87/100
404/404 [==============================] - 0s 191us/step - loss: 0.1146 - mean_squared_error: 0.0066 - val_loss: 0.1119 - val_mean_squared_error: 0.0054
Epoch 88/100
404/404 [==============================] - 0s 176us/step - loss: 0.1131 - mean_squared_error: 0.0075 - val_loss: 0.1257 - val_mean_squared_error: 0.0215
Epoch 89/100
404/404 [==============================] - 0s 178us/step - loss: 0.1130 - mean_squared_error: 0.0099 - val_loss: 0.1094 - val_mean_squared_error: 0.0077
Epoch 90/100
404/404 [==============================] - 0s 191us/step - loss: 0.1160 - mean_squared_error: 0.0151 - val_loss: 0.1088 - val_mean_squared_error: 0.0090
Epoch 91/100
404/404 [==============================] - 0s 176us/step - loss: 0.1093 - mean_squared_error: 0.0105 - val_loss: 0.1041 - val_mean_squared_error: 0.0065
Epoch 92/100
404/404 [==============================] - 0s 213us/step - loss: 0.1048 - mean_squared_error: 0.0082 - val_loss: 0.1028 - val_mean_squared_error: 0.0073
Epoch 93/100
404/404 [==============================] - 0s 168us/step - loss: 0.1028 - mean_squared_error: 0.0084 - val_loss: 0.0984 - val_mean_squared_error: 0.0051
Epoch 94/100
404/404 [==============================] - 0s 186us/step - loss: 0.1003 - mean_squared_error: 0.0080 - val_loss: 0.1103 - val_mean_squared_error: 0.0191
Epoch 95/100
404/404 [==============================] - 0s 159us/step - loss: 0.1071 - mean_squared_error: 0.0168 - val_loss: 0.0998 - val_mean_squared_error: 0.0105
Epoch 96/100
404/404 [==============================] - 0s 193us/step - loss: 0.1055 - mean_squared_error: 0.0170 - val_loss: 0.1179 - val_mean_squared_error: 0.0305
Epoch 97/100
404/404 [==============================] - 0s 154us/step - loss: 0.1161 - mean_squared_error: 0.0295 - val_loss: 0.1351 - val_mean_squared_error: 0.0495
Epoch 98/100
404/404 [==============================] - 0s 173us/step - loss: 0.1283 - mean_squared_error: 0.0434 - val_loss: 0.0962 - val_mean_squared_error: 0.0121
Epoch 99/100
404/404 [==============================] - 0s 178us/step - loss: 0.1041 - mean_squared_error: 0.0206 - val_loss: 0.1112 - val_mean_squared_error: 0.0283
Epoch 100/100
404/404 [==============================] - 0s 203us/step - loss: 0.1092 - mean_squared_error: 0.0270 - val_loss: 0.1011 - val_mean_squared_error: 0.0199
Train on 404 samples, validate on 101 samples
Epoch 1/100
404/404 [==============================] - 2s 5ms/step - loss: 13.3783 - mean_squared_error: 12.4034 - val_loss: 7.2468 - val_mean_squared_error: 6.3062
Epoch 2/100
404/404 [==============================] - 0s 188us/step - loss: 5.0451 - mean_squared_error: 4.1245 - val_loss: 2.1688 - val_mean_squared_error: 1.2696
Epoch 3/100
404/404 [==============================] - 0s 220us/step - loss: 1.7478 - mean_squared_error: 0.8633 - val_loss: 1.2066 - val_mean_squared_error: 0.3407
Epoch 4/100
404/404 [==============================] - 0s 201us/step - loss: 1.2521 - mean_squared_error: 0.4037 - val_loss: 1.0522 - val_mean_squared_error: 0.2265
Epoch 5/100
404/404 [==============================] - 0s 193us/step - loss: 1.0035 - mean_squared_error: 0.1952 - val_loss: 0.9050 - val_mean_squared_error: 0.1166
Epoch 6/100
404/404 [==============================] - 0s 203us/step - loss: 0.9035 - mean_squared_error: 0.1285 - val_loss: 0.8850 - val_mean_squared_error: 0.1253
Epoch 7/100
404/404 [==============================] - 0s 196us/step - loss: 0.8425 - mean_squared_error: 0.0941 - val_loss: 0.8154 - val_mean_squared_error: 0.0804
Epoch 8/100
404/404 [==============================] - 0s 218us/step - loss: 0.8004 - mean_squared_error: 0.0756 - val_loss: 0.7729 - val_mean_squared_error: 0.0605
Epoch 9/100
404/404 [==============================] - 0s 188us/step - loss: 0.7692 - mean_squared_error: 0.0662 - val_loss: 0.7554 - val_mean_squared_error: 0.0636
Epoch 10/100
404/404 [==============================] - 0s 191us/step - loss: 0.7349 - mean_squared_error: 0.0516 - val_loss: 0.7165 - val_mean_squared_error: 0.0433
Epoch 11/100
404/404 [==============================] - 0s 191us/step - loss: 0.7127 - mean_squared_error: 0.0474 - val_loss: 0.6973 - val_mean_squared_error: 0.0414
Epoch 12/100
404/404 [==============================] - 0s 215us/step - loss: 0.6865 - mean_squared_error: 0.0380 - val_loss: 0.6694 - val_mean_squared_error: 0.0300
Epoch 13/100
404/404 [==============================] - 0s 193us/step - loss: 0.6644 - mean_squared_error: 0.0320 - val_loss: 0.6506 - val_mean_squared_error: 0.0270
Epoch 14/100
404/404 [==============================] - 0s 203us/step - loss: 0.6475 - mean_squared_error: 0.0307 - val_loss: 0.6346 - val_mean_squared_error: 0.0262
Epoch 15/100
404/404 [==============================] - 0s 191us/step - loss: 0.6274 - mean_squared_error: 0.0257 - val_loss: 0.6155 - val_mean_squared_error: 0.0218
Epoch 16/100
404/404 [==============================] - 0s 178us/step - loss: 0.6116 - mean_squared_error: 0.0245 - val_loss: 0.5987 - val_mean_squared_error: 0.0195
Epoch 17/100
404/404 [==============================] - 0s 201us/step - loss: 0.5931 - mean_squared_error: 0.0202 - val_loss: 0.5889 - val_mean_squared_error: 0.0235
Epoch 18/100
404/404 [==============================] - 0s 178us/step - loss: 0.5785 - mean_squared_error: 0.0194 - val_loss: 0.5716 - val_mean_squared_error: 0.0201
Epoch 19/100
404/404 [==============================] - 0s 181us/step - loss: 0.5668 - mean_squared_error: 0.0213 - val_loss: 0.5797 - val_mean_squared_error: 0.0417
Epoch 20/100
404/404 [==============================] - 0s 173us/step - loss: 0.5548 - mean_squared_error: 0.0227 - val_loss: 0.5397 - val_mean_squared_error: 0.0148
Epoch 21/100
404/404 [==============================] - 0s 176us/step - loss: 0.5334 - mean_squared_error: 0.0144 - val_loss: 0.5250 - val_mean_squared_error: 0.0131
Epoch 22/100
404/404 [==============================] - 0s 193us/step - loss: 0.5203 - mean_squared_error: 0.0141 - val_loss: 0.5136 - val_mean_squared_error: 0.0143
Epoch 23/100
404/404 [==============================] - 0s 176us/step - loss: 0.5077 - mean_squared_error: 0.0141 - val_loss: 0.5031 - val_mean_squared_error: 0.0162
Epoch 24/100
404/404 [==============================] - 0s 166us/step - loss: 0.4945 - mean_squared_error: 0.0131 - val_loss: 0.4859 - val_mean_squared_error: 0.0113
Epoch 25/100
404/404 [==============================] - 0s 166us/step - loss: 0.4823 - mean_squared_error: 0.0130 - val_loss: 0.4764 - val_mean_squared_error: 0.0137
Epoch 26/100
404/404 [==============================] - 0s 183us/step - loss: 0.4735 - mean_squared_error: 0.0160 - val_loss: 0.4667 - val_mean_squared_error: 0.0156
Epoch 27/100
404/404 [==============================] - 0s 188us/step - loss: 0.4619 - mean_squared_error: 0.0159 - val_loss: 0.4523 - val_mean_squared_error: 0.0125
Epoch 28/100
404/404 [==============================] - 0s 213us/step - loss: 0.4470 - mean_squared_error: 0.0123 - val_loss: 0.4386 - val_mean_squared_error: 0.0101
Epoch 29/100
404/404 [==============================] - 0s 215us/step - loss: 0.4345 - mean_squared_error: 0.0110 - val_loss: 0.4270 - val_mean_squared_error: 0.0096
Epoch 30/100
404/404 [==============================] - 0s 188us/step - loss: 0.4257 - mean_squared_error: 0.0130 - val_loss: 0.4201 - val_mean_squared_error: 0.0133
Epoch 31/100
404/404 [==============================] - 0s 193us/step - loss: 0.4140 - mean_squared_error: 0.0120 - val_loss: 0.4064 - val_mean_squared_error: 0.0101
Epoch 32/100
404/404 [==============================] - 0s 168us/step - loss: 0.4011 - mean_squared_error: 0.0094 - val_loss: 0.3947 - val_mean_squared_error: 0.0086
Epoch 33/100
404/404 [==============================] - 0s 161us/step - loss: 0.3909 - mean_squared_error: 0.0093 - val_loss: 0.3861 - val_mean_squared_error: 0.0099
Epoch 34/100
404/404 [==============================] - 0s 196us/step - loss: 0.3810 - mean_squared_error: 0.0092 - val_loss: 0.3766 - val_mean_squared_error: 0.0103
Epoch 35/100
404/404 [==============================] - 0s 183us/step - loss: 0.3738 - mean_squared_error: 0.0118 - val_loss: 0.3672 - val_mean_squared_error: 0.0106
Epoch 36/100
404/404 [==============================] - 0s 163us/step - loss: 0.3620 - mean_squared_error: 0.0094 - val_loss: 0.3571 - val_mean_squared_error: 0.0096
Epoch 37/100
404/404 [==============================] - 0s 191us/step - loss: 0.3523 - mean_squared_error: 0.0089 - val_loss: 0.3460 - val_mean_squared_error: 0.0076
Epoch 38/100
404/404 [==============================] - 0s 186us/step - loss: 0.3429 - mean_squared_error: 0.0085 - val_loss: 0.3370 - val_mean_squared_error: 0.0074
Epoch 39/100
404/404 [==============================] - 0s 163us/step - loss: 0.3346 - mean_squared_error: 0.0089 - val_loss: 0.3297 - val_mean_squared_error: 0.0088
Epoch 40/100
404/404 [==============================] - 0s 178us/step - loss: 0.3264 - mean_squared_error: 0.0092 - val_loss: 0.3213 - val_mean_squared_error: 0.0086
Epoch 41/100
404/404 [==============================] - 0s 154us/step - loss: 0.3177 - mean_squared_error: 0.0087 - val_loss: 0.3149 - val_mean_squared_error: 0.0105
Epoch 42/100
404/404 [==============================] - 0s 178us/step - loss: 0.3088 - mean_squared_error: 0.0080 - val_loss: 0.3031 - val_mean_squared_error: 0.0066
Epoch 43/100
404/404 [==============================] - 0s 156us/step - loss: 0.3005 - mean_squared_error: 0.0075 - val_loss: 0.2994 - val_mean_squared_error: 0.0107
Epoch 44/100
404/404 [==============================] - 0s 191us/step - loss: 0.2955 - mean_squared_error: 0.0102 - val_loss: 0.2877 - val_mean_squared_error: 0.0066
Epoch 45/100
404/404 [==============================] - 0s 178us/step - loss: 0.2856 - mean_squared_error: 0.0078 - val_loss: 0.2800 - val_mean_squared_error: 0.0062
Epoch 46/100
404/404 [==============================] - 0s 178us/step - loss: 0.2793 - mean_squared_error: 0.0087 - val_loss: 0.2736 - val_mean_squared_error: 0.0071
Epoch 47/100
404/404 [==============================] - 0s 193us/step - loss: 0.2709 - mean_squared_error: 0.0074 - val_loss: 0.2654 - val_mean_squared_error: 0.0057
Epoch 48/100
404/404 [==============================] - 0s 245us/step - loss: 0.2659 - mean_squared_error: 0.0092 - val_loss: 0.2596 - val_mean_squared_error: 0.0067
Epoch 49/100
404/404 [==============================] - 0s 213us/step - loss: 0.2598 - mean_squared_error: 0.0099 - val_loss: 0.2548 - val_mean_squared_error: 0.0086
Epoch 50/100
404/404 [==============================] - 0s 220us/step - loss: 0.2516 - mean_squared_error: 0.0083 - val_loss: 0.2476 - val_mean_squared_error: 0.0078
Epoch 51/100
404/404 [==============================] - 0s 201us/step - loss: 0.2444 - mean_squared_error: 0.0073 - val_loss: 0.2404 - val_mean_squared_error: 0.0069
Epoch 52/100
404/404 [==============================] - 0s 218us/step - loss: 0.2390 - mean_squared_error: 0.0082 - val_loss: 0.2536 - val_mean_squared_error: 0.0260
Epoch 53/100
404/404 [==============================] - 0s 228us/step - loss: 0.2376 - mean_squared_error: 0.0128 - val_loss: 0.2306 - val_mean_squared_error: 0.0092
Epoch 54/100
404/404 [==============================] - 0s 235us/step - loss: 0.2302 - mean_squared_error: 0.0113 - val_loss: 0.2266 - val_mean_squared_error: 0.0109
Epoch 55/100
404/404 [==============================] - 0s 193us/step - loss: 0.2227 - mean_squared_error: 0.0094 - val_loss: 0.2167 - val_mean_squared_error: 0.0065
Epoch 56/100
404/404 [==============================] - 0s 206us/step - loss: 0.2151 - mean_squared_error: 0.0073 - val_loss: 0.2115 - val_mean_squared_error: 0.0066
Epoch 57/100
404/404 [==============================] - 0s 186us/step - loss: 0.2152 - mean_squared_error: 0.0127 - val_loss: 0.2069 - val_mean_squared_error: 0.0074
Epoch 58/100
404/404 [==============================] - 0s 191us/step - loss: 0.2107 - mean_squared_error: 0.0135 - val_loss: 0.2133 - val_mean_squared_error: 0.0187
Epoch 59/100
404/404 [==============================] - 0s 161us/step - loss: 0.2086 - mean_squared_error: 0.0163 - val_loss: 0.2009 - val_mean_squared_error: 0.0115
Epoch 60/100
404/404 [==============================] - 0s 193us/step - loss: 0.1988 - mean_squared_error: 0.0115 - val_loss: 0.1939 - val_mean_squared_error: 0.0092
Epoch 61/100
404/404 [==============================] - 0s 228us/step - loss: 0.1972 - mean_squared_error: 0.0146 - val_loss: 0.1900 - val_mean_squared_error: 0.0100
Epoch 62/100
404/404 [==============================] - 0s 161us/step - loss: 0.1900 - mean_squared_error: 0.0120 - val_loss: 0.1860 - val_mean_squared_error: 0.0104
Epoch 63/100
404/404 [==============================] - 0s 203us/step - loss: 0.1837 - mean_squared_error: 0.0102 - val_loss: 0.1804 - val_mean_squared_error: 0.0094
Epoch 64/100
404/404 [==============================] - 0s 183us/step - loss: 0.1800 - mean_squared_error: 0.0108 - val_loss: 0.1756 - val_mean_squared_error: 0.0087
Epoch 65/100
404/404 [==============================] - 0s 193us/step - loss: 0.1727 - mean_squared_error: 0.0077 - val_loss: 0.1702 - val_mean_squared_error: 0.0075
Epoch 66/100
404/404 [==============================] - 0s 186us/step - loss: 0.1737 - mean_squared_error: 0.0128 - val_loss: 0.1666 - val_mean_squared_error: 0.0080
Epoch 67/100
404/404 [==============================] - 0s 186us/step - loss: 0.1736 - mean_squared_error: 0.0168 - val_loss: 0.1692 - val_mean_squared_error: 0.0146
Epoch 68/100
404/404 [==============================] - 0s 188us/step - loss: 0.1729 - mean_squared_error: 0.0198 - val_loss: 0.1600 - val_mean_squared_error: 0.0088
Epoch 69/100
404/404 [==============================] - 0s 186us/step - loss: 0.1661 - mean_squared_error: 0.0166 - val_loss: 0.1697 - val_mean_squared_error: 0.0221
Epoch 70/100
404/404 [==============================] - ETA: 0s - loss: 0.1627 - mean_squared_error: 0.01 - 0s 188us/step - loss: 0.1629 - mean_squared_error: 0.0169 - val_loss: 0.1517 - val_mean_squared_error: 0.0076
Epoch 71/100
404/404 [==============================] - 0s 186us/step - loss: 0.1484 - mean_squared_error: 0.0058 - val_loss: 0.1455 - val_mean_squared_error: 0.0049
Epoch 72/100
404/404 [==============================] - 0s 188us/step - loss: 0.1450 - mean_squared_error: 0.0059 - val_loss: 0.1477 - val_mean_squared_error: 0.0105
Epoch 73/100
404/404 [==============================] - 0s 193us/step - loss: 0.1418 - mean_squared_error: 0.0061 - val_loss: 0.1389 - val_mean_squared_error: 0.0051
Epoch 74/100
404/404 [==============================] - 0s 191us/step - loss: 0.1382 - mean_squared_error: 0.0059 - val_loss: 0.1358 - val_mean_squared_error: 0.0052
Epoch 75/100
404/404 [==============================] - 0s 196us/step - loss: 0.1351 - mean_squared_error: 0.0059 - val_loss: 0.1382 - val_mean_squared_error: 0.0107
Epoch 76/100
404/404 [==============================] - 0s 193us/step - loss: 0.1331 - mean_squared_error: 0.0070 - val_loss: 0.1323 - val_mean_squared_error: 0.0079
Epoch 77/100
404/404 [==============================] - 0s 173us/step - loss: 0.1326 - mean_squared_error: 0.0095 - val_loss: 0.1267 - val_mean_squared_error: 0.0052
Epoch 78/100
404/404 [==============================] - 0s 173us/step - loss: 0.1266 - mean_squared_error: 0.0065 - val_loss: 0.1247 - val_mean_squared_error: 0.0063
Epoch 79/100
404/404 [==============================] - 0s 196us/step - loss: 0.1268 - mean_squared_error: 0.0096 - val_loss: 0.1228 - val_mean_squared_error: 0.0071
Epoch 80/100
404/404 [==============================] - 0s 186us/step - loss: 0.1215 - mean_squared_error: 0.0071 - val_loss: 0.1226 - val_mean_squared_error: 0.0096
Epoch 81/100
404/404 [==============================] - 0s 168us/step - loss: 0.1181 - mean_squared_error: 0.0064 - val_loss: 0.1156 - val_mean_squared_error: 0.0054
Epoch 82/100
404/404 [==============================] - 0s 176us/step - loss: 0.1150 - mean_squared_error: 0.0060 - val_loss: 0.1132 - val_mean_squared_error: 0.0056
Epoch 83/100
404/404 [==============================] - 0s 193us/step - loss: 0.1137 - mean_squared_error: 0.0072 - val_loss: 0.1112 - val_mean_squared_error: 0.0061
Epoch 84/100
404/404 [==============================] - 0s 191us/step - loss: 0.1102 - mean_squared_error: 0.0062 - val_loss: 0.1076 - val_mean_squared_error: 0.0049
Epoch 85/100
404/404 [==============================] - 0s 191us/step - loss: 0.1078 - mean_squared_error: 0.0062 - val_loss: 0.1069 - val_mean_squared_error: 0.0066
Epoch 86/100
404/404 [==============================] - 0s 186us/step - loss: 0.1055 - mean_squared_error: 0.0061 - val_loss: 0.1046 - val_mean_squared_error: 0.0066
Epoch 87/100
404/404 [==============================] - 0s 181us/step - loss: 0.1046 - mean_squared_error: 0.0075 - val_loss: 0.1090 - val_mean_squared_error: 0.0132
Epoch 88/100
404/404 [==============================] - 0s 191us/step - loss: 0.1074 - mean_squared_error: 0.0127 - val_loss: 0.1050 - val_mean_squared_error: 0.0115
Epoch 89/100
404/404 [==============================] - 0s 181us/step - loss: 0.1092 - mean_squared_error: 0.0166 - val_loss: 0.1137 - val_mean_squared_error: 0.0223
Epoch 90/100
404/404 [==============================] - 0s 173us/step - loss: 0.1053 - mean_squared_error: 0.0148 - val_loss: 0.0985 - val_mean_squared_error: 0.0089
Epoch 91/100
404/404 [==============================] - 0s 188us/step - loss: 0.1032 - mean_squared_error: 0.0146 - val_loss: 0.1068 - val_mean_squared_error: 0.0191
Epoch 92/100
404/404 [==============================] - 0s 178us/step - loss: 0.1019 - mean_squared_error: 0.0151 - val_loss: 0.0996 - val_mean_squared_error: 0.0140
Epoch 93/100
404/404 [==============================] - 0s 176us/step - loss: 0.0977 - mean_squared_error: 0.0130 - val_loss: 0.0978 - val_mean_squared_error: 0.0139
Epoch 94/100
404/404 [==============================] - 0s 161us/step - loss: 0.0939 - mean_squared_error: 0.0108 - val_loss: 0.0894 - val_mean_squared_error: 0.0074
Epoch 95/100
404/404 [==============================] - 0s 173us/step - loss: 0.0948 - mean_squared_error: 0.0132 - val_loss: 0.0939 - val_mean_squared_error: 0.0131
Epoch 96/100
404/404 [==============================] - 0s 168us/step - loss: 0.0936 - mean_squared_error: 0.0138 - val_loss: 0.0925 - val_mean_squared_error: 0.0136
Epoch 97/100
404/404 [==============================] - 0s 193us/step - loss: 0.0924 - mean_squared_error: 0.0143 - val_loss: 0.0911 - val_mean_squared_error: 0.0138
Epoch 98/100
404/404 [==============================] - 0s 206us/step - loss: 0.0905 - mean_squared_error: 0.0139 - val_loss: 0.0851 - val_mean_squared_error: 0.0094
Epoch 99/100
404/404 [==============================] - 0s 198us/step - loss: 0.0905 - mean_squared_error: 0.0157 - val_loss: 0.0810 - val_mean_squared_error: 0.0069
Epoch 100/100
404/404 [==============================] - 0s 223us/step - loss: 0.0816 - mean_squared_error: 0.0081 - val_loss: 0.0816 - val_mean_squared_error: 0.0090
Train on 404 samples, validate on 101 samples
Epoch 1/100
404/404 [==============================] - 2s 5ms/step - loss: 15.2703 - mean_squared_error: 14.2784 - val_loss: 9.0427 - val_mean_squared_error: 8.0836
Epoch 2/100
404/404 [==============================] - 0s 211us/step - loss: 6.2755 - mean_squared_error: 5.3360 - val_loss: 3.7447 - val_mean_squared_error: 2.8259
Epoch 3/100
404/404 [==============================] - 0s 216us/step - loss: 2.2557 - mean_squared_error: 1.3497 - val_loss: 1.5130 - val_mean_squared_error: 0.6217
Epoch 4/100
404/404 [==============================] - 0s 203us/step - loss: 1.2456 - mean_squared_error: 0.3669 - val_loss: 1.2330 - val_mean_squared_error: 0.3713
Epoch 5/100
404/404 [==============================] - 0s 213us/step - loss: 1.1038 - mean_squared_error: 0.2570 - val_loss: 1.0619 - val_mean_squared_error: 0.2335
Epoch 6/100
404/404 [==============================] - 0s 186us/step - loss: 0.9536 - mean_squared_error: 0.1384 - val_loss: 0.9789 - val_mean_squared_error: 0.1786
Epoch 7/100
404/404 [==============================] - 0s 181us/step - loss: 0.8837 - mean_squared_error: 0.0938 - val_loss: 0.9181 - val_mean_squared_error: 0.1399
Epoch 8/100
404/404 [==============================] - 0s 208us/step - loss: 0.8398 - mean_squared_error: 0.0706 - val_loss: 0.8763 - val_mean_squared_error: 0.1177
Epoch 9/100
404/404 [==============================] - 0s 196us/step - loss: 0.8060 - mean_squared_error: 0.0556 - val_loss: 0.8489 - val_mean_squared_error: 0.1084
Epoch 10/100
404/404 [==============================] - 0s 211us/step - loss: 0.7864 - mean_squared_error: 0.0535 - val_loss: 0.8077 - val_mean_squared_error: 0.0838
Epoch 11/100
404/404 [==============================] - 0s 201us/step - loss: 0.7552 - mean_squared_error: 0.0382 - val_loss: 0.7806 - val_mean_squared_error: 0.0720
Epoch 12/100
404/404 [==============================] - 0s 196us/step - loss: 0.7358 - mean_squared_error: 0.0339 - val_loss: 0.7555 - val_mean_squared_error: 0.0616
Epoch 13/100
404/404 [==============================] - 0s 206us/step - loss: 0.7185 - mean_squared_error: 0.0309 - val_loss: 0.7339 - val_mean_squared_error: 0.0539
Epoch 14/100
404/404 [==============================] - 0s 211us/step - loss: 0.7010 - mean_squared_error: 0.0272 - val_loss: 0.7151 - val_mean_squared_error: 0.0489
Epoch 15/100
404/404 [==============================] - 0s 196us/step - loss: 0.6846 - mean_squared_error: 0.0243 - val_loss: 0.6985 - val_mean_squared_error: 0.0456
Epoch 16/100
404/404 [==============================] - 0s 198us/step - loss: 0.6696 - mean_squared_error: 0.0225 - val_loss: 0.6856 - val_mean_squared_error: 0.0458
Epoch 17/100
404/404 [==============================] - 0s 193us/step - loss: 0.6576 - mean_squared_error: 0.0235 - val_loss: 0.6807 - val_mean_squared_error: 0.0537
Epoch 18/100
404/404 [==============================] - 0s 178us/step - loss: 0.6433 - mean_squared_error: 0.0219 - val_loss: 0.6535 - val_mean_squared_error: 0.0390
Epoch 19/100
404/404 [==============================] - 0s 181us/step - loss: 0.6298 - mean_squared_error: 0.0209 - val_loss: 0.6430 - val_mean_squared_error: 0.0409
Epoch 20/100
404/404 [==============================] - 0s 188us/step - loss: 0.6140 - mean_squared_error: 0.0174 - val_loss: 0.6320 - val_mean_squared_error: 0.0422
Epoch 21/100
404/404 [==============================] - 0s 193us/step - loss: 0.6000 - mean_squared_error: 0.0156 - val_loss: 0.6084 - val_mean_squared_error: 0.0306
Epoch 22/100
404/404 [==============================] - 0s 181us/step - loss: 0.5885 - mean_squared_error: 0.0161 - val_loss: 0.6038 - val_mean_squared_error: 0.0380
Epoch 23/100
404/404 [==============================] - 0s 173us/step - loss: 0.5813 - mean_squared_error: 0.0208 - val_loss: 0.6048 - val_mean_squared_error: 0.0507
Epoch 24/100
404/404 [==============================] - 0s 191us/step - loss: 0.5660 - mean_squared_error: 0.0173 - val_loss: 0.5831 - val_mean_squared_error: 0.0408
Epoch 25/100
404/404 [==============================] - 0s 186us/step - loss: 0.5568 - mean_squared_error: 0.0195 - val_loss: 0.5707 - val_mean_squared_error: 0.0396
Epoch 26/100
404/404 [==============================] - 0s 208us/step - loss: 0.5386 - mean_squared_error: 0.0125 - val_loss: 0.5443 - val_mean_squared_error: 0.0244
Epoch 27/100
404/404 [==============================] - 0s 193us/step - loss: 0.5263 - mean_squared_error: 0.0115 - val_loss: 0.5307 - val_mean_squared_error: 0.0218
Epoch 28/100
404/404 [==============================] - 0s 166us/step - loss: 0.5157 - mean_squared_error: 0.0117 - val_loss: 0.5188 - val_mean_squared_error: 0.0208
Epoch 29/100
404/404 [==============================] - 0s 181us/step - loss: 0.5036 - mean_squared_error: 0.0104 - val_loss: 0.5098 - val_mean_squared_error: 0.0226
Epoch 30/100
404/404 [==============================] - 0s 196us/step - loss: 0.4925 - mean_squared_error: 0.0100 - val_loss: 0.4976 - val_mean_squared_error: 0.0209
Epoch 31/100
404/404 [==============================] - 0s 191us/step - loss: 0.4811 - mean_squared_error: 0.0090 - val_loss: 0.4862 - val_mean_squared_error: 0.0199
Epoch 32/100
404/404 [==============================] - 0s 196us/step - loss: 0.4719 - mean_squared_error: 0.0102 - val_loss: 0.4770 - val_mean_squared_error: 0.0209
Epoch 33/100
404/404 [==============================] - 0s 163us/step - loss: 0.4648 - mean_squared_error: 0.0132 - val_loss: 0.4678 - val_mean_squared_error: 0.0217
Epoch 34/100
404/404 [==============================] - 0s 181us/step - loss: 0.4535 - mean_squared_error: 0.0119 - val_loss: 0.4592 - val_mean_squared_error: 0.0231
Epoch 35/100
404/404 [==============================] - 0s 186us/step - loss: 0.4407 - mean_squared_error: 0.0089 - val_loss: 0.4492 - val_mean_squared_error: 0.0226
Epoch 36/100
404/404 [==============================] - 0s 186us/step - loss: 0.4310 - mean_squared_error: 0.0087 - val_loss: 0.4365 - val_mean_squared_error: 0.0194
Epoch 37/100
404/404 [==============================] - 0s 181us/step - loss: 0.4213 - mean_squared_error: 0.0084 - val_loss: 0.4270 - val_mean_squared_error: 0.0193
Epoch 38/100
404/404 [==============================] - 0s 193us/step - loss: 0.4110 - mean_squared_error: 0.0074 - val_loss: 0.4179 - val_mean_squared_error: 0.0193
Epoch 39/100
404/404 [==============================] - 0s 191us/step - loss: 0.4025 - mean_squared_error: 0.0079 - val_loss: 0.4087 - val_mean_squared_error: 0.0189
Epoch 40/100
404/404 [==============================] - 0s 171us/step - loss: 0.3930 - mean_squared_error: 0.0071 - val_loss: 0.3993 - val_mean_squared_error: 0.0184
Epoch 41/100
404/404 [==============================] - 0s 178us/step - loss: 0.3843 - mean_squared_error: 0.0073 - val_loss: 0.3896 - val_mean_squared_error: 0.0172
Epoch 42/100
404/404 [==============================] - 0s 188us/step - loss: 0.3765 - mean_squared_error: 0.0080 - val_loss: 0.3816 - val_mean_squared_error: 0.0177
Epoch 43/100
404/404 [==============================] - 0s 166us/step - loss: 0.3704 - mean_squared_error: 0.0103 - val_loss: 0.3737 - val_mean_squared_error: 0.0182
Epoch 44/100
404/404 [==============================] - 0s 151us/step - loss: 0.3592 - mean_squared_error: 0.0072 - val_loss: 0.3641 - val_mean_squared_error: 0.0166
Epoch 45/100
404/404 [==============================] - 0s 163us/step - loss: 0.3504 - mean_squared_error: 0.0065 - val_loss: 0.3567 - val_mean_squared_error: 0.0172
Epoch 46/100
404/404 [==============================] - 0s 196us/step - loss: 0.3432 - mean_squared_error: 0.0072 - val_loss: 0.3513 - val_mean_squared_error: 0.0195
Epoch 47/100
404/404 [==============================] - 0s 183us/step - loss: 0.3358 - mean_squared_error: 0.0075 - val_loss: 0.3428 - val_mean_squared_error: 0.0187
Epoch 48/100
404/404 [==============================] - 0s 208us/step - loss: 0.3297 - mean_squared_error: 0.0089 - val_loss: 0.3336 - val_mean_squared_error: 0.0169
Epoch 49/100
404/404 [==============================] - 0s 211us/step - loss: 0.3212 - mean_squared_error: 0.0078 - val_loss: 0.3257 - val_mean_squared_error: 0.0163
Epoch 50/100
404/404 [==============================] - 0s 218us/step - loss: 0.3130 - mean_squared_error: 0.0068 - val_loss: 0.3192 - val_mean_squared_error: 0.0170
Epoch 51/100
404/404 [==============================] - 0s 238us/step - loss: 0.3085 - mean_squared_error: 0.0092 - val_loss: 0.3130 - val_mean_squared_error: 0.0176
Epoch 52/100
404/404 [==============================] - 0s 235us/step - loss: 0.3002 - mean_squared_error: 0.0079 - val_loss: 0.3129 - val_mean_squared_error: 0.0243
Epoch 53/100
404/404 [==============================] - 0s 223us/step - loss: 0.2925 - mean_squared_error: 0.0068 - val_loss: 0.3004 - val_mean_squared_error: 0.0185
Epoch 54/100
404/404 [==============================] - 0s 191us/step - loss: 0.2853 - mean_squared_error: 0.0063 - val_loss: 0.2933 - val_mean_squared_error: 0.0179
Epoch 55/100
404/404 [==============================] - 0s 215us/step - loss: 0.2798 - mean_squared_error: 0.0073 - val_loss: 0.2874 - val_mean_squared_error: 0.0184
Epoch 56/100
404/404 [==============================] - 0s 220us/step - loss: 0.2771 - mean_squared_error: 0.0109 - val_loss: 0.2837 - val_mean_squared_error: 0.0209
Epoch 57/100
404/404 [==============================] - ETA: 0s - loss: 0.2737 - mean_squared_error: 0.01 - 0s 220us/step - loss: 0.2724 - mean_squared_error: 0.0123 - val_loss: 0.2720 - val_mean_squared_error: 0.0152
Epoch 58/100
404/404 [==============================] - 0s 220us/step - loss: 0.2639 - mean_squared_error: 0.0097 - val_loss: 0.2655 - val_mean_squared_error: 0.0146
Epoch 59/100
404/404 [==============================] - 0s 218us/step - loss: 0.2550 - mean_squared_error: 0.0068 - val_loss: 0.2614 - val_mean_squared_error: 0.0163
Epoch 60/100
404/404 [==============================] - 0s 230us/step - loss: 0.2500 - mean_squared_error: 0.0075 - val_loss: 0.2550 - val_mean_squared_error: 0.0156
Epoch 61/100
404/404 [==============================] - 0s 230us/step - loss: 0.2471 - mean_squared_error: 0.0102 - val_loss: 0.2519 - val_mean_squared_error: 0.0181
Epoch 62/100
404/404 [==============================] - 0s 223us/step - loss: 0.2394 - mean_squared_error: 0.0080 - val_loss: 0.2447 - val_mean_squared_error: 0.0163
Epoch 63/100
404/404 [==============================] - 0s 198us/step - loss: 0.2346 - mean_squared_error: 0.0085 - val_loss: 0.2383 - val_mean_squared_error: 0.0151
Epoch 64/100
404/404 [==============================] - 0s 188us/step - loss: 0.2301 - mean_squared_error: 0.0092 - val_loss: 0.2427 - val_mean_squared_error: 0.0246
Epoch 65/100
404/404 [==============================] - 0s 188us/step - loss: 0.2245 - mean_squared_error: 0.0086 - val_loss: 0.2319 - val_mean_squared_error: 0.0188
Epoch 66/100
404/404 [==============================] - 0s 186us/step - loss: 0.2186 - mean_squared_error: 0.0078 - val_loss: 0.2247 - val_mean_squared_error: 0.0166
Epoch 67/100
404/404 [==============================] - 0s 176us/step - loss: 0.2152 - mean_squared_error: 0.0092 - val_loss: 0.2208 - val_mean_squared_error: 0.0174
Epoch 68/100
404/404 [==============================] - 0s 186us/step - loss: 0.2093 - mean_squared_error: 0.0080 - val_loss: 0.2179 - val_mean_squared_error: 0.0192
Epoch 69/100
404/404 [==============================] - 0s 186us/step - loss: 0.2040 - mean_squared_error: 0.0075 - val_loss: 0.2102 - val_mean_squared_error: 0.0161
Epoch 70/100
404/404 [==============================] - 0s 183us/step - loss: 0.2008 - mean_squared_error: 0.0086 - val_loss: 0.2102 - val_mean_squared_error: 0.0205
Epoch 71/100
404/404 [==============================] - 0s 193us/step - loss: 0.1981 - mean_squared_error: 0.0105 - val_loss: 0.2025 - val_mean_squared_error: 0.0173
Epoch 72/100
404/404 [==============================] - 0s 181us/step - loss: 0.1938 - mean_squared_error: 0.0103 - val_loss: 0.1983 - val_mean_squared_error: 0.0171
Epoch 73/100
404/404 [==============================] - 0s 193us/step - loss: 0.1877 - mean_squared_error: 0.0084 - val_loss: 0.1975 - val_mean_squared_error: 0.0204
Epoch 74/100
404/404 [==============================] - 0s 193us/step - loss: 0.1814 - mean_squared_error: 0.0061 - val_loss: 0.1915 - val_mean_squared_error: 0.0183
Epoch 75/100
404/404 [==============================] - 0s 188us/step - loss: 0.1789 - mean_squared_error: 0.0076 - val_loss: 0.1864 - val_mean_squared_error: 0.0172
Epoch 76/100
404/404 [==============================] - 0s 171us/step - loss: 0.1725 - mean_squared_error: 0.0052 - val_loss: 0.1868 - val_mean_squared_error: 0.0215
Epoch 77/100
404/404 [==============================] - 0s 166us/step - loss: 0.1722 - mean_squared_error: 0.0086 - val_loss: 0.1844 - val_mean_squared_error: 0.0229
Epoch 78/100
404/404 [==============================] - 0s 191us/step - loss: 0.1747 - mean_squared_error: 0.0147 - val_loss: 0.1837 - val_mean_squared_error: 0.0256
Epoch 79/100
404/404 [==============================] - 0s 193us/step - loss: 0.1661 - mean_squared_error: 0.0098 - val_loss: 0.1714 - val_mean_squared_error: 0.0171
Epoch 80/100
404/404 [==============================] - 0s 188us/step - loss: 0.1596 - mean_squared_error: 0.0068 - val_loss: 0.1668 - val_mean_squared_error: 0.0160
Epoch 81/100
404/404 [==============================] - 0s 191us/step - loss: 0.1594 - mean_squared_error: 0.0101 - val_loss: 0.1818 - val_mean_squared_error: 0.0342
Epoch 82/100
404/404 [==============================] - 0s 193us/step - loss: 0.1721 - mean_squared_error: 0.0261 - val_loss: 0.1803 - val_mean_squared_error: 0.0361
Epoch 83/100
404/404 [==============================] - 0s 166us/step - loss: 0.1632 - mean_squared_error: 0.0204 - val_loss: 0.1610 - val_mean_squared_error: 0.0197
Epoch 84/100
404/404 [==============================] - 0s 191us/step - loss: 0.1507 - mean_squared_error: 0.0106 - val_loss: 0.1545 - val_mean_squared_error: 0.0161
Epoch 85/100
404/404 [==============================] - 0s 178us/step - loss: 0.1520 - mean_squared_error: 0.0151 - val_loss: 0.1526 - val_mean_squared_error: 0.0175
Epoch 86/100
404/404 [==============================] - 0s 156us/step - loss: 0.1463 - mean_squared_error: 0.0124 - val_loss: 0.1592 - val_mean_squared_error: 0.0268
Epoch 87/100
404/404 [==============================] - 0s 193us/step - loss: 0.1481 - mean_squared_error: 0.0169 - val_loss: 0.1525 - val_mean_squared_error: 0.0233
Epoch 88/100
404/404 [==============================] - 0s 159us/step - loss: 0.1447 - mean_squared_error: 0.0169 - val_loss: 0.1429 - val_mean_squared_error: 0.0163
Epoch 89/100
404/404 [==============================] - 0s 186us/step - loss: 0.1389 - mean_squared_error: 0.0133 - val_loss: 0.1403 - val_mean_squared_error: 0.0162
Epoch 90/100
404/404 [==============================] - 0s 181us/step - loss: 0.1335 - mean_squared_error: 0.0108 - val_loss: 0.1479 - val_mean_squared_error: 0.0268
Epoch 91/100
404/404 [==============================] - 0s 156us/step - loss: 0.1355 - mean_squared_error: 0.0154 - val_loss: 0.1345 - val_mean_squared_error: 0.0157
Epoch 92/100
404/404 [==============================] - 0s 168us/step - loss: 0.1282 - mean_squared_error: 0.0107 - val_loss: 0.1333 - val_mean_squared_error: 0.0174
Epoch 93/100
404/404 [==============================] - 0s 188us/step - loss: 0.1218 - mean_squared_error: 0.0070 - val_loss: 0.1284 - val_mean_squared_error: 0.0148
Epoch 94/100
404/404 [==============================] - 0s 161us/step - loss: 0.1200 - mean_squared_error: 0.0075 - val_loss: 0.1294 - val_mean_squared_error: 0.0182
Epoch 95/100
404/404 [==============================] - 0s 181us/step - loss: 0.1157 - mean_squared_error: 0.0057 - val_loss: 0.1253 - val_mean_squared_error: 0.0167
Epoch 96/100
404/404 [==============================] - 0s 223us/step - loss: 0.1129 - mean_squared_error: 0.0054 - val_loss: 0.1202 - val_mean_squared_error: 0.0138
Epoch 97/100
404/404 [==============================] - 0s 196us/step - loss: 0.1104 - mean_squared_error: 0.0051 - val_loss: 0.1191 - val_mean_squared_error: 0.0152
Epoch 98/100
404/404 [==============================] - 0s 233us/step - loss: 0.1097 - mean_squared_error: 0.0067 - val_loss: 0.1182 - val_mean_squared_error: 0.0166
Epoch 99/100
404/404 [==============================] - 0s 203us/step - loss: 0.1064 - mean_squared_error: 0.0056 - val_loss: 0.1197 - val_mean_squared_error: 0.0201
Epoch 100/100
404/404 [==============================] - 0s 216us/step - loss: 0.1055 - mean_squared_error: 0.0068 - val_loss: 0.1102 - val_mean_squared_error: 0.0128
Train on 404 samples, validate on 101 samples
Epoch 1/100
404/404 [==============================] - 2s 5ms/step - loss: 14.3369 - mean_squared_error: 13.3602 - val_loss: 8.7354 - val_mean_squared_error: 7.7933
Epoch 2/100
404/404 [==============================] - 0s 215us/step - loss: 5.1995 - mean_squared_error: 4.2775 - val_loss: 3.6371 - val_mean_squared_error: 2.7364
Epoch 3/100
404/404 [==============================] - 0s 211us/step - loss: 1.9955 - mean_squared_error: 1.1091 - val_loss: 2.2314 - val_mean_squared_error: 1.3626
Epoch 4/100
404/404 [==============================] - 0s 181us/step - loss: 1.3195 - mean_squared_error: 0.4659 - val_loss: 1.9362 - val_mean_squared_error: 1.1021
Epoch 5/100
404/404 [==============================] - 0s 196us/step - loss: 1.1437 - mean_squared_error: 0.3255 - val_loss: 1.4784 - val_mean_squared_error: 0.6787
Epoch 6/100
404/404 [==============================] - ETA: 0s - loss: 0.9864 - mean_squared_error: 0.19 - 0s 191us/step - loss: 1.0012 - mean_squared_error: 0.2148 - val_loss: 1.2931 - val_mean_squared_error: 0.5217
Epoch 7/100
404/404 [==============================] - 0s 216us/step - loss: 0.9369 - mean_squared_error: 0.1758 - val_loss: 1.1713 - val_mean_squared_error: 0.4223
Epoch 8/100
404/404 [==============================] - 0s 198us/step - loss: 0.8845 - mean_squared_error: 0.1444 - val_loss: 1.0200 - val_mean_squared_error: 0.2906
Epoch 9/100
404/404 [==============================] - 0s 213us/step - loss: 0.8516 - mean_squared_error: 0.1305 - val_loss: 0.9409 - val_mean_squared_error: 0.2297
Epoch 10/100
404/404 [==============================] - 0s 196us/step - loss: 0.8020 - mean_squared_error: 0.0981 - val_loss: 0.8940 - val_mean_squared_error: 0.1990
Epoch 11/100
404/404 [==============================] - 0s 196us/step - loss: 0.7780 - mean_squared_error: 0.0899 - val_loss: 0.8244 - val_mean_squared_error: 0.1443
Epoch 12/100
404/404 [==============================] - 0s 206us/step - loss: 0.7398 - mean_squared_error: 0.0663 - val_loss: 0.7970 - val_mean_squared_error: 0.1314
Epoch 13/100
404/404 [==============================] - 0s 218us/step - loss: 0.7180 - mean_squared_error: 0.0586 - val_loss: 0.7570 - val_mean_squared_error: 0.1050
Epoch 14/100
404/404 [==============================] - 0s 187us/step - loss: 0.7001 - mean_squared_error: 0.0540 - val_loss: 0.7335 - val_mean_squared_error: 0.0946
Epoch 15/100
404/404 [==============================] - 0s 171us/step - loss: 0.6818 - mean_squared_error: 0.0487 - val_loss: 0.6979 - val_mean_squared_error: 0.0719
Epoch 16/100
404/404 [==============================] - 0s 206us/step - loss: 0.6606 - mean_squared_error: 0.0402 - val_loss: 0.6858 - val_mean_squared_error: 0.0723
Epoch 17/100
404/404 [==============================] - 0s 186us/step - loss: 0.6481 - mean_squared_error: 0.0401 - val_loss: 0.6583 - val_mean_squared_error: 0.0572
Epoch 18/100
404/404 [==============================] - 0s 193us/step - loss: 0.6282 - mean_squared_error: 0.0325 - val_loss: 0.6340 - val_mean_squared_error: 0.0450
Epoch 19/100
404/404 [==============================] - 0s 193us/step - loss: 0.6155 - mean_squared_error: 0.0319 - val_loss: 0.6235 - val_mean_squared_error: 0.0466
Epoch 20/100
404/404 [==============================] - 0s 186us/step - loss: 0.6000 - mean_squared_error: 0.0284 - val_loss: 0.6121 - val_mean_squared_error: 0.0471
Epoch 21/100
404/404 [==============================] - 0s 193us/step - loss: 0.5845 - mean_squared_error: 0.0248 - val_loss: 0.6023 - val_mean_squared_error: 0.0491
Epoch 22/100
404/404 [==============================] - 0s 191us/step - loss: 0.5727 - mean_squared_error: 0.0246 - val_loss: 0.5823 - val_mean_squared_error: 0.0406
Epoch 23/100
404/404 [==============================] - 0s 186us/step - loss: 0.5583 - mean_squared_error: 0.0217 - val_loss: 0.5691 - val_mean_squared_error: 0.0388
Epoch 24/100
404/404 [==============================] - 0s 198us/step - loss: 0.5470 - mean_squared_error: 0.0217 - val_loss: 0.5610 - val_mean_squared_error: 0.0419
Epoch 25/100
404/404 [==============================] - 0s 183us/step - loss: 0.5323 - mean_squared_error: 0.0182 - val_loss: 0.5450 - val_mean_squared_error: 0.0370
Epoch 26/100
404/404 [==============================] - 0s 178us/step - loss: 0.5208 - mean_squared_error: 0.0178 - val_loss: 0.5372 - val_mean_squared_error: 0.0401
Epoch 27/100
404/404 [==============================] - 0s 208us/step - loss: 0.5083 - mean_squared_error: 0.0160 - val_loss: 0.5224 - val_mean_squared_error: 0.0361
Epoch 28/100
404/404 [==============================] - 0s 203us/step - loss: 0.4980 - mean_squared_error: 0.0165 - val_loss: 0.5134 - val_mean_squared_error: 0.0377
Epoch 29/100
404/404 [==============================] - 0s 186us/step - loss: 0.4852 - mean_squared_error: 0.0141 - val_loss: 0.5039 - val_mean_squared_error: 0.0386
Epoch 30/100
404/404 [==============================] - 0s 191us/step - loss: 0.4755 - mean_squared_error: 0.0148 - val_loss: 0.4953 - val_mean_squared_error: 0.0401
Epoch 31/100
404/404 [==============================] - 0s 191us/step - loss: 0.4626 - mean_squared_error: 0.0119 - val_loss: 0.4878 - val_mean_squared_error: 0.0428
Epoch 32/100
404/404 [==============================] - 0s 168us/step - loss: 0.4519 - mean_squared_error: 0.0113 - val_loss: 0.4756 - val_mean_squared_error: 0.0405
Epoch 33/100
404/404 [==============================] - 0s 161us/step - loss: 0.4428 - mean_squared_error: 0.0121 - val_loss: 0.4676 - val_mean_squared_error: 0.0423
Epoch 34/100
404/404 [==============================] - 0s 186us/step - loss: 0.4315 - mean_squared_error: 0.0104 - val_loss: 0.4588 - val_mean_squared_error: 0.0431
Epoch 35/100
404/404 [==============================] - 0s 173us/step - loss: 0.4213 - mean_squared_error: 0.0097 - val_loss: 0.4479 - val_mean_squared_error: 0.0416
Epoch 36/100
404/404 [==============================] - 0s 191us/step - loss: 0.4119 - mean_squared_error: 0.0097 - val_loss: 0.4396 - val_mean_squared_error: 0.0425
Epoch 37/100
404/404 [==============================] - 0s 178us/step - loss: 0.4021 - mean_squared_error: 0.0090 - val_loss: 0.4281 - val_mean_squared_error: 0.0400
Epoch 38/100
404/404 [==============================] - 0s 188us/step - loss: 0.3926 - mean_squared_error: 0.0085 - val_loss: 0.4204 - val_mean_squared_error: 0.0412
Epoch 39/100
404/404 [==============================] - 0s 181us/step - loss: 0.3836 - mean_squared_error: 0.0084 - val_loss: 0.4130 - val_mean_squared_error: 0.0426
Epoch 40/100
404/404 [==============================] - 0s 168us/step - loss: 0.3754 - mean_squared_error: 0.0089 - val_loss: 0.4025 - val_mean_squared_error: 0.0406
Epoch 41/100
404/404 [==============================] - 0s 188us/step - loss: 0.3672 - mean_squared_error: 0.0091 - val_loss: 0.3938 - val_mean_squared_error: 0.0403
Epoch 42/100
404/404 [==============================] - 0s 171us/step - loss: 0.3606 - mean_squared_error: 0.0108 - val_loss: 0.3929 - val_mean_squared_error: 0.0476
Epoch 43/100
404/404 [==============================] - 0s 178us/step - loss: 0.3527 - mean_squared_error: 0.0110 - val_loss: 0.3813 - val_mean_squared_error: 0.0440
Epoch 44/100
404/404 [==============================] - 0s 193us/step - loss: 0.3435 - mean_squared_error: 0.0097 - val_loss: 0.3716 - val_mean_squared_error: 0.0421
Epoch 45/100
404/404 [==============================] - 0s 203us/step - loss: 0.3353 - mean_squared_error: 0.0093 - val_loss: 0.3671 - val_mean_squared_error: 0.0454
Epoch 46/100
404/404 [==============================] - 0s 196us/step - loss: 0.3287 - mean_squared_error: 0.0104 - val_loss: 0.3612 - val_mean_squared_error: 0.0470
Epoch 47/100
404/404 [==============================] - 0s 191us/step - loss: 0.3187 - mean_squared_error: 0.0079 - val_loss: 0.3487 - val_mean_squared_error: 0.0418
Epoch 48/100
404/404 [==============================] - 0s 211us/step - loss: 0.3100 - mean_squared_error: 0.0065 - val_loss: 0.3459 - val_mean_squared_error: 0.0464
Epoch 49/100
404/404 [==============================] - 0s 216us/step - loss: 0.3058 - mean_squared_error: 0.0094 - val_loss: 0.3350 - val_mean_squared_error: 0.0424
Epoch 50/100
404/404 [==============================] - 0s 225us/step - loss: 0.2962 - mean_squared_error: 0.0067 - val_loss: 0.3292 - val_mean_squared_error: 0.0436
Epoch 51/100
404/404 [==============================] - 0s 233us/step - loss: 0.2898 - mean_squared_error: 0.0072 - val_loss: 0.3213 - val_mean_squared_error: 0.0424
Epoch 52/100
404/404 [==============================] - 0s 211us/step - loss: 0.2830 - mean_squared_error: 0.0070 - val_loss: 0.3136 - val_mean_squared_error: 0.0413
Epoch 53/100
404/404 [==============================] - 0s 216us/step - loss: 0.2785 - mean_squared_error: 0.0091 - val_loss: 0.3069 - val_mean_squared_error: 0.0410
Epoch 54/100
404/404 [==============================] - 0s 223us/step - loss: 0.2706 - mean_squared_error: 0.0075 - val_loss: 0.2995 - val_mean_squared_error: 0.0399
Epoch 55/100
404/404 [==============================] - 0s 220us/step - loss: 0.2637 - mean_squared_error: 0.0068 - val_loss: 0.2918 - val_mean_squared_error: 0.0383
Epoch 56/100
404/404 [==============================] - 0s 218us/step - loss: 0.2576 - mean_squared_error: 0.0068 - val_loss: 0.2855 - val_mean_squared_error: 0.0380
Epoch 57/100
404/404 [==============================] - 0s 220us/step - loss: 0.2515 - mean_squared_error: 0.0067 - val_loss: 0.2794 - val_mean_squared_error: 0.0378
Epoch 58/100
404/404 [==============================] - 0s 203us/step - loss: 0.2458 - mean_squared_error: 0.0067 - val_loss: 0.2730 - val_mean_squared_error: 0.0371
Epoch 59/100
404/404 [==============================] - 0s 201us/step - loss: 0.2403 - mean_squared_error: 0.0068 - val_loss: 0.2662 - val_mean_squared_error: 0.0360
Epoch 60/100
404/404 [==============================] - 0s 213us/step - loss: 0.2354 - mean_squared_error: 0.0075 - val_loss: 0.2629 - val_mean_squared_error: 0.0381
Epoch 61/100
404/404 [==============================] - 0s 183us/step - loss: 0.2305 - mean_squared_error: 0.0081 - val_loss: 0.2575 - val_mean_squared_error: 0.0380
Epoch 62/100
404/404 [==============================] - 0s 181us/step - loss: 0.2238 - mean_squared_error: 0.0067 - val_loss: 0.2539 - val_mean_squared_error: 0.0396
Epoch 63/100
404/404 [==============================] - 0s 206us/step - loss: 0.2189 - mean_squared_error: 0.0068 - val_loss: 0.2452 - val_mean_squared_error: 0.0359
Epoch 64/100
404/404 [==============================] - 0s 213us/step - loss: 0.2143 - mean_squared_error: 0.0071 - val_loss: 0.2407 - val_mean_squared_error: 0.0363
Epoch 65/100
404/404 [==============================] - 0s 206us/step - loss: 0.2089 - mean_squared_error: 0.0067 - val_loss: 0.2357 - val_mean_squared_error: 0.0361
Epoch 66/100
404/404 [==============================] - 0s 218us/step - loss: 0.2035 - mean_squared_error: 0.0061 - val_loss: 0.2322 - val_mean_squared_error: 0.0374
Epoch 67/100
404/404 [==============================] - 0s 193us/step - loss: 0.1996 - mean_squared_error: 0.0069 - val_loss: 0.2267 - val_mean_squared_error: 0.0364
Epoch 68/100
404/404 [==============================] - 0s 188us/step - loss: 0.1953 - mean_squared_error: 0.0070 - val_loss: 0.2189 - val_mean_squared_error: 0.0331
Epoch 69/100
404/404 [==============================] - 0s 176us/step - loss: 0.1897 - mean_squared_error: 0.0059 - val_loss: 0.2153 - val_mean_squared_error: 0.0338
Epoch 70/100
404/404 [==============================] - 0s 186us/step - loss: 0.1871 - mean_squared_error: 0.0076 - val_loss: 0.2139 - val_mean_squared_error: 0.0368
Epoch 71/100
404/404 [==============================] - 0s 206us/step - loss: 0.1824 - mean_squared_error: 0.0071 - val_loss: 0.2080 - val_mean_squared_error: 0.0349
Epoch 72/100
404/404 [==============================] - 0s 220us/step - loss: 0.1763 - mean_squared_error: 0.0050 - val_loss: 0.2009 - val_mean_squared_error: 0.0318
Epoch 73/100
404/404 [==============================] - 0s 188us/step - loss: 0.1746 - mean_squared_error: 0.0073 - val_loss: 0.1995 - val_mean_squared_error: 0.0344
Epoch 74/100
404/404 [==============================] - 0s 196us/step - loss: 0.1686 - mean_squared_error: 0.0053 - val_loss: 0.1946 - val_mean_squared_error: 0.0334
Epoch 75/100
404/404 [==============================] - 0s 183us/step - loss: 0.1653 - mean_squared_error: 0.0058 - val_loss: 0.1971 - val_mean_squared_error: 0.0397
Epoch 76/100
404/404 [==============================] - 0s 196us/step - loss: 0.1635 - mean_squared_error: 0.0076 - val_loss: 0.1871 - val_mean_squared_error: 0.0332
Epoch 77/100
404/404 [==============================] - 0s 168us/step - loss: 0.1613 - mean_squared_error: 0.0089 - val_loss: 0.1866 - val_mean_squared_error: 0.0363
Epoch 78/100
404/404 [==============================] - 0s 193us/step - loss: 0.1590 - mean_squared_error: 0.0103 - val_loss: 0.1771 - val_mean_squared_error: 0.0302
Epoch 79/100
404/404 [==============================] - 0s 156us/step - loss: 0.1593 - mean_squared_error: 0.0138 - val_loss: 0.1818 - val_mean_squared_error: 0.0381
Epoch 80/100
404/404 [==============================] - 0s 163us/step - loss: 0.1501 - mean_squared_error: 0.0079 - val_loss: 0.1742 - val_mean_squared_error: 0.0338
Epoch 81/100
404/404 [==============================] - 0s 188us/step - loss: 0.1500 - mean_squared_error: 0.0110 - val_loss: 0.1659 - val_mean_squared_error: 0.0286
Epoch 82/100
404/404 [==============================] - 0s 181us/step - loss: 0.1439 - mean_squared_error: 0.0080 - val_loss: 0.1660 - val_mean_squared_error: 0.0317
Epoch 83/100
404/404 [==============================] - 0s 166us/step - loss: 0.1395 - mean_squared_error: 0.0066 - val_loss: 0.1645 - val_mean_squared_error: 0.0332
Epoch 84/100
404/404 [==============================] - 0s 193us/step - loss: 0.1383 - mean_squared_error: 0.0084 - val_loss: 0.1555 - val_mean_squared_error: 0.0272
Epoch 85/100
404/404 [==============================] - 0s 186us/step - loss: 0.1324 - mean_squared_error: 0.0054 - val_loss: 0.1529 - val_mean_squared_error: 0.0275
Epoch 86/100
404/404 [==============================] - 0s 154us/step - loss: 0.1291 - mean_squared_error: 0.0050 - val_loss: 0.1491 - val_mean_squared_error: 0.0266
Epoch 87/100
404/404 [==============================] - 0s 171us/step - loss: 0.1288 - mean_squared_error: 0.0074 - val_loss: 0.1494 - val_mean_squared_error: 0.0295
Epoch 88/100
404/404 [==============================] - 0s 176us/step - loss: 0.1270 - mean_squared_error: 0.0083 - val_loss: 0.1437 - val_mean_squared_error: 0.0264
Epoch 89/100
404/404 [==============================] - 0s 183us/step - loss: 0.1226 - mean_squared_error: 0.0065 - val_loss: 0.1402 - val_mean_squared_error: 0.0254
Epoch 90/100
404/404 [==============================] - 0s 183us/step - loss: 0.1188 - mean_squared_error: 0.0052 - val_loss: 0.1427 - val_mean_squared_error: 0.0304
Epoch 91/100
404/404 [==============================] - 0s 173us/step - loss: 0.1172 - mean_squared_error: 0.0061 - val_loss: 0.1378 - val_mean_squared_error: 0.0280
Epoch 92/100
404/404 [==============================] - 0s 196us/step - loss: 0.1134 - mean_squared_error: 0.0047 - val_loss: 0.1320 - val_mean_squared_error: 0.0246
Epoch 93/100
404/404 [==============================] - 0s 171us/step - loss: 0.1108 - mean_squared_error: 0.0045 - val_loss: 0.1305 - val_mean_squared_error: 0.0255
Epoch 94/100
404/404 [==============================] - 0s 240us/step - loss: 0.1107 - mean_squared_error: 0.0067 - val_loss: 0.1334 - val_mean_squared_error: 0.0307
Epoch 95/100
404/404 [==============================] - 0s 228us/step - loss: 0.1111 - mean_squared_error: 0.0094 - val_loss: 0.1226 - val_mean_squared_error: 0.0221
Epoch 96/100
404/404 [==============================] - 0s 213us/step - loss: 0.1059 - mean_squared_error: 0.0064 - val_loss: 0.1221 - val_mean_squared_error: 0.0238
Epoch 97/100
404/404 [==============================] - 0s 220us/step - loss: 0.1050 - mean_squared_error: 0.0076 - val_loss: 0.1240 - val_mean_squared_error: 0.0277
Epoch 98/100
404/404 [==============================] - 0s 213us/step - loss: 0.1019 - mean_squared_error: 0.0065 - val_loss: 0.1177 - val_mean_squared_error: 0.0234
Epoch 99/100
404/404 [==============================] - 0s 208us/step - loss: 0.0983 - mean_squared_error: 0.0050 - val_loss: 0.1164 - val_mean_squared_error: 0.0242
Epoch 100/100
404/404 [==============================] - 0s 218us/step - loss: 0.0985 - mean_squared_error: 0.0072 - val_loss: 0.1129 - val_mean_squared_error: 0.0226
Train on 404 samples, validate on 101 samples
Epoch 1/100
404/404 [==============================] - 2s 5ms/step - loss: 12.6191 - mean_squared_error: 11.6456 - val_loss: 7.2012 - val_mean_squared_error: 6.2622
Epoch 2/100
404/404 [==============================] - 0s 216us/step - loss: 4.9583 - mean_squared_error: 4.0405 - val_loss: 2.5826 - val_mean_squared_error: 1.6886
Epoch 3/100
404/404 [==============================] - 0s 178us/step - loss: 1.8534 - mean_squared_error: 0.9763 - val_loss: 1.2700 - val_mean_squared_error: 0.4137
Epoch 4/100
404/404 [==============================] - 0s 211us/step - loss: 1.2251 - mean_squared_error: 0.3859 - val_loss: 1.1197 - val_mean_squared_error: 0.3018
Epoch 5/100
404/404 [==============================] - 0s 188us/step - loss: 1.0439 - mean_squared_error: 0.2425 - val_loss: 0.9343 - val_mean_squared_error: 0.1520
Epoch 6/100
404/404 [==============================] - 0s 213us/step - loss: 0.9145 - mean_squared_error: 0.1461 - val_loss: 0.8620 - val_mean_squared_error: 0.1096
Epoch 7/100
404/404 [==============================] - 0s 201us/step - loss: 0.8567 - mean_squared_error: 0.1157 - val_loss: 0.8321 - val_mean_squared_error: 0.1045
Epoch 8/100
404/404 [==============================] - 0s 206us/step - loss: 0.8164 - mean_squared_error: 0.0986 - val_loss: 0.8026 - val_mean_squared_error: 0.0965
Epoch 9/100
404/404 [==============================] - 0s 191us/step - loss: 0.7807 - mean_squared_error: 0.0837 - val_loss: 0.7510 - val_mean_squared_error: 0.0649
Epoch 10/100
404/404 [==============================] - 0s 181us/step - loss: 0.7402 - mean_squared_error: 0.0625 - val_loss: 0.7209 - val_mean_squared_error: 0.0531
Epoch 11/100
404/404 [==============================] - 0s 211us/step - loss: 0.7145 - mean_squared_error: 0.0543 - val_loss: 0.6999 - val_mean_squared_error: 0.0488
Epoch 12/100
404/404 [==============================] - 0s 213us/step - loss: 0.6932 - mean_squared_error: 0.0495 - val_loss: 0.7049 - val_mean_squared_error: 0.0702
Epoch 13/100
404/404 [==============================] - 0s 193us/step - loss: 0.6730 - mean_squared_error: 0.0451 - val_loss: 0.6637 - val_mean_squared_error: 0.0442
Epoch 14/100
404/404 [==============================] - 0s 191us/step - loss: 0.6500 - mean_squared_error: 0.0373 - val_loss: 0.6401 - val_mean_squared_error: 0.0356
Epoch 15/100
404/404 [==============================] - 0s 191us/step - loss: 0.6270 - mean_squared_error: 0.0289 - val_loss: 0.6216 - val_mean_squared_error: 0.0314
Epoch 16/100
404/404 [==============================] - 0s 203us/step - loss: 0.6096 - mean_squared_error: 0.0258 - val_loss: 0.6068 - val_mean_squared_error: 0.0308
Epoch 17/100
404/404 [==============================] - 0s 211us/step - loss: 0.5943 - mean_squared_error: 0.0246 - val_loss: 0.5876 - val_mean_squared_error: 0.0254
Epoch 18/100
404/404 [==============================] - 0s 188us/step - loss: 0.5780 - mean_squared_error: 0.0220 - val_loss: 0.5719 - val_mean_squared_error: 0.0234
Epoch 19/100
404/404 [==============================] - 0s 178us/step - loss: 0.5615 - mean_squared_error: 0.0189 - val_loss: 0.5565 - val_mean_squared_error: 0.0212
Epoch 20/100
404/404 [==============================] - 0s 168us/step - loss: 0.5448 - mean_squared_error: 0.0154 - val_loss: 0.5430 - val_mean_squared_error: 0.0210
Epoch 21/100
404/404 [==============================] - 0s 193us/step - loss: 0.5322 - mean_squared_error: 0.0159 - val_loss: 0.5260 - val_mean_squared_error: 0.0167
Epoch 22/100
404/404 [==============================] - 0s 208us/step - loss: 0.5169 - mean_squared_error: 0.0134 - val_loss: 0.5201 - val_mean_squared_error: 0.0236
Epoch 23/100
404/404 [==============================] - 0s 196us/step - loss: 0.5044 - mean_squared_error: 0.0135 - val_loss: 0.5073 - val_mean_squared_error: 0.0233
Epoch 24/100
404/404 [==============================] - 0s 208us/step - loss: 0.4915 - mean_squared_error: 0.0130 - val_loss: 0.4867 - val_mean_squared_error: 0.0150
Epoch 25/100
404/404 [==============================] - 0s 183us/step - loss: 0.4774 - mean_squared_error: 0.0111 - val_loss: 0.4720 - val_mean_squared_error: 0.0123
Epoch 26/100
404/404 [==============================] - 0s 191us/step - loss: 0.4679 - mean_squared_error: 0.0135 - val_loss: 0.4676 - val_mean_squared_error: 0.0199
Epoch 27/100
404/404 [==============================] - 0s 188us/step - loss: 0.4587 - mean_squared_error: 0.0161 - val_loss: 0.4499 - val_mean_squared_error: 0.0137
Epoch 28/100
404/404 [==============================] - 0s 186us/step - loss: 0.4481 - mean_squared_error: 0.0169 - val_loss: 0.4393 - val_mean_squared_error: 0.0142
Epoch 29/100
404/404 [==============================] - 0s 186us/step - loss: 0.4333 - mean_squared_error: 0.0131 - val_loss: 0.4313 - val_mean_squared_error: 0.0172
Epoch 30/100
404/404 [==============================] - 0s 188us/step - loss: 0.4207 - mean_squared_error: 0.0115 - val_loss: 0.4185 - val_mean_squared_error: 0.0153
Epoch 31/100
404/404 [==============================] - 0s 183us/step - loss: 0.4086 - mean_squared_error: 0.0101 - val_loss: 0.4028 - val_mean_squared_error: 0.0101
Epoch 32/100
404/404 [==============================] - 0s 183us/step - loss: 0.3973 - mean_squared_error: 0.0092 - val_loss: 0.3920 - val_mean_squared_error: 0.0096
Epoch 33/100
404/404 [==============================] - 0s 191us/step - loss: 0.3880 - mean_squared_error: 0.0101 - val_loss: 0.3817 - val_mean_squared_error: 0.0094
Epoch 34/100
404/404 [==============================] - 0s 178us/step - loss: 0.3779 - mean_squared_error: 0.0100 - val_loss: 0.3718 - val_mean_squared_error: 0.0093
Epoch 35/100
404/404 [==============================] - 0s 181us/step - loss: 0.3680 - mean_squared_error: 0.0098 - val_loss: 0.3634 - val_mean_squared_error: 0.0104
Epoch 36/100
404/404 [==============================] - 0s 176us/step - loss: 0.3569 - mean_squared_error: 0.0083 - val_loss: 0.3582 - val_mean_squared_error: 0.0146
Epoch 37/100
404/404 [==============================] - 0s 198us/step - loss: 0.3589 - mean_squared_error: 0.0195 - val_loss: 0.3517 - val_mean_squared_error: 0.0173
Epoch 38/100
404/404 [==============================] - 0s 163us/step - loss: 0.3462 - mean_squared_error: 0.0157 - val_loss: 0.3423 - val_mean_squared_error: 0.0167
Epoch 39/100
404/404 [==============================] - 0s 188us/step - loss: 0.3340 - mean_squared_error: 0.0120 - val_loss: 0.3285 - val_mean_squared_error: 0.0111
Epoch 40/100
404/404 [==============================] - 0s 191us/step - loss: 0.3279 - mean_squared_error: 0.0144 - val_loss: 0.3227 - val_mean_squared_error: 0.0140
Epoch 41/100
404/404 [==============================] - 0s 173us/step - loss: 0.3156 - mean_squared_error: 0.0105 - val_loss: 0.3131 - val_mean_squared_error: 0.0123
Epoch 42/100
404/404 [==============================] - 0s 206us/step - loss: 0.3066 - mean_squared_error: 0.0095 - val_loss: 0.3004 - val_mean_squared_error: 0.0076
Epoch 43/100
404/404 [==============================] - 0s 191us/step - loss: 0.2968 - mean_squared_error: 0.0075 - val_loss: 0.2943 - val_mean_squared_error: 0.0092
Epoch 44/100
404/404 [==============================] - 0s 215us/step - loss: 0.2895 - mean_squared_error: 0.0077 - val_loss: 0.2865 - val_mean_squared_error: 0.0089
Epoch 45/100
404/404 [==============================] - 0s 220us/step - loss: 0.2822 - mean_squared_error: 0.0079 - val_loss: 0.2788 - val_mean_squared_error: 0.0085
Epoch 46/100
404/404 [==============================] - 0s 206us/step - loss: 0.2731 - mean_squared_error: 0.0060 - val_loss: 0.2699 - val_mean_squared_error: 0.0068
Epoch 47/100
404/404 [==============================] - 0s 206us/step - loss: 0.2657 - mean_squared_error: 0.0058 - val_loss: 0.2633 - val_mean_squared_error: 0.0072
Epoch 48/100
404/404 [==============================] - 0s 208us/step - loss: 0.2606 - mean_squared_error: 0.0076 - val_loss: 0.2564 - val_mean_squared_error: 0.0071
Epoch 49/100
404/404 [==============================] - 0s 203us/step - loss: 0.2560 - mean_squared_error: 0.0096 - val_loss: 0.2486 - val_mean_squared_error: 0.0060
Epoch 50/100
404/404 [==============================] - 0s 220us/step - loss: 0.2497 - mean_squared_error: 0.0100 - val_loss: 0.2454 - val_mean_squared_error: 0.0091
Epoch 51/100
404/404 [==============================] - 0s 213us/step - loss: 0.2434 - mean_squared_error: 0.0098 - val_loss: 0.2385 - val_mean_squared_error: 0.0083
Epoch 52/100
404/404 [==============================] - 0s 183us/step - loss: 0.2353 - mean_squared_error: 0.0079 - val_loss: 0.2330 - val_mean_squared_error: 0.0090
Epoch 53/100
404/404 [==============================] - 0s 198us/step - loss: 0.2326 - mean_squared_error: 0.0111 - val_loss: 0.2344 - val_mean_squared_error: 0.0161
Epoch 54/100
404/404 [==============================] - 0s 181us/step - loss: 0.2245 - mean_squared_error: 0.0086 - val_loss: 0.2262 - val_mean_squared_error: 0.0136
Epoch 55/100
404/404 [==============================] - 0s 176us/step - loss: 0.2173 - mean_squared_error: 0.0072 - val_loss: 0.2170 - val_mean_squared_error: 0.0100
Epoch 56/100
404/404 [==============================] - 0s 183us/step - loss: 0.2125 - mean_squared_error: 0.0080 - val_loss: 0.2115 - val_mean_squared_error: 0.0101
Epoch 57/100
404/404 [==============================] - 0s 186us/step - loss: 0.2094 - mean_squared_error: 0.0104 - val_loss: 0.2084 - val_mean_squared_error: 0.0122
Epoch 58/100
404/404 [==============================] - 0s 208us/step - loss: 0.2047 - mean_squared_error: 0.0106 - val_loss: 0.2043 - val_mean_squared_error: 0.0130
Epoch 59/100
404/404 [==============================] - 0s 188us/step - loss: 0.1999 - mean_squared_error: 0.0110 - val_loss: 0.1918 - val_mean_squared_error: 0.0055
Epoch 60/100
404/404 [==============================] - 0s 188us/step - loss: 0.1924 - mean_squared_error: 0.0082 - val_loss: 0.2011 - val_mean_squared_error: 0.0194
Epoch 61/100
404/404 [==============================] - 0s 220us/step - loss: 0.1893 - mean_squared_error: 0.0099 - val_loss: 0.1814 - val_mean_squared_error: 0.0046
Epoch 62/100
404/404 [==============================] - 0s 223us/step - loss: 0.1832 - mean_squared_error: 0.0084 - val_loss: 0.1839 - val_mean_squared_error: 0.0115
Epoch 63/100
404/404 [==============================] - 0s 206us/step - loss: 0.1767 - mean_squared_error: 0.0063 - val_loss: 0.1732 - val_mean_squared_error: 0.0052
Epoch 64/100
404/404 [==============================] - 0s 228us/step - loss: 0.1746 - mean_squared_error: 0.0085 - val_loss: 0.1704 - val_mean_squared_error: 0.0066
Epoch 65/100
404/404 [==============================] - 0s 230us/step - loss: 0.1711 - mean_squared_error: 0.0093 - val_loss: 0.1662 - val_mean_squared_error: 0.0068
Epoch 66/100
404/404 [==============================] - 0s 223us/step - loss: 0.1693 - mean_squared_error: 0.0116 - val_loss: 0.1669 - val_mean_squared_error: 0.0112
Epoch 67/100
404/404 [==============================] - 0s 206us/step - loss: 0.1692 - mean_squared_error: 0.0154 - val_loss: 0.1613 - val_mean_squared_error: 0.0100
Epoch 68/100
404/404 [==============================] - 0s 178us/step - loss: 0.1639 - mean_squared_error: 0.0141 - val_loss: 0.1530 - val_mean_squared_error: 0.0052
Epoch 69/100
404/404 [==============================] - 0s 171us/step - loss: 0.1584 - mean_squared_error: 0.0123 - val_loss: 0.1540 - val_mean_squared_error: 0.0099
Epoch 70/100
404/404 [==============================] - 0s 176us/step - loss: 0.1521 - mean_squared_error: 0.0098 - val_loss: 0.1474 - val_mean_squared_error: 0.0071
Epoch 71/100
404/404 [==============================] - 0s 188us/step - loss: 0.1508 - mean_squared_error: 0.0119 - val_loss: 0.1547 - val_mean_squared_error: 0.0177
Epoch 72/100
404/404 [==============================] - 0s 188us/step - loss: 0.1469 - mean_squared_error: 0.0114 - val_loss: 0.1444 - val_mean_squared_error: 0.0107
Epoch 73/100
404/404 [==============================] - 0s 211us/step - loss: 0.1400 - mean_squared_error: 0.0078 - val_loss: 0.1387 - val_mean_squared_error: 0.0082
Epoch 74/100
404/404 [==============================] - 0s 213us/step - loss: 0.1383 - mean_squared_error: 0.0094 - val_loss: 0.1348 - val_mean_squared_error: 0.0076
Epoch 75/100
404/404 [==============================] - 0s 216us/step - loss: 0.1341 - mean_squared_error: 0.0082 - val_loss: 0.1314 - val_mean_squared_error: 0.0072
Epoch 76/100
404/404 [==============================] - 0s 193us/step - loss: 0.1293 - mean_squared_error: 0.0064 - val_loss: 0.1292 - val_mean_squared_error: 0.0079
Epoch 77/100
404/404 [==============================] - 0s 176us/step - loss: 0.1261 - mean_squared_error: 0.0062 - val_loss: 0.1218 - val_mean_squared_error: 0.0036
Epoch 78/100
404/404 [==============================] - 0s 186us/step - loss: 0.1219 - mean_squared_error: 0.0049 - val_loss: 0.1201 - val_mean_squared_error: 0.0046
Epoch 79/100
404/404 [==============================] - 0s 196us/step - loss: 0.1193 - mean_squared_error: 0.0051 - val_loss: 0.1207 - val_mean_squared_error: 0.0080
Epoch 80/100
404/404 [==============================] - 0s 191us/step - loss: 0.1162 - mean_squared_error: 0.0048 - val_loss: 0.1138 - val_mean_squared_error: 0.0039
Epoch 81/100
404/404 [==============================] - 0s 183us/step - loss: 0.1140 - mean_squared_error: 0.0052 - val_loss: 0.1150 - val_mean_squared_error: 0.0077
Epoch 82/100
404/404 [==============================] - 0s 178us/step - loss: 0.1185 - mean_squared_error: 0.0124 - val_loss: 0.1150 - val_mean_squared_error: 0.0103
Epoch 83/100
404/404 [==============================] - 0s 181us/step - loss: 0.1385 - mean_squared_error: 0.0348 - val_loss: 0.1419 - val_mean_squared_error: 0.0396
Epoch 84/100
404/404 [==============================] - 0s 188us/step - loss: 0.1273 - mean_squared_error: 0.0259 - val_loss: 0.1234 - val_mean_squared_error: 0.0233
Epoch 85/100
404/404 [==============================] - 0s 168us/step - loss: 0.1246 - mean_squared_error: 0.0253 - val_loss: 0.1095 - val_mean_squared_error: 0.0114
Epoch 86/100
404/404 [==============================] - 0s 188us/step - loss: 0.1188 - mean_squared_error: 0.0216 - val_loss: 0.1171 - val_mean_squared_error: 0.0210
Epoch 87/100
404/404 [==============================] - 0s 181us/step - loss: 0.1092 - mean_squared_error: 0.0139 - val_loss: 0.1024 - val_mean_squared_error: 0.0082
Epoch 88/100
404/404 [==============================] - 0s 186us/step - loss: 0.1082 - mean_squared_error: 0.0151 - val_loss: 0.1113 - val_mean_squared_error: 0.0193
Epoch 89/100
404/404 [==============================] - 0s 166us/step - loss: 0.1059 - mean_squared_error: 0.0146 - val_loss: 0.0972 - val_mean_squared_error: 0.0067
Epoch 90/100
404/404 [==============================] - 0s 173us/step - loss: 0.1049 - mean_squared_error: 0.0153 - val_loss: 0.0959 - val_mean_squared_error: 0.0076
Epoch 91/100
404/404 [==============================] - 0s 191us/step - loss: 0.0978 - mean_squared_error: 0.0105 - val_loss: 0.0938 - val_mean_squared_error: 0.0073
Epoch 92/100
404/404 [==============================] - 0s 206us/step - loss: 0.0936 - mean_squared_error: 0.0080 - val_loss: 0.0892 - val_mean_squared_error: 0.0048
Epoch 93/100
404/404 [==============================] - 0s 193us/step - loss: 0.0907 - mean_squared_error: 0.0071 - val_loss: 0.0886 - val_mean_squared_error: 0.0061
Epoch 94/100
404/404 [==============================] - 0s 213us/step - loss: 0.0885 - mean_squared_error: 0.0068 - val_loss: 0.0877 - val_mean_squared_error: 0.0070
Epoch 95/100
404/404 [==============================] - 0s 206us/step - loss: 0.0872 - mean_squared_error: 0.0072 - val_loss: 0.0878 - val_mean_squared_error: 0.0087
Epoch 96/100
404/404 [==============================] - 0s 211us/step - loss: 0.0842 - mean_squared_error: 0.0060 - val_loss: 0.0827 - val_mean_squared_error: 0.0054
Epoch 97/100
404/404 [==============================] - 0s 228us/step - loss: 0.0822 - mean_squared_error: 0.0056 - val_loss: 0.0797 - val_mean_squared_error: 0.0040
Epoch 98/100
404/404 [==============================] - 0s 261us/step - loss: 0.0815 - mean_squared_error: 0.0065 - val_loss: 0.0790 - val_mean_squared_error: 0.0048
Epoch 99/100
404/404 [==============================] - 0s 242us/step - loss: 0.0789 - mean_squared_error: 0.0055 - val_loss: 0.0773 - val_mean_squared_error: 0.0049
Epoch 100/100
404/404 [==============================] - 0s 225us/step - loss: 0.0799 - mean_squared_error: 0.0081 - val_loss: 0.0765 - val_mean_squared_error: 0.0055
mean_squared_error: 0.55%
Here is the average accuracy and s.d of accuracy from the k splits:
In [87]:
print("%.2f%% (+/- %.2f%%)" % (np.mean(cvscores), np.std(cvscores)))
1.40% (+/- 0.64%)
In [40]:
cvscores
Out[40]:
[100.0, 100.0, 100.0, 100.0, 100.0]
In [119]:
import pandas as pd #import pandas so we can make a dataframe.
#Set X_train and Y_train to X and Y for simplicity when writing code for graphing and such.
X = X_train
Y = Y_train
#Define the RMSE and R^2 functions.
def rmse(y,y_pred):
rms=np.sqrt(mean_squared_error(y,y_pred))
return rms
def r2(y,y_pred):
r2 = r2_score(y,y_pred)
return r2
Y_pred = model.predict(X_test) #X_test is a subset of the original data saved for testing. Y as predicted from these vals.
#Creates a pandas dataframe to easily visualize R^2 and RMSE of each property fit.
df = pd.DataFrame({"RMSE": [rmse(Y_test[:,0],Y_pred[:,0]), rmse(Y_test[:,1], Y_pred[:,1]), rmse(Y_test[:,2], Y_pred[:,2])],
"$R^2$": [r2(Y_test[:,0],Y_pred[:,0]), r2(Y_test[:,1],Y_pred[:,1]), r2(Y_test[:,2],Y_pred[:,2])],
"Property": ['Viscosity', 'THERMAL CONDUCTIVITY', '$C_{pt}$ $(K/J/mol)$']})
#Make the 3 plots.
with plt.style.context('seaborn-whitegrid'):
fig = plt.figure(figsize=(5, 2.5), dpi=300)
ax = fig.add_subplot(131)
ax.plot([-20, 20], [-20, 20], linestyle="-", label=None, c="black", linewidth=1)
ax.plot(np.exp(Y)[:, 0], np.exp(model.predict(X))[:, 0], \
marker="*", linestyle="", alpha=0.4)
ax.set_ylabel("Predicted Viscosity")
ax.set_xlabel("Actual Viscosity")
#ax.text(0.1,.9,"R: {0:5.3f}".format(multi_model.score(X,Y)), transform = ax.transAxes)
plt.xlim(0, 10)
plt.ylim(0,10)
ax.grid()
ax = fig.add_subplot(132)
ax.plot([0, 0.5], [0, 0.5], linestyle="-", label=None, c="black", linewidth=1)
ax.plot(np.exp(Y)[:, 1], np.exp(model.predict(X))[:, 1], \
marker="*", linestyle="", alpha=0.4)
ax.set_ylabel("Predicted THERMAL CONDUCTIVITY")
ax.set_xlabel("Actual THERMAL CONDUCTIVITY")
plt.xlim(0,0.5)
plt.ylim(0,0.5)
ax.grid()
ax = fig.add_subplot(133)
ax.plot([0, 2000],[0,2000],linestyle="-",label=None,c="black",linewidth=1)
ax.plot(np.exp(Y)[:,2],np.exp(model.predict(X))[:,2],\
marker="*",linestyle="",alpha=0.4)
ax.set_ylabel("Predicted $C_{pt}$ $(K/J/mol)$")
ax.set_xlabel("Actual $C_{pt}$ $(K/J/mol)$")
plt.xlim(0,2000)
plt.ylim(0,2000)
ax.grid()
plt.tight_layout()
$R^2$ and $RMSE$ values for each property are displayed below:
In [115]:
df.set_index(['Property'])
Out[115]:
$R^2$
RMSE
Property
Viscosity
0.931554
0.275933
Density $(kg/m^3)$
-0.153944
0.166210
$C_{pt}$ $(K/J/mol)$
-3.851077
0.503492
In [ ]:
In [ ]:
Content source: wesleybeckner/salty
Similar notebooks: