Prediction of Remaining Useful Life (RUL) of JET engine¶
Credit: AITS Cainvas Community
Photo by Mario Jacome on Dribbble
- The main aim of this post is to document my implementation of a model that can be used to perform predictive maintenance on commercial turbofan engine. the predictive maintenance approach used here is a data-driven approach, meaning that data collected from the operational jet engine is used to perform predictive maintenance modeling. to be specific, the project aim is to build a predictive model to estimate the Remaining Useful Life ( RUL) of a jet engine based on run-to-failure data of a fleet of similar jet engines.
Setup: Importing neccessary libraries¶
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
import tensorflow as tf
import sklearn.metrics
Downloading and Unzipping Dataset¶
!wget -N "https://cainvas-static.s3.amazonaws.com/media/user_data/cainvas-admin/archive_XmkjwwI.zip"
!unzip -o "archive_XmkjwwI.zip"
!rm "archive_XmkjwwI.zip"
--2021-07-14 14:45:39-- https://cainvas-static.s3.amazonaws.com/media/user_data/cainvas-admin/archive_XmkjwwI.zip Resolving cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)... 52.219.64.92 Connecting to cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)|52.219.64.92|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 12944209 (12M) [application/x-zip-compressed] Saving to: ‘archive_XmkjwwI.zip’ archive_XmkjwwI.zip 100%[===================>] 12.34M --.-KB/s in 0.1s 2021-07-14 14:45:39 (118 MB/s) - ‘archive_XmkjwwI.zip’ saved [12944209/12944209] Archive: archive_XmkjwwI.zip inflating: CMaps/Damage Propagation Modeling.pdf inflating: CMaps/RUL_FD001.txt inflating: CMaps/RUL_FD002.txt inflating: CMaps/RUL_FD003.txt inflating: CMaps/RUL_FD004.txt inflating: CMaps/readme.txt inflating: CMaps/test_FD001.txt inflating: CMaps/test_FD002.txt inflating: CMaps/test_FD003.txt inflating: CMaps/test_FD004.txt inflating: CMaps/train_FD001.txt inflating: CMaps/train_FD002.txt inflating: CMaps/train_FD003.txt inflating: CMaps/train_FD004.txt inflating: CMaps/x.txt
Understanding and visualizing the data¶
Our goal is to predict the remaining useful life of a jet engine—how much time it has left before failing.
train_df = pd.read_csv("CMaps/train_FD001.txt",sep=" ",header=None)
test_df = pd.read_csv("CMaps/test_FD001.txt",sep=" ",header=None)
train_df.describe()
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 20631.000000 | 20631.000000 | 20631.000000 | 20631.000000 | 20631.0 | 20631.00 | 20631.000000 | 20631.000000 | 20631.000000 | 2.063100e+04 | ... | 20631.000000 | 20631.000000 | 2.063100e+04 | 20631.000000 | 20631.0 | 20631.0 | 20631.000000 | 20631.000000 | 0.0 | 0.0 |
mean | 51.506568 | 108.807862 | -0.000009 | 0.000002 | 100.0 | 518.67 | 642.680934 | 1590.523119 | 1408.933782 | 1.462000e+01 | ... | 8143.752722 | 8.442146 | 3.000000e-02 | 393.210654 | 2388.0 | 100.0 | 38.816271 | 23.289705 | NaN | NaN |
std | 29.227633 | 68.880990 | 0.002187 | 0.000293 | 0.0 | 0.00 | 0.500053 | 6.131150 | 9.000605 | 1.776400e-15 | ... | 19.076176 | 0.037505 | 1.387812e-17 | 1.548763 | 0.0 | 0.0 | 0.180746 | 0.108251 | NaN | NaN |
min | 1.000000 | 1.000000 | -0.008700 | -0.000600 | 100.0 | 518.67 | 641.210000 | 1571.040000 | 1382.250000 | 1.462000e+01 | ... | 8099.940000 | 8.324900 | 3.000000e-02 | 388.000000 | 2388.0 | 100.0 | 38.140000 | 22.894200 | NaN | NaN |
25% | 26.000000 | 52.000000 | -0.001500 | -0.000200 | 100.0 | 518.67 | 642.325000 | 1586.260000 | 1402.360000 | 1.462000e+01 | ... | 8133.245000 | 8.414900 | 3.000000e-02 | 392.000000 | 2388.0 | 100.0 | 38.700000 | 23.221800 | NaN | NaN |
50% | 52.000000 | 104.000000 | 0.000000 | 0.000000 | 100.0 | 518.67 | 642.640000 | 1590.100000 | 1408.040000 | 1.462000e+01 | ... | 8140.540000 | 8.438900 | 3.000000e-02 | 393.000000 | 2388.0 | 100.0 | 38.830000 | 23.297900 | NaN | NaN |
75% | 77.000000 | 156.000000 | 0.001500 | 0.000300 | 100.0 | 518.67 | 643.000000 | 1594.380000 | 1414.555000 | 1.462000e+01 | ... | 8148.310000 | 8.465600 | 3.000000e-02 | 394.000000 | 2388.0 | 100.0 | 38.950000 | 23.366800 | NaN | NaN |
max | 100.000000 | 362.000000 | 0.008700 | 0.000600 | 100.0 | 518.67 | 644.530000 | 1616.910000 | 1441.490000 | 1.462000e+01 | ... | 8293.720000 | 8.584800 | 3.000000e-02 | 400.000000 | 2388.0 | 100.0 | 39.430000 | 23.618400 | NaN | NaN |
8 rows × 28 columns
Let's drop the last 2 columns because they're all NaN values.
train_df.drop(columns=[26,27],inplace=True)
test_df.drop(columns=[26,27],inplace=True)
Now let's add the column names from the documentation:
columns = ['unit_number','time_in_cycles','setting_1','setting_2','TRA','T2','T24','T30','T50','P2','P15','P30','Nf',
'Nc','epr','Ps30','phi','NRf','NRc','BPR','farB','htBleed','Nf_dmd','PCNfR_dmd','W31','W32' ]
train_df.columns = columns
test_df.columns = columns
train_df.head()
unit_number | time_in_cycles | setting_1 | setting_2 | TRA | T2 | T24 | T30 | T50 | P2 | ... | phi | NRf | NRc | BPR | farB | htBleed | Nf_dmd | PCNfR_dmd | W31 | W32 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | -0.0007 | -0.0004 | 100.0 | 518.67 | 641.82 | 1589.70 | 1400.60 | 14.62 | ... | 521.66 | 2388.02 | 8138.62 | 8.4195 | 0.03 | 392 | 2388 | 100.0 | 39.06 | 23.4190 |
1 | 1 | 2 | 0.0019 | -0.0003 | 100.0 | 518.67 | 642.15 | 1591.82 | 1403.14 | 14.62 | ... | 522.28 | 2388.07 | 8131.49 | 8.4318 | 0.03 | 392 | 2388 | 100.0 | 39.00 | 23.4236 |
2 | 1 | 3 | -0.0043 | 0.0003 | 100.0 | 518.67 | 642.35 | 1587.99 | 1404.20 | 14.62 | ... | 522.42 | 2388.03 | 8133.23 | 8.4178 | 0.03 | 390 | 2388 | 100.0 | 38.95 | 23.3442 |
3 | 1 | 4 | 0.0007 | 0.0000 | 100.0 | 518.67 | 642.35 | 1582.79 | 1401.87 | 14.62 | ... | 522.86 | 2388.08 | 8133.83 | 8.3682 | 0.03 | 392 | 2388 | 100.0 | 38.88 | 23.3739 |
4 | 1 | 5 | -0.0019 | -0.0002 | 100.0 | 518.67 | 642.37 | 1582.85 | 1406.22 | 14.62 | ... | 522.19 | 2388.04 | 8133.80 | 8.4294 | 0.03 | 393 | 2388 | 100.0 | 38.90 | 23.4044 |
5 rows × 26 columns
train_df.describe().transpose()
count | mean | std | min | 25% | 50% | 75% | max | |
---|---|---|---|---|---|---|---|---|
unit_number | 20631.0 | 51.506568 | 2.922763e+01 | 1.0000 | 26.0000 | 52.0000 | 77.0000 | 100.0000 |
time_in_cycles | 20631.0 | 108.807862 | 6.888099e+01 | 1.0000 | 52.0000 | 104.0000 | 156.0000 | 362.0000 |
setting_1 | 20631.0 | -0.000009 | 2.187313e-03 | -0.0087 | -0.0015 | 0.0000 | 0.0015 | 0.0087 |
setting_2 | 20631.0 | 0.000002 | 2.930621e-04 | -0.0006 | -0.0002 | 0.0000 | 0.0003 | 0.0006 |
TRA | 20631.0 | 100.000000 | 0.000000e+00 | 100.0000 | 100.0000 | 100.0000 | 100.0000 | 100.0000 |
T2 | 20631.0 | 518.670000 | 0.000000e+00 | 518.6700 | 518.6700 | 518.6700 | 518.6700 | 518.6700 |
T24 | 20631.0 | 642.680934 | 5.000533e-01 | 641.2100 | 642.3250 | 642.6400 | 643.0000 | 644.5300 |
T30 | 20631.0 | 1590.523119 | 6.131150e+00 | 1571.0400 | 1586.2600 | 1590.1000 | 1594.3800 | 1616.9100 |
T50 | 20631.0 | 1408.933782 | 9.000605e+00 | 1382.2500 | 1402.3600 | 1408.0400 | 1414.5550 | 1441.4900 |
P2 | 20631.0 | 14.620000 | 1.776400e-15 | 14.6200 | 14.6200 | 14.6200 | 14.6200 | 14.6200 |
P15 | 20631.0 | 21.609803 | 1.388985e-03 | 21.6000 | 21.6100 | 21.6100 | 21.6100 | 21.6100 |
P30 | 20631.0 | 553.367711 | 8.850923e-01 | 549.8500 | 552.8100 | 553.4400 | 554.0100 | 556.0600 |
Nf | 20631.0 | 2388.096652 | 7.098548e-02 | 2387.9000 | 2388.0500 | 2388.0900 | 2388.1400 | 2388.5600 |
Nc | 20631.0 | 9065.242941 | 2.208288e+01 | 9021.7300 | 9053.1000 | 9060.6600 | 9069.4200 | 9244.5900 |
epr | 20631.0 | 1.300000 | 0.000000e+00 | 1.3000 | 1.3000 | 1.3000 | 1.3000 | 1.3000 |
Ps30 | 20631.0 | 47.541168 | 2.670874e-01 | 46.8500 | 47.3500 | 47.5100 | 47.7000 | 48.5300 |
phi | 20631.0 | 521.413470 | 7.375534e-01 | 518.6900 | 520.9600 | 521.4800 | 521.9500 | 523.3800 |
NRf | 20631.0 | 2388.096152 | 7.191892e-02 | 2387.8800 | 2388.0400 | 2388.0900 | 2388.1400 | 2388.5600 |
NRc | 20631.0 | 8143.752722 | 1.907618e+01 | 8099.9400 | 8133.2450 | 8140.5400 | 8148.3100 | 8293.7200 |
BPR | 20631.0 | 8.442146 | 3.750504e-02 | 8.3249 | 8.4149 | 8.4389 | 8.4656 | 8.5848 |
farB | 20631.0 | 0.030000 | 1.387812e-17 | 0.0300 | 0.0300 | 0.0300 | 0.0300 | 0.0300 |
htBleed | 20631.0 | 393.210654 | 1.548763e+00 | 388.0000 | 392.0000 | 393.0000 | 394.0000 | 400.0000 |
Nf_dmd | 20631.0 | 2388.000000 | 0.000000e+00 | 2388.0000 | 2388.0000 | 2388.0000 | 2388.0000 | 2388.0000 |
PCNfR_dmd | 20631.0 | 100.000000 | 0.000000e+00 | 100.0000 | 100.0000 | 100.0000 | 100.0000 | 100.0000 |
W31 | 20631.0 | 38.816271 | 1.807464e-01 | 38.1400 | 38.7000 | 38.8300 | 38.9500 | 39.4300 |
W32 | 20631.0 | 23.289705 | 1.082509e-01 | 22.8942 | 23.2218 | 23.2979 | 23.3668 | 23.6184 |
Next, delete columns with constant values (std = 0)—they do not carry information about the state of the unit.
train_df.drop(columns=['Nf_dmd','PCNfR_dmd', "TRA", 'P2','T2','TRA','farB','epr'],inplace=True)
test_df.drop(columns=['Nf_dmd','PCNfR_dmd', "TRA", 'P2','T2','TRA','farB','epr'],inplace=True)
Let's make time series plots for two of the units, so we can get a sense of the data.
ax1 = train_df[train_df.unit_number == 1].plot(subplots=True, sharex=True, figsize=(20,20))
ax1 = train_df[train_df.unit_number == 99].plot(subplots=True, sharex=True, figsize=(20,20))
We can see that the different unit numbers have a different number of total cycles before they fail. Let's look at this more closely:
train_df.groupby('unit_number')['time_in_cycles'].max().describe()
count 100.000000 mean 206.310000 std 46.342749 min 128.000000 25% 177.000000 50% 199.000000 75% 229.250000 max 362.000000 Name: time_in_cycles, dtype: float64
fig, ax = plt.subplots()
train_df.groupby('unit_number')['time_in_cycles'].max().hist(ax=ax, bins=30);
ax.set_xlabel("Number of cycles before failure");
ax.set_ylabel("Number of units");
From this we can infer the the remaining useful life (RUL) of each unit in the training data is time_in_cycles.max()
minus the current time in cycles, for any given cycle. Let's add that as our dependent variable.
(For the testing data, the RUL is in a separate file.)
def add_rul(data):
df = data.copy()
max_cycles = df.groupby('unit_number')['time_in_cycles'].max().reset_index()
max_cycles = pd.DataFrame(max_cycles)
max_cycles.columns = ['unit_number','max_cycles']
df = df.merge(max_cycles, on=['unit_number'], how='left')
df['RUL'] = df['max_cycles'] - df['time_in_cycles']
df.drop(columns=['max_cycles'],inplace = True)
return df
train_df = add_rul(train_df)
We can check to make sure the RUL looks like we would expect:
ax1 = train_df[train_df.unit_number == 1][['time_in_cycles', "RUL"]].plot(subplots=True, sharex=True, figsize=(20,3))
Next, let's see how our indpendent variables correlate with our dependent variable (RUL) and each other:¶
fig, ax = plt.subplots(figsize=(20, 20))
sns.heatmap(train_df.corr(), ax=ax, annot=True,cmap='RdYlGn',linewidths=0.2);
Some of our variables are only weakly correlated with the RUL target, so let's remove them.
Additionally, two of the features are highly correlated with each other, so we'll remove one of them.
train_df = train_df.drop(columns = ['setting_1','setting_2','NRc'])
Next, let's create a function to prepare our data for input into a machine learning model. To do this, we need to convert our two dimensional dataframe
(unit/time_step, variable)
into a three-dimensional tensor(unit, time_step, variable)
.Most machine learning models require every time series observation to have the name number of time steps. However, above we saw that the number of time steps in our dataset ranges between 128 and 362. There are a number of different ways to deal with this, but perhaps the easiest one that could work in this case is to truncate all of the time series to the length of the shortest one minus one (127 in this case).
Then, we can predict the value of RUL at the 128th time step.
data_cols = train_df.drop(['unit_number','time_in_cycles', "RUL"], axis=1).columns # These are the independent variables we want to use.
data_cols
Index(['T24', 'T30', 'T50', 'P15', 'P30', 'Nf', 'Nc', 'Ps30', 'phi', 'NRf', 'BPR', 'htBleed', 'W31', 'W32'], dtype='object')
def prepare_train_data(df):
data_list = []
target_list = []
for unit_number in df.unit_number.unique():
unit = df[df.unit_number == unit_number]
data_list.append(np.array(unit[data_cols])[:127,:])
target_list.append(np.array(unit["RUL"])[127])
return (np.stack(data_list), np.array(target_list).T)
train_x, train_y = prepare_train_data(train_df)
train_ds = tf.data.Dataset.from_tensor_slices((train_x, train_y))
train_batch = next(iter(train_ds.batch(2)))
train_batch
(<tf.Tensor: shape=(2, 127, 14), dtype=float64, numpy= array([[[ 641.82 , 1589.7 , 1400.6 , ..., 392. , 39.06 , 23.419 ], [ 642.15 , 1591.82 , 1403.14 , ..., 392. , 39. , 23.4236], [ 642.35 , 1587.99 , 1404.2 , ..., 390. , 38.95 , 23.3442], ..., [ 642.96 , 1585.47 , 1406.42 , ..., 394. , 38.68 , 23.3039], [ 642.49 , 1582.64 , 1418.5 , ..., 392. , 38.85 , 23.2289], [ 642.99 , 1586.9 , 1399.49 , ..., 393. , 38.91 , 23.2772]], [[ 641.89 , 1583.84 , 1391.28 , ..., 391. , 38.94 , 23.4585], [ 641.82 , 1587.05 , 1393.13 , ..., 392. , 39.06 , 23.4085], [ 641.55 , 1588.32 , 1398.96 , ..., 391. , 39.11 , 23.425 ], ..., [ 642.71 , 1586.32 , 1397.94 , ..., 391. , 39.09 , 23.3785], [ 642.07 , 1587.45 , 1403.41 , ..., 392. , 38.91 , 23.3592], [ 642.26 , 1586.65 , 1400.81 , ..., 391. , 39.08 , 23.34 ]]])>, <tf.Tensor: shape=(2,), dtype=int64, numpy=array([ 64, 159])>)
Model Construction¶
model = tf.keras.models.Sequential()
norm = tf.keras.layers.experimental.preprocessing.Normalization()
norm.adapt(train_x)
model.add(norm)
model.add(tf.keras.layers.LSTM(32, dropout=0.1))
model.add(tf.keras.layers.Dense(1))
model.add(tf.keras.layers.Lambda(lambda x: x * 206))
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=3e-4), loss="mse", metrics=[tf.keras.metrics.RootMeanSquaredError()])
model.summary()
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= normalization (Normalization (None, None, 14) 29 _________________________________________________________________ lstm (LSTM) (None, 32) 6016 _________________________________________________________________ dense (Dense) (None, 1) 33 _________________________________________________________________ lambda (Lambda) (None, 1) 0 ================================================================= Total params: 6,078 Trainable params: 6,049 Non-trainable params: 29 _________________________________________________________________
model(train_batch[0])
<tf.Tensor: shape=(2, 1), dtype=float32, numpy= array([[ 41.977806], [-37.99696 ]], dtype=float32)>
Training¶
history = model.fit(train_ds.batch(10).shuffle(10), epochs=499, verbose=1)
Epoch 1/499 10/10 [==============================] - 0s 6ms/step - loss: 8411.9922 - root_mean_squared_error: 91.7169 Epoch 2/499 10/10 [==============================] - 0s 6ms/step - loss: 6711.2002 - root_mean_squared_error: 81.9219 Epoch 3/499 10/10 [==============================] - 0s 5ms/step - loss: 5195.4917 - root_mean_squared_error: 72.0798 Epoch 4/499 10/10 [==============================] - 0s 5ms/step - loss: 4549.1816 - root_mean_squared_error: 67.4476 Epoch 5/499 10/10 [==============================] - 0s 5ms/step - loss: 3701.6599 - root_mean_squared_error: 60.8413 Epoch 6/499 10/10 [==============================] - 0s 4ms/step - loss: 3329.4338 - root_mean_squared_error: 57.7012 Epoch 7/499 10/10 [==============================] - 0s 4ms/step - loss: 3058.7324 - root_mean_squared_error: 55.3058 Epoch 8/499 10/10 [==============================] - 0s 4ms/step - loss: 2633.2725 - root_mean_squared_error: 51.3154 Epoch 9/499 10/10 [==============================] - 0s 4ms/step - loss: 2530.0955 - root_mean_squared_error: 50.3001 Epoch 10/499 10/10 [==============================] - 0s 4ms/step - loss: 2321.5120 - root_mean_squared_error: 48.1821 Epoch 11/499 10/10 [==============================] - 0s 4ms/step - loss: 2187.9680 - root_mean_squared_error: 46.7757 Epoch 12/499 10/10 [==============================] - 0s 4ms/step - loss: 1938.4792 - root_mean_squared_error: 44.0282 Epoch 13/499 10/10 [==============================] - 0s 4ms/step - loss: 1945.7834 - root_mean_squared_error: 44.1110 Epoch 14/499 10/10 [==============================] - 0s 4ms/step - loss: 1912.0051 - root_mean_squared_error: 43.7265 Epoch 15/499 10/10 [==============================] - 0s 4ms/step - loss: 1868.8081 - root_mean_squared_error: 43.2297 Epoch 16/499 10/10 [==============================] - 0s 4ms/step - loss: 1804.3062 - root_mean_squared_error: 42.4771 Epoch 17/499 10/10 [==============================] - 0s 4ms/step - loss: 1614.5648 - root_mean_squared_error: 40.1816 Epoch 18/499 10/10 [==============================] - 0s 4ms/step - loss: 1585.0012 - root_mean_squared_error: 39.8121 Epoch 19/499 10/10 [==============================] - 0s 4ms/step - loss: 1517.6650 - root_mean_squared_error: 38.9572 Epoch 20/499 10/10 [==============================] - 0s 4ms/step - loss: 1550.2067 - root_mean_squared_error: 39.3727 Epoch 21/499 10/10 [==============================] - 0s 4ms/step - loss: 1377.9159 - root_mean_squared_error: 37.1203 Epoch 22/499 10/10 [==============================] - 0s 4ms/step - loss: 1457.2861 - root_mean_squared_error: 38.1744 Epoch 23/499 10/10 [==============================] - 0s 4ms/step - loss: 1344.3495 - root_mean_squared_error: 36.6654 Epoch 24/499 10/10 [==============================] - 0s 4ms/step - loss: 1372.8425 - root_mean_squared_error: 37.0519 Epoch 25/499 10/10 [==============================] - 0s 4ms/step - loss: 1334.8018 - root_mean_squared_error: 36.5349 Epoch 26/499 10/10 [==============================] - 0s 4ms/step - loss: 1293.1631 - root_mean_squared_error: 35.9606 Epoch 27/499 10/10 [==============================] - 0s 4ms/step - loss: 1164.0292 - root_mean_squared_error: 34.1179 Epoch 28/499 10/10 [==============================] - 0s 4ms/step - loss: 1185.3975 - root_mean_squared_error: 34.4296 Epoch 29/499 10/10 [==============================] - 0s 4ms/step - loss: 1184.9672 - root_mean_squared_error: 34.4234 Epoch 30/499 10/10 [==============================] - 0s 4ms/step - loss: 1060.7328 - root_mean_squared_error: 32.5689 Epoch 31/499 10/10 [==============================] - 0s 4ms/step - loss: 1059.3521 - root_mean_squared_error: 32.5477 Epoch 32/499 10/10 [==============================] - 0s 4ms/step - loss: 1106.5977 - root_mean_squared_error: 33.2656 Epoch 33/499 10/10 [==============================] - 0s 4ms/step - loss: 1052.4481 - root_mean_squared_error: 32.4415 Epoch 34/499 10/10 [==============================] - 0s 4ms/step - loss: 1129.0791 - root_mean_squared_error: 33.6018 Epoch 35/499 10/10 [==============================] - 0s 4ms/step - loss: 1003.0961 - root_mean_squared_error: 31.6717 Epoch 36/499 10/10 [==============================] - 0s 4ms/step - loss: 945.8860 - root_mean_squared_error: 30.7553 Epoch 37/499 10/10 [==============================] - 0s 4ms/step - loss: 972.8878 - root_mean_squared_error: 31.1911 Epoch 38/499 10/10 [==============================] - 0s 4ms/step - loss: 968.1161 - root_mean_squared_error: 31.1146 Epoch 39/499 10/10 [==============================] - 0s 4ms/step - loss: 975.4508 - root_mean_squared_error: 31.2322 Epoch 40/499 10/10 [==============================] - 0s 4ms/step - loss: 884.1526 - root_mean_squared_error: 29.7347 Epoch 41/499 10/10 [==============================] - 0s 4ms/step - loss: 838.7838 - root_mean_squared_error: 28.9618 Epoch 42/499 10/10 [==============================] - 0s 4ms/step - loss: 857.2866 - root_mean_squared_error: 29.2795 Epoch 43/499 10/10 [==============================] - 0s 4ms/step - loss: 939.4680 - root_mean_squared_error: 30.6507 Epoch 44/499 10/10 [==============================] - 0s 4ms/step - loss: 874.8013 - root_mean_squared_error: 29.5770 Epoch 45/499 10/10 [==============================] - 0s 4ms/step - loss: 794.3107 - root_mean_squared_error: 28.1835 Epoch 46/499 10/10 [==============================] - 0s 4ms/step - loss: 799.2790 - root_mean_squared_error: 28.2715 Epoch 47/499 10/10 [==============================] - 0s 4ms/step - loss: 786.8412 - root_mean_squared_error: 28.0507 Epoch 48/499 10/10 [==============================] - 0s 4ms/step - loss: 809.9988 - root_mean_squared_error: 28.4605 Epoch 49/499 10/10 [==============================] - 0s 4ms/step - loss: 735.9258 - root_mean_squared_error: 27.1280 Epoch 50/499 10/10 [==============================] - 0s 4ms/step - loss: 735.5244 - root_mean_squared_error: 27.1206 Epoch 51/499 10/10 [==============================] - 0s 4ms/step - loss: 792.5740 - root_mean_squared_error: 28.1527 Epoch 52/499 10/10 [==============================] - 0s 4ms/step - loss: 781.2157 - root_mean_squared_error: 27.9502 Epoch 53/499 10/10 [==============================] - 0s 4ms/step - loss: 809.8365 - root_mean_squared_error: 28.4576 Epoch 54/499 10/10 [==============================] - 0s 4ms/step - loss: 727.9267 - root_mean_squared_error: 26.9801 Epoch 55/499 10/10 [==============================] - 0s 4ms/step - loss: 625.0075 - root_mean_squared_error: 25.0002 Epoch 56/499 10/10 [==============================] - 0s 4ms/step - loss: 603.0494 - root_mean_squared_error: 24.5571 Epoch 57/499 10/10 [==============================] - 0s 4ms/step - loss: 607.2618 - root_mean_squared_error: 24.6427 Epoch 58/499 10/10 [==============================] - 0s 4ms/step - loss: 656.2623 - root_mean_squared_error: 25.6176 Epoch 59/499 10/10 [==============================] - 0s 4ms/step - loss: 665.2717 - root_mean_squared_error: 25.7929 Epoch 60/499 10/10 [==============================] - 0s 4ms/step - loss: 604.9768 - root_mean_squared_error: 24.5963 Epoch 61/499 10/10 [==============================] - 0s 4ms/step - loss: 575.0108 - root_mean_squared_error: 23.9794 Epoch 62/499 10/10 [==============================] - 0s 4ms/step - loss: 719.6458 - root_mean_squared_error: 26.8262 Epoch 63/499 10/10 [==============================] - 0s 4ms/step - loss: 624.7605 - root_mean_squared_error: 24.9952 Epoch 64/499 10/10 [==============================] - 0s 4ms/step - loss: 528.7891 - root_mean_squared_error: 22.9954 Epoch 65/499 10/10 [==============================] - 0s 4ms/step - loss: 579.5259 - root_mean_squared_error: 24.0733 Epoch 66/499 10/10 [==============================] - 0s 4ms/step - loss: 561.2676 - root_mean_squared_error: 23.6911 Epoch 67/499 10/10 [==============================] - 0s 4ms/step - loss: 540.8793 - root_mean_squared_error: 23.2568 Epoch 68/499 10/10 [==============================] - 0s 4ms/step - loss: 497.3754 - root_mean_squared_error: 22.3019 Epoch 69/499 10/10 [==============================] - 0s 4ms/step - loss: 538.6999 - root_mean_squared_error: 23.2099 Epoch 70/499 10/10 [==============================] - 0s 4ms/step - loss: 612.2157 - root_mean_squared_error: 24.7430 Epoch 71/499 10/10 [==============================] - 0s 4ms/step - loss: 506.8935 - root_mean_squared_error: 22.5143 Epoch 72/499 10/10 [==============================] - 0s 4ms/step - loss: 480.7218 - root_mean_squared_error: 21.9254 Epoch 73/499 10/10 [==============================] - 0s 4ms/step - loss: 435.4263 - root_mean_squared_error: 20.8669 Epoch 74/499 10/10 [==============================] - 0s 4ms/step - loss: 509.4359 - root_mean_squared_error: 22.5707 Epoch 75/499 10/10 [==============================] - 0s 4ms/step - loss: 493.0347 - root_mean_squared_error: 22.2044 Epoch 76/499 10/10 [==============================] - 0s 4ms/step - loss: 399.9005 - root_mean_squared_error: 19.9975 Epoch 77/499 10/10 [==============================] - 0s 4ms/step - loss: 429.9566 - root_mean_squared_error: 20.7354 Epoch 78/499 10/10 [==============================] - 0s 4ms/step - loss: 425.6356 - root_mean_squared_error: 20.6309 Epoch 79/499 10/10 [==============================] - 0s 4ms/step - loss: 410.9840 - root_mean_squared_error: 20.2727 Epoch 80/499 10/10 [==============================] - 0s 4ms/step - loss: 420.3012 - root_mean_squared_error: 20.5012 Epoch 81/499 10/10 [==============================] - 0s 4ms/step - loss: 504.5854 - root_mean_squared_error: 22.4630 Epoch 82/499 10/10 [==============================] - 0s 4ms/step - loss: 477.0034 - root_mean_squared_error: 21.8404 Epoch 83/499 10/10 [==============================] - 0s 4ms/step - loss: 366.5341 - root_mean_squared_error: 19.1451 Epoch 84/499 10/10 [==============================] - 0s 4ms/step - loss: 386.3992 - root_mean_squared_error: 19.6570 Epoch 85/499 10/10 [==============================] - 0s 4ms/step - loss: 417.9925 - root_mean_squared_error: 20.4449 Epoch 86/499 10/10 [==============================] - 0s 4ms/step - loss: 381.4798 - root_mean_squared_error: 19.5315 Epoch 87/499 10/10 [==============================] - 0s 4ms/step - loss: 362.4174 - root_mean_squared_error: 19.0373 Epoch 88/499 10/10 [==============================] - 0s 4ms/step - loss: 399.8822 - root_mean_squared_error: 19.9971 Epoch 89/499 10/10 [==============================] - 0s 4ms/step - loss: 301.1066 - root_mean_squared_error: 17.3524 Epoch 90/499 10/10 [==============================] - 0s 4ms/step - loss: 373.6254 - root_mean_squared_error: 19.3294 Epoch 91/499 10/10 [==============================] - 0s 4ms/step - loss: 337.2655 - root_mean_squared_error: 18.3648 Epoch 92/499 10/10 [==============================] - 0s 4ms/step - loss: 348.6173 - root_mean_squared_error: 18.6713 Epoch 93/499 10/10 [==============================] - 0s 4ms/step - loss: 320.1896 - root_mean_squared_error: 17.8938 Epoch 94/499 10/10 [==============================] - 0s 4ms/step - loss: 306.5740 - root_mean_squared_error: 17.5093 Epoch 95/499 10/10 [==============================] - 0s 4ms/step - loss: 342.9509 - root_mean_squared_error: 18.5189 Epoch 96/499 10/10 [==============================] - 0s 4ms/step - loss: 294.3597 - root_mean_squared_error: 17.1569 Epoch 97/499 10/10 [==============================] - 0s 4ms/step - loss: 301.8297 - root_mean_squared_error: 17.3732 Epoch 98/499 10/10 [==============================] - 0s 4ms/step - loss: 304.1462 - root_mean_squared_error: 17.4398 Epoch 99/499 10/10 [==============================] - 0s 4ms/step - loss: 292.8002 - root_mean_squared_error: 17.1114 Epoch 100/499 10/10 [==============================] - 0s 4ms/step - loss: 269.1195 - root_mean_squared_error: 16.4049 Epoch 101/499 10/10 [==============================] - 0s 4ms/step - loss: 260.1342 - root_mean_squared_error: 16.1287 Epoch 102/499 10/10 [==============================] - 0s 4ms/step - loss: 308.0444 - root_mean_squared_error: 17.5512 Epoch 103/499 10/10 [==============================] - 0s 4ms/step - loss: 245.5769 - root_mean_squared_error: 15.6709 Epoch 104/499 10/10 [==============================] - 0s 4ms/step - loss: 247.3529 - root_mean_squared_error: 15.7275 Epoch 105/499 10/10 [==============================] - 0s 4ms/step - loss: 291.0176 - root_mean_squared_error: 17.0592 Epoch 106/499 10/10 [==============================] - 0s 4ms/step - loss: 299.8082 - root_mean_squared_error: 17.3150 Epoch 107/499 10/10 [==============================] - 0s 4ms/step - loss: 291.9094 - root_mean_squared_error: 17.0854 Epoch 108/499 10/10 [==============================] - 0s 4ms/step - loss: 226.1085 - root_mean_squared_error: 15.0369 Epoch 109/499 10/10 [==============================] - 0s 4ms/step - loss: 199.2992 - root_mean_squared_error: 14.1173 Epoch 110/499 10/10 [==============================] - 0s 4ms/step - loss: 247.6819 - root_mean_squared_error: 15.7379 Epoch 111/499 10/10 [==============================] - 0s 4ms/step - loss: 285.0236 - root_mean_squared_error: 16.8826 Epoch 112/499 10/10 [==============================] - 0s 4ms/step - loss: 271.4154 - root_mean_squared_error: 16.4747 Epoch 113/499 10/10 [==============================] - 0s 4ms/step - loss: 237.9431 - root_mean_squared_error: 15.4254 Epoch 114/499 10/10 [==============================] - 0s 4ms/step - loss: 225.6802 - root_mean_squared_error: 15.0227 Epoch 115/499 10/10 [==============================] - 0s 4ms/step - loss: 226.6853 - root_mean_squared_error: 15.0561 Epoch 116/499 10/10 [==============================] - 0s 4ms/step - loss: 189.9618 - root_mean_squared_error: 13.7827 Epoch 117/499 10/10 [==============================] - 0s 4ms/step - loss: 241.2375 - root_mean_squared_error: 15.5318 Epoch 118/499 10/10 [==============================] - 0s 4ms/step - loss: 287.0511 - root_mean_squared_error: 16.9426 Epoch 119/499 10/10 [==============================] - 0s 4ms/step - loss: 209.6379 - root_mean_squared_error: 14.4789 Epoch 120/499 10/10 [==============================] - 0s 4ms/step - loss: 231.1082 - root_mean_squared_error: 15.2022 Epoch 121/499 10/10 [==============================] - 0s 4ms/step - loss: 240.6066 - root_mean_squared_error: 15.5115 Epoch 122/499 10/10 [==============================] - 0s 4ms/step - loss: 203.6309 - root_mean_squared_error: 14.2699 Epoch 123/499 10/10 [==============================] - 0s 4ms/step - loss: 202.2802 - root_mean_squared_error: 14.2225 Epoch 124/499 10/10 [==============================] - 0s 4ms/step - loss: 220.4564 - root_mean_squared_error: 14.8478 Epoch 125/499 10/10 [==============================] - 0s 4ms/step - loss: 217.7091 - root_mean_squared_error: 14.7550 Epoch 126/499 10/10 [==============================] - 0s 4ms/step - loss: 246.9508 - root_mean_squared_error: 15.7147 Epoch 127/499 10/10 [==============================] - 0s 4ms/step - loss: 251.5959 - root_mean_squared_error: 15.8618 Epoch 128/499 10/10 [==============================] - 0s 4ms/step - loss: 223.2309 - root_mean_squared_error: 14.9409 Epoch 129/499 10/10 [==============================] - 0s 4ms/step - loss: 190.0760 - root_mean_squared_error: 13.7868 Epoch 130/499 10/10 [==============================] - 0s 4ms/step - loss: 182.7514 - root_mean_squared_error: 13.5186 Epoch 131/499 10/10 [==============================] - 0s 4ms/step - loss: 239.4244 - root_mean_squared_error: 15.4733 Epoch 132/499 10/10 [==============================] - 0s 4ms/step - loss: 217.3167 - root_mean_squared_error: 14.7417 Epoch 133/499 10/10 [==============================] - 0s 4ms/step - loss: 209.0740 - root_mean_squared_error: 14.4594 Epoch 134/499 10/10 [==============================] - 0s 4ms/step - loss: 198.3700 - root_mean_squared_error: 14.0844 Epoch 135/499 10/10 [==============================] - 0s 4ms/step - loss: 209.7807 - root_mean_squared_error: 14.4838 Epoch 136/499 10/10 [==============================] - 0s 4ms/step - loss: 182.8812 - root_mean_squared_error: 13.5234 Epoch 137/499 10/10 [==============================] - 0s 4ms/step - loss: 177.6810 - root_mean_squared_error: 13.3297 Epoch 138/499 10/10 [==============================] - 0s 4ms/step - loss: 204.1693 - root_mean_squared_error: 14.2888 Epoch 139/499 10/10 [==============================] - 0s 4ms/step - loss: 213.6814 - root_mean_squared_error: 14.6178 Epoch 140/499 10/10 [==============================] - 0s 4ms/step - loss: 188.3507 - root_mean_squared_error: 13.7241 Epoch 141/499 10/10 [==============================] - 0s 4ms/step - loss: 167.1543 - root_mean_squared_error: 12.9288 Epoch 142/499 10/10 [==============================] - 0s 4ms/step - loss: 177.5321 - root_mean_squared_error: 13.3241 Epoch 143/499 10/10 [==============================] - 0s 4ms/step - loss: 155.8121 - root_mean_squared_error: 12.4825 Epoch 144/499 10/10 [==============================] - 0s 4ms/step - loss: 188.2346 - root_mean_squared_error: 13.7199 Epoch 145/499 10/10 [==============================] - 0s 4ms/step - loss: 122.7945 - root_mean_squared_error: 11.0813 Epoch 146/499 10/10 [==============================] - 0s 4ms/step - loss: 163.6002 - root_mean_squared_error: 12.7906 Epoch 147/499 10/10 [==============================] - 0s 4ms/step - loss: 167.1850 - root_mean_squared_error: 12.9300 Epoch 148/499 10/10 [==============================] - 0s 4ms/step - loss: 180.8279 - root_mean_squared_error: 13.4472 Epoch 149/499 10/10 [==============================] - 0s 4ms/step - loss: 159.5212 - root_mean_squared_error: 12.6302 Epoch 150/499 10/10 [==============================] - 0s 4ms/step - loss: 145.3750 - root_mean_squared_error: 12.0572 Epoch 151/499 10/10 [==============================] - 0s 4ms/step - loss: 180.9705 - root_mean_squared_error: 13.4525 Epoch 152/499 10/10 [==============================] - 0s 4ms/step - loss: 191.4149 - root_mean_squared_error: 13.8353 Epoch 153/499 10/10 [==============================] - 0s 4ms/step - loss: 161.7662 - root_mean_squared_error: 12.7187 Epoch 154/499 10/10 [==============================] - 0s 4ms/step - loss: 178.1974 - root_mean_squared_error: 13.3491 Epoch 155/499 10/10 [==============================] - 0s 4ms/step - loss: 186.0490 - root_mean_squared_error: 13.6400 Epoch 156/499 10/10 [==============================] - 0s 4ms/step - loss: 145.5303 - root_mean_squared_error: 12.0636 Epoch 157/499 10/10 [==============================] - 0s 4ms/step - loss: 203.6101 - root_mean_squared_error: 14.2692 Epoch 158/499 10/10 [==============================] - 0s 4ms/step - loss: 202.2478 - root_mean_squared_error: 14.2214 Epoch 159/499 10/10 [==============================] - 0s 4ms/step - loss: 168.1323 - root_mean_squared_error: 12.9666 Epoch 160/499 10/10 [==============================] - 0s 4ms/step - loss: 139.8772 - root_mean_squared_error: 11.8270 Epoch 161/499 10/10 [==============================] - 0s 4ms/step - loss: 173.3872 - root_mean_squared_error: 13.1677 Epoch 162/499 10/10 [==============================] - 0s 4ms/step - loss: 171.0097 - root_mean_squared_error: 13.0771 Epoch 163/499 10/10 [==============================] - 0s 4ms/step - loss: 159.0940 - root_mean_squared_error: 12.6132 Epoch 164/499 10/10 [==============================] - 0s 4ms/step - loss: 134.8596 - root_mean_squared_error: 11.6129 Epoch 165/499 10/10 [==============================] - 0s 4ms/step - loss: 136.2464 - root_mean_squared_error: 11.6725 Epoch 166/499 10/10 [==============================] - 0s 4ms/step - loss: 199.1318 - root_mean_squared_error: 14.1114 Epoch 167/499 10/10 [==============================] - 0s 4ms/step - loss: 123.0647 - root_mean_squared_error: 11.0935 Epoch 168/499 10/10 [==============================] - 0s 4ms/step - loss: 145.9551 - root_mean_squared_error: 12.0812 Epoch 169/499 10/10 [==============================] - 0s 4ms/step - loss: 167.2661 - root_mean_squared_error: 12.9331 Epoch 170/499 10/10 [==============================] - 0s 4ms/step - loss: 166.0894 - root_mean_squared_error: 12.8876 Epoch 171/499 10/10 [==============================] - 0s 4ms/step - loss: 152.3236 - root_mean_squared_error: 12.3419 Epoch 172/499 10/10 [==============================] - 0s 4ms/step - loss: 141.1103 - root_mean_squared_error: 11.8790 Epoch 173/499 10/10 [==============================] - 0s 4ms/step - loss: 128.3254 - root_mean_squared_error: 11.3281 Epoch 174/499 10/10 [==============================] - 0s 4ms/step - loss: 125.2793 - root_mean_squared_error: 11.1928 Epoch 175/499 10/10 [==============================] - 0s 4ms/step - loss: 146.0575 - root_mean_squared_error: 12.0854 Epoch 176/499 10/10 [==============================] - 0s 4ms/step - loss: 133.4457 - root_mean_squared_error: 11.5519 Epoch 177/499 10/10 [==============================] - 0s 4ms/step - loss: 137.2875 - root_mean_squared_error: 11.7170 Epoch 178/499 10/10 [==============================] - 0s 4ms/step - loss: 124.3018 - root_mean_squared_error: 11.1491 Epoch 179/499 10/10 [==============================] - 0s 4ms/step - loss: 155.6754 - root_mean_squared_error: 12.4770 Epoch 180/499 10/10 [==============================] - 0s 4ms/step - loss: 135.5699 - root_mean_squared_error: 11.6434 Epoch 181/499 10/10 [==============================] - 0s 4ms/step - loss: 129.9740 - root_mean_squared_error: 11.4006 Epoch 182/499 10/10 [==============================] - 0s 4ms/step - loss: 184.4557 - root_mean_squared_error: 13.5814 Epoch 183/499 10/10 [==============================] - 0s 4ms/step - loss: 143.8591 - root_mean_squared_error: 11.9941 Epoch 184/499 10/10 [==============================] - 0s 4ms/step - loss: 132.9550 - root_mean_squared_error: 11.5306 Epoch 185/499 10/10 [==============================] - 0s 4ms/step - loss: 154.0849 - root_mean_squared_error: 12.4131 Epoch 186/499 10/10 [==============================] - 0s 4ms/step - loss: 168.3498 - root_mean_squared_error: 12.9750 Epoch 187/499 10/10 [==============================] - 0s 4ms/step - loss: 149.0602 - root_mean_squared_error: 12.2090 Epoch 188/499 10/10 [==============================] - 0s 4ms/step - loss: 160.4275 - root_mean_squared_error: 12.6660 Epoch 189/499 10/10 [==============================] - 0s 4ms/step - loss: 138.6406 - root_mean_squared_error: 11.7746 Epoch 190/499 10/10 [==============================] - 0s 4ms/step - loss: 153.9476 - root_mean_squared_error: 12.4076 Epoch 191/499 10/10 [==============================] - 0s 4ms/step - loss: 97.2462 - root_mean_squared_error: 9.8614 Epoch 192/499 10/10 [==============================] - 0s 4ms/step - loss: 134.4993 - root_mean_squared_error: 11.5974 Epoch 193/499 10/10 [==============================] - 0s 4ms/step - loss: 141.5810 - root_mean_squared_error: 11.8988 Epoch 194/499 10/10 [==============================] - 0s 4ms/step - loss: 139.7578 - root_mean_squared_error: 11.8219 Epoch 195/499 10/10 [==============================] - 0s 4ms/step - loss: 153.6805 - root_mean_squared_error: 12.3968 Epoch 196/499 10/10 [==============================] - 0s 4ms/step - loss: 153.0246 - root_mean_squared_error: 12.3703 Epoch 197/499 10/10 [==============================] - 0s 4ms/step - loss: 137.7406 - root_mean_squared_error: 11.7363 Epoch 198/499 10/10 [==============================] - 0s 4ms/step - loss: 121.9529 - root_mean_squared_error: 11.0432 Epoch 199/499 10/10 [==============================] - 0s 4ms/step - loss: 145.8096 - root_mean_squared_error: 12.0752 Epoch 200/499 10/10 [==============================] - 0s 4ms/step - loss: 138.7673 - root_mean_squared_error: 11.7800 Epoch 201/499 10/10 [==============================] - 0s 4ms/step - loss: 145.3659 - root_mean_squared_error: 12.0568 Epoch 202/499 10/10 [==============================] - 0s 4ms/step - loss: 177.9493 - root_mean_squared_error: 13.3398 Epoch 203/499 10/10 [==============================] - 0s 4ms/step - loss: 122.0318 - root_mean_squared_error: 11.0468 Epoch 204/499 10/10 [==============================] - 0s 4ms/step - loss: 141.6548 - root_mean_squared_error: 11.9019 Epoch 205/499 10/10 [==============================] - 0s 4ms/step - loss: 133.8471 - root_mean_squared_error: 11.5692 Epoch 206/499 10/10 [==============================] - 0s 4ms/step - loss: 105.3115 - root_mean_squared_error: 10.2621 Epoch 207/499 10/10 [==============================] - 0s 4ms/step - loss: 148.8702 - root_mean_squared_error: 12.2012 Epoch 208/499 10/10 [==============================] - 0s 4ms/step - loss: 211.7650 - root_mean_squared_error: 14.5521 Epoch 209/499 10/10 [==============================] - 0s 4ms/step - loss: 160.5710 - root_mean_squared_error: 12.6717 Epoch 210/499 10/10 [==============================] - 0s 4ms/step - loss: 125.0174 - root_mean_squared_error: 11.1811 Epoch 211/499 10/10 [==============================] - 0s 4ms/step - loss: 139.5106 - root_mean_squared_error: 11.8115 Epoch 212/499 10/10 [==============================] - 0s 4ms/step - loss: 165.7088 - root_mean_squared_error: 12.8728 Epoch 213/499 10/10 [==============================] - 0s 4ms/step - loss: 133.9393 - root_mean_squared_error: 11.5732 Epoch 214/499 10/10 [==============================] - 0s 4ms/step - loss: 102.0692 - root_mean_squared_error: 10.1029 Epoch 215/499 10/10 [==============================] - 0s 4ms/step - loss: 133.7211 - root_mean_squared_error: 11.5638 Epoch 216/499 10/10 [==============================] - 0s 4ms/step - loss: 105.5831 - root_mean_squared_error: 10.2754 Epoch 217/499 10/10 [==============================] - 0s 4ms/step - loss: 115.8384 - root_mean_squared_error: 10.7628 Epoch 218/499 10/10 [==============================] - 0s 4ms/step - loss: 145.6728 - root_mean_squared_error: 12.0695 Epoch 219/499 10/10 [==============================] - 0s 4ms/step - loss: 132.3888 - root_mean_squared_error: 11.5060 Epoch 220/499 10/10 [==============================] - 0s 4ms/step - loss: 110.4865 - root_mean_squared_error: 10.5113 Epoch 221/499 10/10 [==============================] - 0s 4ms/step - loss: 118.7942 - root_mean_squared_error: 10.8993 Epoch 222/499 10/10 [==============================] - 0s 4ms/step - loss: 107.4322 - root_mean_squared_error: 10.3650 Epoch 223/499 10/10 [==============================] - 0s 4ms/step - loss: 99.5773 - root_mean_squared_error: 9.9788 Epoch 224/499 10/10 [==============================] - 0s 4ms/step - loss: 118.5011 - root_mean_squared_error: 10.8858 Epoch 225/499 10/10 [==============================] - 0s 4ms/step - loss: 117.6001 - root_mean_squared_error: 10.8444 Epoch 226/499 10/10 [==============================] - 0s 4ms/step - loss: 130.3559 - root_mean_squared_error: 11.4174 Epoch 227/499 10/10 [==============================] - 0s 4ms/step - loss: 109.7955 - root_mean_squared_error: 10.4783 Epoch 228/499 10/10 [==============================] - 0s 4ms/step - loss: 133.1302 - root_mean_squared_error: 11.5382 Epoch 229/499 10/10 [==============================] - 0s 4ms/step - loss: 102.8899 - root_mean_squared_error: 10.1435 Epoch 230/499 10/10 [==============================] - 0s 4ms/step - loss: 106.0283 - root_mean_squared_error: 10.2970 Epoch 231/499 10/10 [==============================] - 0s 4ms/step - loss: 99.8034 - root_mean_squared_error: 9.9902 Epoch 232/499 10/10 [==============================] - 0s 4ms/step - loss: 130.1115 - root_mean_squared_error: 11.4066 Epoch 233/499 10/10 [==============================] - 0s 4ms/step - loss: 137.9141 - root_mean_squared_error: 11.7437 Epoch 234/499 10/10 [==============================] - 0s 4ms/step - loss: 105.1021 - root_mean_squared_error: 10.2519 Epoch 235/499 10/10 [==============================] - 0s 4ms/step - loss: 119.4659 - root_mean_squared_error: 10.9300 Epoch 236/499 10/10 [==============================] - 0s 4ms/step - loss: 144.3779 - root_mean_squared_error: 12.0157 Epoch 237/499 10/10 [==============================] - 0s 4ms/step - loss: 165.0762 - root_mean_squared_error: 12.8482 Epoch 238/499 10/10 [==============================] - 0s 4ms/step - loss: 84.9825 - root_mean_squared_error: 9.2186 Epoch 239/499 10/10 [==============================] - 0s 4ms/step - loss: 110.9534 - root_mean_squared_error: 10.5334 Epoch 240/499 10/10 [==============================] - 0s 4ms/step - loss: 81.7182 - root_mean_squared_error: 9.0398 Epoch 241/499 10/10 [==============================] - 0s 4ms/step - loss: 134.2600 - root_mean_squared_error: 11.5871 Epoch 242/499 10/10 [==============================] - 0s 4ms/step - loss: 111.3799 - root_mean_squared_error: 10.5537 Epoch 243/499 10/10 [==============================] - 0s 4ms/step - loss: 115.8179 - root_mean_squared_error: 10.7619 Epoch 244/499 10/10 [==============================] - 0s 4ms/step - loss: 88.6477 - root_mean_squared_error: 9.4153 Epoch 245/499 10/10 [==============================] - 0s 4ms/step - loss: 101.6461 - root_mean_squared_error: 10.0820 Epoch 246/499 10/10 [==============================] - 0s 4ms/step - loss: 99.3600 - root_mean_squared_error: 9.9679 Epoch 247/499 10/10 [==============================] - 0s 4ms/step - loss: 134.9197 - root_mean_squared_error: 11.6155 Epoch 248/499 10/10 [==============================] - 0s 4ms/step - loss: 76.2185 - root_mean_squared_error: 8.7303 Epoch 249/499 10/10 [==============================] - 0s 4ms/step - loss: 116.9562 - root_mean_squared_error: 10.8146 Epoch 250/499 10/10 [==============================] - 0s 4ms/step - loss: 89.6290 - root_mean_squared_error: 9.4673 Epoch 251/499 10/10 [==============================] - 0s 4ms/step - loss: 111.8748 - root_mean_squared_error: 10.5771 Epoch 252/499 10/10 [==============================] - 0s 4ms/step - loss: 127.8522 - root_mean_squared_error: 11.3072 Epoch 253/499 10/10 [==============================] - 0s 4ms/step - loss: 112.1858 - root_mean_squared_error: 10.5918 Epoch 254/499 10/10 [==============================] - 0s 4ms/step - loss: 125.3311 - root_mean_squared_error: 11.1951 Epoch 255/499 10/10 [==============================] - 0s 4ms/step - loss: 118.4758 - root_mean_squared_error: 10.8847 Epoch 256/499 10/10 [==============================] - 0s 4ms/step - loss: 116.4435 - root_mean_squared_error: 10.7909 Epoch 257/499 10/10 [==============================] - 0s 4ms/step - loss: 121.3023 - root_mean_squared_error: 11.0137 Epoch 258/499 10/10 [==============================] - 0s 4ms/step - loss: 111.0394 - root_mean_squared_error: 10.5375 Epoch 259/499 10/10 [==============================] - 0s 4ms/step - loss: 104.2873 - root_mean_squared_error: 10.2121 Epoch 260/499 10/10 [==============================] - 0s 4ms/step - loss: 113.4929 - root_mean_squared_error: 10.6533 Epoch 261/499 10/10 [==============================] - 0s 4ms/step - loss: 101.1309 - root_mean_squared_error: 10.0564 Epoch 262/499 10/10 [==============================] - 0s 4ms/step - loss: 104.2720 - root_mean_squared_error: 10.2114 Epoch 263/499 10/10 [==============================] - 0s 4ms/step - loss: 90.9873 - root_mean_squared_error: 9.5387 Epoch 264/499 10/10 [==============================] - 0s 4ms/step - loss: 109.5121 - root_mean_squared_error: 10.4648 Epoch 265/499 10/10 [==============================] - 0s 4ms/step - loss: 108.7465 - root_mean_squared_error: 10.4282 Epoch 266/499 10/10 [==============================] - 0s 4ms/step - loss: 112.0946 - root_mean_squared_error: 10.5875 Epoch 267/499 10/10 [==============================] - 0s 4ms/step - loss: 122.0693 - root_mean_squared_error: 11.0485 Epoch 268/499 10/10 [==============================] - 0s 4ms/step - loss: 106.7209 - root_mean_squared_error: 10.3306 Epoch 269/499 10/10 [==============================] - 0s 4ms/step - loss: 104.0008 - root_mean_squared_error: 10.1981 Epoch 270/499 10/10 [==============================] - 0s 4ms/step - loss: 80.6119 - root_mean_squared_error: 8.9784 Epoch 271/499 10/10 [==============================] - 0s 4ms/step - loss: 100.1750 - root_mean_squared_error: 10.0087 Epoch 272/499 10/10 [==============================] - 0s 4ms/step - loss: 114.3035 - root_mean_squared_error: 10.6913 Epoch 273/499 10/10 [==============================] - 0s 4ms/step - loss: 113.7427 - root_mean_squared_error: 10.6650 Epoch 274/499 10/10 [==============================] - 0s 4ms/step - loss: 102.1440 - root_mean_squared_error: 10.1066 Epoch 275/499 10/10 [==============================] - 0s 4ms/step - loss: 101.0778 - root_mean_squared_error: 10.0537 Epoch 276/499 10/10 [==============================] - 0s 4ms/step - loss: 102.6764 - root_mean_squared_error: 10.1329 Epoch 277/499 10/10 [==============================] - 0s 4ms/step - loss: 116.1240 - root_mean_squared_error: 10.7761 Epoch 278/499 10/10 [==============================] - 0s 4ms/step - loss: 135.0676 - root_mean_squared_error: 11.6219 Epoch 279/499 10/10 [==============================] - 0s 4ms/step - loss: 92.8389 - root_mean_squared_error: 9.6353 Epoch 280/499 10/10 [==============================] - 0s 4ms/step - loss: 105.5474 - root_mean_squared_error: 10.2736 Epoch 281/499 10/10 [==============================] - 0s 4ms/step - loss: 100.5544 - root_mean_squared_error: 10.0277 Epoch 282/499 10/10 [==============================] - 0s 4ms/step - loss: 106.0176 - root_mean_squared_error: 10.2965 Epoch 283/499 10/10 [==============================] - 0s 4ms/step - loss: 86.5954 - root_mean_squared_error: 9.3057 Epoch 284/499 10/10 [==============================] - 0s 4ms/step - loss: 102.6709 - root_mean_squared_error: 10.1327 Epoch 285/499 10/10 [==============================] - 0s 4ms/step - loss: 127.2394 - root_mean_squared_error: 11.2800 Epoch 286/499 10/10 [==============================] - 0s 4ms/step - loss: 98.8924 - root_mean_squared_error: 9.9445 Epoch 287/499 10/10 [==============================] - 0s 4ms/step - loss: 104.7123 - root_mean_squared_error: 10.2329 Epoch 288/499 10/10 [==============================] - 0s 4ms/step - loss: 76.2522 - root_mean_squared_error: 8.7323 Epoch 289/499 10/10 [==============================] - 0s 4ms/step - loss: 111.4109 - root_mean_squared_error: 10.5551 Epoch 290/499 10/10 [==============================] - 0s 4ms/step - loss: 93.0159 - root_mean_squared_error: 9.6445 Epoch 291/499 10/10 [==============================] - 0s 4ms/step - loss: 94.3912 - root_mean_squared_error: 9.7155 Epoch 292/499 10/10 [==============================] - 0s 4ms/step - loss: 97.2765 - root_mean_squared_error: 9.8629 Epoch 293/499 10/10 [==============================] - 0s 4ms/step - loss: 92.3308 - root_mean_squared_error: 9.6089 Epoch 294/499 10/10 [==============================] - 0s 4ms/step - loss: 100.8532 - root_mean_squared_error: 10.0426 Epoch 295/499 10/10 [==============================] - 0s 4ms/step - loss: 120.8282 - root_mean_squared_error: 10.9922 Epoch 296/499 10/10 [==============================] - 0s 4ms/step - loss: 114.9472 - root_mean_squared_error: 10.7213 Epoch 297/499 10/10 [==============================] - 0s 4ms/step - loss: 101.6882 - root_mean_squared_error: 10.0841 Epoch 298/499 10/10 [==============================] - 0s 4ms/step - loss: 86.3408 - root_mean_squared_error: 9.2920 Epoch 299/499 10/10 [==============================] - 0s 4ms/step - loss: 96.6596 - root_mean_squared_error: 9.8316 Epoch 300/499 10/10 [==============================] - 0s 4ms/step - loss: 89.8874 - root_mean_squared_error: 9.4809 Epoch 301/499 10/10 [==============================] - 0s 4ms/step - loss: 90.6527 - root_mean_squared_error: 9.5212 Epoch 302/499 10/10 [==============================] - 0s 4ms/step - loss: 102.4036 - root_mean_squared_error: 10.1195 Epoch 303/499 10/10 [==============================] - 0s 4ms/step - loss: 98.0075 - root_mean_squared_error: 9.8999 Epoch 304/499 10/10 [==============================] - 0s 4ms/step - loss: 104.4004 - root_mean_squared_error: 10.2177 Epoch 305/499 10/10 [==============================] - 0s 4ms/step - loss: 98.0532 - root_mean_squared_error: 9.9022 Epoch 306/499 10/10 [==============================] - 0s 4ms/step - loss: 78.2029 - root_mean_squared_error: 8.8432 Epoch 307/499 10/10 [==============================] - 0s 4ms/step - loss: 125.2855 - root_mean_squared_error: 11.1931 Epoch 308/499 10/10 [==============================] - 0s 4ms/step - loss: 101.3163 - root_mean_squared_error: 10.0656 Epoch 309/499 10/10 [==============================] - 0s 4ms/step - loss: 117.7534 - root_mean_squared_error: 10.8514 Epoch 310/499 10/10 [==============================] - 0s 4ms/step - loss: 76.7744 - root_mean_squared_error: 8.7621 Epoch 311/499 10/10 [==============================] - 0s 4ms/step - loss: 122.5545 - root_mean_squared_error: 11.0704 Epoch 312/499 10/10 [==============================] - 0s 4ms/step - loss: 107.0692 - root_mean_squared_error: 10.3474 Epoch 313/499 10/10 [==============================] - 0s 4ms/step - loss: 122.8242 - root_mean_squared_error: 11.0826 Epoch 314/499 10/10 [==============================] - 0s 4ms/step - loss: 124.5996 - root_mean_squared_error: 11.1624 Epoch 315/499 10/10 [==============================] - 0s 4ms/step - loss: 79.5195 - root_mean_squared_error: 8.9174 Epoch 316/499 10/10 [==============================] - 0s 4ms/step - loss: 92.6550 - root_mean_squared_error: 9.6257 Epoch 317/499 10/10 [==============================] - 0s 4ms/step - loss: 101.7629 - root_mean_squared_error: 10.0878 Epoch 318/499 10/10 [==============================] - 0s 4ms/step - loss: 69.4462 - root_mean_squared_error: 8.3334 Epoch 319/499 10/10 [==============================] - 0s 4ms/step - loss: 111.8512 - root_mean_squared_error: 10.5760 Epoch 320/499 10/10 [==============================] - 0s 4ms/step - loss: 58.0298 - root_mean_squared_error: 7.6177 Epoch 321/499 10/10 [==============================] - 0s 4ms/step - loss: 96.1011 - root_mean_squared_error: 9.8031 Epoch 322/499 10/10 [==============================] - 0s 4ms/step - loss: 103.0697 - root_mean_squared_error: 10.1523 Epoch 323/499 10/10 [==============================] - 0s 4ms/step - loss: 119.5198 - root_mean_squared_error: 10.9325 Epoch 324/499 10/10 [==============================] - 0s 4ms/step - loss: 110.5344 - root_mean_squared_error: 10.5135 Epoch 325/499 10/10 [==============================] - 0s 4ms/step - loss: 78.9046 - root_mean_squared_error: 8.8828 Epoch 326/499 10/10 [==============================] - 0s 4ms/step - loss: 92.5438 - root_mean_squared_error: 9.6200 Epoch 327/499 10/10 [==============================] - 0s 4ms/step - loss: 118.7205 - root_mean_squared_error: 10.8959 Epoch 328/499 10/10 [==============================] - 0s 4ms/step - loss: 107.6221 - root_mean_squared_error: 10.3741 Epoch 329/499 10/10 [==============================] - 0s 4ms/step - loss: 84.4073 - root_mean_squared_error: 9.1873 Epoch 330/499 10/10 [==============================] - 0s 4ms/step - loss: 86.0440 - root_mean_squared_error: 9.2760 Epoch 331/499 10/10 [==============================] - 0s 4ms/step - loss: 87.3853 - root_mean_squared_error: 9.3480 Epoch 332/499 10/10 [==============================] - 0s 4ms/step - loss: 102.1507 - root_mean_squared_error: 10.1070 Epoch 333/499 10/10 [==============================] - 0s 4ms/step - loss: 79.0263 - root_mean_squared_error: 8.8897 Epoch 334/499 10/10 [==============================] - 0s 4ms/step - loss: 93.6443 - root_mean_squared_error: 9.6770 Epoch 335/499 10/10 [==============================] - 0s 4ms/step - loss: 87.5417 - root_mean_squared_error: 9.3564 Epoch 336/499 10/10 [==============================] - 0s 4ms/step - loss: 108.0818 - root_mean_squared_error: 10.3962 Epoch 337/499 10/10 [==============================] - 0s 4ms/step - loss: 91.9816 - root_mean_squared_error: 9.5907 Epoch 338/499 10/10 [==============================] - 0s 4ms/step - loss: 123.2979 - root_mean_squared_error: 11.1040 Epoch 339/499 10/10 [==============================] - 0s 4ms/step - loss: 79.9850 - root_mean_squared_error: 8.9434 Epoch 340/499 10/10 [==============================] - 0s 4ms/step - loss: 88.7695 - root_mean_squared_error: 9.4218 Epoch 341/499 10/10 [==============================] - 0s 4ms/step - loss: 81.5916 - root_mean_squared_error: 9.0328 Epoch 342/499 10/10 [==============================] - 0s 4ms/step - loss: 85.6305 - root_mean_squared_error: 9.2537 Epoch 343/499 10/10 [==============================] - 0s 4ms/step - loss: 69.9254 - root_mean_squared_error: 8.3621 Epoch 344/499 10/10 [==============================] - 0s 4ms/step - loss: 93.4728 - root_mean_squared_error: 9.6681 Epoch 345/499 10/10 [==============================] - 0s 4ms/step - loss: 83.0304 - root_mean_squared_error: 9.1121 Epoch 346/499 10/10 [==============================] - 0s 4ms/step - loss: 99.6710 - root_mean_squared_error: 9.9835 Epoch 347/499 10/10 [==============================] - 0s 4ms/step - loss: 105.3134 - root_mean_squared_error: 10.2622 Epoch 348/499 10/10 [==============================] - 0s 4ms/step - loss: 100.3674 - root_mean_squared_error: 10.0184 Epoch 349/499 10/10 [==============================] - 0s 4ms/step - loss: 79.2005 - root_mean_squared_error: 8.8995 Epoch 350/499 10/10 [==============================] - 0s 4ms/step - loss: 72.9107 - root_mean_squared_error: 8.5388 Epoch 351/499 10/10 [==============================] - 0s 4ms/step - loss: 93.2779 - root_mean_squared_error: 9.6580 Epoch 352/499 10/10 [==============================] - 0s 4ms/step - loss: 60.2545 - root_mean_squared_error: 7.7624 Epoch 353/499 10/10 [==============================] - 0s 4ms/step - loss: 81.5331 - root_mean_squared_error: 9.0296 Epoch 354/499 10/10 [==============================] - 0s 4ms/step - loss: 110.0850 - root_mean_squared_error: 10.4921 Epoch 355/499 10/10 [==============================] - 0s 4ms/step - loss: 69.4555 - root_mean_squared_error: 8.3340 Epoch 356/499 10/10 [==============================] - 0s 4ms/step - loss: 111.3146 - root_mean_squared_error: 10.5506 Epoch 357/499 10/10 [==============================] - 0s 4ms/step - loss: 86.7806 - root_mean_squared_error: 9.3156 Epoch 358/499 10/10 [==============================] - 0s 4ms/step - loss: 77.1680 - root_mean_squared_error: 8.7845 Epoch 359/499 10/10 [==============================] - 0s 4ms/step - loss: 61.2757 - root_mean_squared_error: 7.8279 Epoch 360/499 10/10 [==============================] - 0s 4ms/step - loss: 79.6746 - root_mean_squared_error: 8.9261 Epoch 361/499 10/10 [==============================] - 0s 4ms/step - loss: 84.1623 - root_mean_squared_error: 9.1740 Epoch 362/499 10/10 [==============================] - 0s 4ms/step - loss: 78.2379 - root_mean_squared_error: 8.8452 Epoch 363/499 10/10 [==============================] - 0s 4ms/step - loss: 76.0881 - root_mean_squared_error: 8.7228 Epoch 364/499 10/10 [==============================] - 0s 4ms/step - loss: 81.5477 - root_mean_squared_error: 9.0304 Epoch 365/499 10/10 [==============================] - 0s 4ms/step - loss: 79.2328 - root_mean_squared_error: 8.9013 Epoch 366/499 10/10 [==============================] - 0s 4ms/step - loss: 79.7650 - root_mean_squared_error: 8.9311 Epoch 367/499 10/10 [==============================] - 0s 4ms/step - loss: 62.5459 - root_mean_squared_error: 7.9086 Epoch 368/499 10/10 [==============================] - 0s 4ms/step - loss: 68.7330 - root_mean_squared_error: 8.2905 Epoch 369/499 10/10 [==============================] - 0s 4ms/step - loss: 67.6258 - root_mean_squared_error: 8.2235 Epoch 370/499 10/10 [==============================] - 0s 4ms/step - loss: 81.3962 - root_mean_squared_error: 9.0220 Epoch 371/499 10/10 [==============================] - 0s 4ms/step - loss: 65.2281 - root_mean_squared_error: 8.0764 Epoch 372/499 10/10 [==============================] - 0s 4ms/step - loss: 52.9818 - root_mean_squared_error: 7.2789 Epoch 373/499 10/10 [==============================] - 0s 4ms/step - loss: 71.4591 - root_mean_squared_error: 8.4534 Epoch 374/499 10/10 [==============================] - 0s 4ms/step - loss: 84.8312 - root_mean_squared_error: 9.2104 Epoch 375/499 10/10 [==============================] - 0s 4ms/step - loss: 86.4194 - root_mean_squared_error: 9.2962 Epoch 376/499 10/10 [==============================] - 0s 4ms/step - loss: 72.7539 - root_mean_squared_error: 8.5296 Epoch 377/499 10/10 [==============================] - 0s 4ms/step - loss: 57.8908 - root_mean_squared_error: 7.6086 Epoch 378/499 10/10 [==============================] - 0s 4ms/step - loss: 70.2828 - root_mean_squared_error: 8.3835 Epoch 379/499 10/10 [==============================] - 0s 4ms/step - loss: 93.4067 - root_mean_squared_error: 9.6647 Epoch 380/499 10/10 [==============================] - 0s 4ms/step - loss: 82.4511 - root_mean_squared_error: 9.0803 Epoch 381/499 10/10 [==============================] - 0s 4ms/step - loss: 73.9666 - root_mean_squared_error: 8.6004 Epoch 382/499 10/10 [==============================] - 0s 4ms/step - loss: 94.1300 - root_mean_squared_error: 9.7021 Epoch 383/499 10/10 [==============================] - 0s 4ms/step - loss: 72.3427 - root_mean_squared_error: 8.5055 Epoch 384/499 10/10 [==============================] - 0s 4ms/step - loss: 75.4334 - root_mean_squared_error: 8.6852 Epoch 385/499 10/10 [==============================] - 0s 4ms/step - loss: 84.2631 - root_mean_squared_error: 9.1795 Epoch 386/499 10/10 [==============================] - 0s 4ms/step - loss: 124.7763 - root_mean_squared_error: 11.1703 Epoch 387/499 10/10 [==============================] - 0s 4ms/step - loss: 119.2064 - root_mean_squared_error: 10.9182 Epoch 388/499 10/10 [==============================] - 0s 4ms/step - loss: 98.1082 - root_mean_squared_error: 9.9050 Epoch 389/499 10/10 [==============================] - 0s 4ms/step - loss: 64.8358 - root_mean_squared_error: 8.0521 Epoch 390/499 10/10 [==============================] - 0s 4ms/step - loss: 81.1399 - root_mean_squared_error: 9.0078 Epoch 391/499 10/10 [==============================] - 0s 4ms/step - loss: 84.8268 - root_mean_squared_error: 9.2101 Epoch 392/499 10/10 [==============================] - 0s 4ms/step - loss: 83.7239 - root_mean_squared_error: 9.1501 Epoch 393/499 10/10 [==============================] - 0s 4ms/step - loss: 70.8539 - root_mean_squared_error: 8.4175 Epoch 394/499 10/10 [==============================] - 0s 4ms/step - loss: 68.5831 - root_mean_squared_error: 8.2815 Epoch 395/499 10/10 [==============================] - 0s 4ms/step - loss: 65.2858 - root_mean_squared_error: 8.0800 Epoch 396/499 10/10 [==============================] - 0s 4ms/step - loss: 86.3415 - root_mean_squared_error: 9.2920 Epoch 397/499 10/10 [==============================] - 0s 4ms/step - loss: 83.7060 - root_mean_squared_error: 9.1491 Epoch 398/499 10/10 [==============================] - 0s 4ms/step - loss: 61.2839 - root_mean_squared_error: 7.8284 Epoch 399/499 10/10 [==============================] - 0s 4ms/step - loss: 73.4612 - root_mean_squared_error: 8.5710 Epoch 400/499 10/10 [==============================] - 0s 4ms/step - loss: 66.2297 - root_mean_squared_error: 8.1382 Epoch 401/499 10/10 [==============================] - 0s 4ms/step - loss: 92.2184 - root_mean_squared_error: 9.6030 Epoch 402/499 10/10 [==============================] - 0s 4ms/step - loss: 73.1071 - root_mean_squared_error: 8.5503 Epoch 403/499 10/10 [==============================] - 0s 4ms/step - loss: 75.6970 - root_mean_squared_error: 8.7004 Epoch 404/499 10/10 [==============================] - 0s 4ms/step - loss: 76.4649 - root_mean_squared_error: 8.7444 Epoch 405/499 10/10 [==============================] - 0s 4ms/step - loss: 90.3836 - root_mean_squared_error: 9.5070 Epoch 406/499 10/10 [==============================] - 0s 4ms/step - loss: 73.8937 - root_mean_squared_error: 8.5961 Epoch 407/499 10/10 [==============================] - 0s 4ms/step - loss: 90.8321 - root_mean_squared_error: 9.5306 Epoch 408/499 10/10 [==============================] - 0s 4ms/step - loss: 77.6536 - root_mean_squared_error: 8.8121 Epoch 409/499 10/10 [==============================] - 0s 4ms/step - loss: 68.5633 - root_mean_squared_error: 8.2803 Epoch 410/499 10/10 [==============================] - 0s 4ms/step - loss: 52.2145 - root_mean_squared_error: 7.2260 Epoch 411/499 10/10 [==============================] - 0s 4ms/step - loss: 63.3725 - root_mean_squared_error: 7.9607 Epoch 412/499 10/10 [==============================] - 0s 4ms/step - loss: 81.3739 - root_mean_squared_error: 9.0207 Epoch 413/499 10/10 [==============================] - 0s 4ms/step - loss: 69.5301 - root_mean_squared_error: 8.3385 Epoch 414/499 10/10 [==============================] - 0s 4ms/step - loss: 105.2468 - root_mean_squared_error: 10.2590 Epoch 415/499 10/10 [==============================] - 0s 4ms/step - loss: 85.4203 - root_mean_squared_error: 9.2423 Epoch 416/499 10/10 [==============================] - 0s 4ms/step - loss: 93.5870 - root_mean_squared_error: 9.6740 Epoch 417/499 10/10 [==============================] - 0s 4ms/step - loss: 93.9112 - root_mean_squared_error: 9.6908 Epoch 418/499 10/10 [==============================] - 0s 4ms/step - loss: 83.2955 - root_mean_squared_error: 9.1266 Epoch 419/499 10/10 [==============================] - 0s 4ms/step - loss: 66.2869 - root_mean_squared_error: 8.1417 Epoch 420/499 10/10 [==============================] - 0s 4ms/step - loss: 61.9622 - root_mean_squared_error: 7.8716 Epoch 421/499 10/10 [==============================] - 0s 4ms/step - loss: 74.8145 - root_mean_squared_error: 8.6495 Epoch 422/499 10/10 [==============================] - 0s 4ms/step - loss: 67.9372 - root_mean_squared_error: 8.2424 Epoch 423/499 10/10 [==============================] - 0s 4ms/step - loss: 68.9469 - root_mean_squared_error: 8.3034 Epoch 424/499 10/10 [==============================] - 0s 4ms/step - loss: 71.0594 - root_mean_squared_error: 8.4297 Epoch 425/499 10/10 [==============================] - 0s 4ms/step - loss: 57.8840 - root_mean_squared_error: 7.6082 Epoch 426/499 10/10 [==============================] - 0s 4ms/step - loss: 57.8217 - root_mean_squared_error: 7.6041 Epoch 427/499 10/10 [==============================] - 0s 4ms/step - loss: 59.4810 - root_mean_squared_error: 7.7124 Epoch 428/499 10/10 [==============================] - 0s 4ms/step - loss: 79.3839 - root_mean_squared_error: 8.9098 Epoch 429/499 10/10 [==============================] - 0s 4ms/step - loss: 78.0309 - root_mean_squared_error: 8.8335 Epoch 430/499 10/10 [==============================] - 0s 4ms/step - loss: 69.6138 - root_mean_squared_error: 8.3435 Epoch 431/499 10/10 [==============================] - 0s 4ms/step - loss: 79.3745 - root_mean_squared_error: 8.9092 Epoch 432/499 10/10 [==============================] - 0s 4ms/step - loss: 72.7271 - root_mean_squared_error: 8.5280 Epoch 433/499 10/10 [==============================] - 0s 4ms/step - loss: 63.3492 - root_mean_squared_error: 7.9592 Epoch 434/499 10/10 [==============================] - 0s 4ms/step - loss: 93.4459 - root_mean_squared_error: 9.6667 Epoch 435/499 10/10 [==============================] - 0s 4ms/step - loss: 59.2163 - root_mean_squared_error: 7.6952 Epoch 436/499 10/10 [==============================] - 0s 4ms/step - loss: 64.0705 - root_mean_squared_error: 8.0044 Epoch 437/499 10/10 [==============================] - 0s 4ms/step - loss: 59.3979 - root_mean_squared_error: 7.7070 Epoch 438/499 10/10 [==============================] - 0s 4ms/step - loss: 90.3382 - root_mean_squared_error: 9.5046 Epoch 439/499 10/10 [==============================] - 0s 4ms/step - loss: 74.9909 - root_mean_squared_error: 8.6597 Epoch 440/499 10/10 [==============================] - 0s 4ms/step - loss: 72.6102 - root_mean_squared_error: 8.5212 Epoch 441/499 10/10 [==============================] - 0s 4ms/step - loss: 70.4671 - root_mean_squared_error: 8.3945 Epoch 442/499 10/10 [==============================] - 0s 4ms/step - loss: 70.5421 - root_mean_squared_error: 8.3989 Epoch 443/499 10/10 [==============================] - 0s 4ms/step - loss: 85.9725 - root_mean_squared_error: 9.2721 Epoch 444/499 10/10 [==============================] - 0s 4ms/step - loss: 77.6328 - root_mean_squared_error: 8.8109 Epoch 445/499 10/10 [==============================] - 0s 4ms/step - loss: 66.1381 - root_mean_squared_error: 8.1325 Epoch 446/499 10/10 [==============================] - 0s 4ms/step - loss: 94.8315 - root_mean_squared_error: 9.7381 Epoch 447/499 10/10 [==============================] - 0s 4ms/step - loss: 69.0413 - root_mean_squared_error: 8.3091 Epoch 448/499 10/10 [==============================] - 0s 4ms/step - loss: 67.3082 - root_mean_squared_error: 8.2042 Epoch 449/499 10/10 [==============================] - 0s 4ms/step - loss: 54.0792 - root_mean_squared_error: 7.3539 Epoch 450/499 10/10 [==============================] - 0s 4ms/step - loss: 73.4150 - root_mean_squared_error: 8.5683 Epoch 451/499 10/10 [==============================] - 0s 4ms/step - loss: 52.1165 - root_mean_squared_error: 7.2192 Epoch 452/499 10/10 [==============================] - 0s 4ms/step - loss: 68.0033 - root_mean_squared_error: 8.2464 Epoch 453/499 10/10 [==============================] - 0s 4ms/step - loss: 71.1297 - root_mean_squared_error: 8.4338 Epoch 454/499 10/10 [==============================] - 0s 4ms/step - loss: 58.1534 - root_mean_squared_error: 7.6258 Epoch 455/499 10/10 [==============================] - 0s 4ms/step - loss: 83.0237 - root_mean_squared_error: 9.1117 Epoch 456/499 10/10 [==============================] - 0s 4ms/step - loss: 96.1151 - root_mean_squared_error: 9.8038 Epoch 457/499 10/10 [==============================] - 0s 4ms/step - loss: 93.6263 - root_mean_squared_error: 9.6761 Epoch 458/499 10/10 [==============================] - 0s 4ms/step - loss: 70.9329 - root_mean_squared_error: 8.4222 Epoch 459/499 10/10 [==============================] - 0s 4ms/step - loss: 55.4175 - root_mean_squared_error: 7.4443 Epoch 460/499 10/10 [==============================] - 0s 4ms/step - loss: 52.0365 - root_mean_squared_error: 7.2136 Epoch 461/499 10/10 [==============================] - 0s 4ms/step - loss: 61.1385 - root_mean_squared_error: 7.8191 Epoch 462/499 10/10 [==============================] - 0s 4ms/step - loss: 62.4435 - root_mean_squared_error: 7.9021 Epoch 463/499 10/10 [==============================] - 0s 4ms/step - loss: 72.5091 - root_mean_squared_error: 8.5152 Epoch 464/499 10/10 [==============================] - 0s 4ms/step - loss: 93.0780 - root_mean_squared_error: 9.6477 Epoch 465/499 10/10 [==============================] - 0s 4ms/step - loss: 96.2068 - root_mean_squared_error: 9.8085 Epoch 466/499 10/10 [==============================] - 0s 4ms/step - loss: 54.5454 - root_mean_squared_error: 7.3855 Epoch 467/499 10/10 [==============================] - 0s 4ms/step - loss: 61.7657 - root_mean_squared_error: 7.8591 Epoch 468/499 10/10 [==============================] - 0s 4ms/step - loss: 62.0398 - root_mean_squared_error: 7.8765 Epoch 469/499 10/10 [==============================] - 0s 4ms/step - loss: 55.5700 - root_mean_squared_error: 7.4545 Epoch 470/499 10/10 [==============================] - 0s 4ms/step - loss: 51.8918 - root_mean_squared_error: 7.2036 Epoch 471/499 10/10 [==============================] - 0s 4ms/step - loss: 64.8829 - root_mean_squared_error: 8.0550 Epoch 472/499 10/10 [==============================] - 0s 4ms/step - loss: 78.8583 - root_mean_squared_error: 8.8802 Epoch 473/499 10/10 [==============================] - 0s 4ms/step - loss: 63.6360 - root_mean_squared_error: 7.9772 Epoch 474/499 10/10 [==============================] - 0s 4ms/step - loss: 83.4960 - root_mean_squared_error: 9.1376 Epoch 475/499 10/10 [==============================] - 0s 4ms/step - loss: 71.2849 - root_mean_squared_error: 8.4430 Epoch 476/499 10/10 [==============================] - 0s 4ms/step - loss: 55.8491 - root_mean_squared_error: 7.4732 Epoch 477/499 10/10 [==============================] - 0s 4ms/step - loss: 63.7906 - root_mean_squared_error: 7.9869 Epoch 478/499 10/10 [==============================] - 0s 4ms/step - loss: 56.7969 - root_mean_squared_error: 7.5364 Epoch 479/499 10/10 [==============================] - 0s 4ms/step - loss: 89.5544 - root_mean_squared_error: 9.4633 Epoch 480/499 10/10 [==============================] - 0s 4ms/step - loss: 63.7620 - root_mean_squared_error: 7.9851 Epoch 481/499 10/10 [==============================] - 0s 4ms/step - loss: 63.1655 - root_mean_squared_error: 7.9477 Epoch 482/499 10/10 [==============================] - 0s 4ms/step - loss: 79.4503 - root_mean_squared_error: 8.9135 Epoch 483/499 10/10 [==============================] - 0s 4ms/step - loss: 82.6437 - root_mean_squared_error: 9.0909 Epoch 484/499 10/10 [==============================] - 0s 4ms/step - loss: 46.3859 - root_mean_squared_error: 6.8107 Epoch 485/499 10/10 [==============================] - 0s 4ms/step - loss: 59.8989 - root_mean_squared_error: 7.7394 Epoch 486/499 10/10 [==============================] - 0s 4ms/step - loss: 51.6947 - root_mean_squared_error: 7.1899 Epoch 487/499 10/10 [==============================] - 0s 4ms/step - loss: 61.1343 - root_mean_squared_error: 7.8188 Epoch 488/499 10/10 [==============================] - 0s 4ms/step - loss: 52.8938 - root_mean_squared_error: 7.2728 Epoch 489/499 10/10 [==============================] - 0s 4ms/step - loss: 70.1364 - root_mean_squared_error: 8.3748 Epoch 490/499 10/10 [==============================] - 0s 4ms/step - loss: 63.3853 - root_mean_squared_error: 7.9615 Epoch 491/499 10/10 [==============================] - 0s 4ms/step - loss: 63.0036 - root_mean_squared_error: 7.9375 Epoch 492/499 10/10 [==============================] - 0s 4ms/step - loss: 70.6481 - root_mean_squared_error: 8.4052 Epoch 493/499 10/10 [==============================] - 0s 4ms/step - loss: 78.1600 - root_mean_squared_error: 8.8408 Epoch 494/499 10/10 [==============================] - 0s 4ms/step - loss: 70.2673 - root_mean_squared_error: 8.3826 Epoch 495/499 10/10 [==============================] - 0s 4ms/step - loss: 46.7410 - root_mean_squared_error: 6.8367 Epoch 496/499 10/10 [==============================] - 0s 4ms/step - loss: 63.5580 - root_mean_squared_error: 7.9723 Epoch 497/499 10/10 [==============================] - 0s 4ms/step - loss: 52.5985 - root_mean_squared_error: 7.2525 Epoch 498/499 10/10 [==============================] - 0s 4ms/step - loss: 45.3725 - root_mean_squared_error: 6.7359 Epoch 499/499 10/10 [==============================] - 0s 4ms/step - loss: 57.4316 - root_mean_squared_error: 7.5784
Evaluation¶
fig, ax1 = plt.subplots(figsize= (10, 5))
plt.plot(history.history["loss"])
#plt.plot(history.history["root_mean_squared_error"])
plt.title("loss vs Epochs")
plt.ylabel("Loss")
plt.xlabel("Epoch")
plt.legend(["Loss"], loc = "upper left")
plt.show()
fig, ax1 = plt.subplots(figsize= (10, 5))
#plt.plot(history.history["loss"])
plt.plot(history.history["root_mean_squared_error"])
plt.title("RMSE vs Epochs")
plt.ylabel("RMSE")
plt.xlabel("Epoch")
plt.legend(["RMSE"], loc = "upper left")
plt.show()
plt.scatter(train_y, model.predict(train_x));
Test dataset¶
Now, let's look at our test dataset. In the test data, we aren't given the full time series until the engine fails, instead we are given a partial time series, plus the RUL value at the end of the time series as a separate file.
test_df.groupby('unit_number')['time_in_cycles'].max().describe()
count 100.000000 mean 130.960000 std 53.593479 min 31.000000 25% 88.750000 50% 133.500000 75% 164.250000 max 303.000000 Name: time_in_cycles, dtype: float64
We can see here that we have a wider range of time series durations here, so it won't necessarily work to clip everything to 127 observations. However, the LSTM network can take different-length time series, it's just the tensor dataset that has to have observations that are all the same size.
So we can just run the predictions for each observation individually.
test_predictions = []
for unit_number in test_df.unit_number.unique():
unit = test_df[test_df.unit_number == unit_number]
ts = np.expand_dims(np.array(unit[data_cols]), axis=0)
test_predictions.append(model.predict(ts)[0,0])
test_predictions = np.array(test_predictions)
We also need to load the RUL values for the test-set from the seperate file:
test_rul = pd.read_csv("CMaps/RUL_FD001.txt",sep=" ",header=None)
test_rul.describe()
0 | 1 | |
---|---|---|
count | 100.00000 | 0.0 |
mean | 75.52000 | NaN |
std | 41.76497 | NaN |
min | 7.00000 | NaN |
25% | 32.75000 | NaN |
50% | 86.00000 | NaN |
75% | 112.25000 | NaN |
max | 145.00000 | NaN |
test_rul = np.array(test_rul.drop([1], axis=1)).squeeze()
plt.scatter(test_rul, test_predictions);
sklearn.metrics.r2_score(test_rul, test_predictions)
0.5348076694093842
float(tf.keras.metrics.RootMeanSquaredError()(test_rul, test_predictions))
28.343013763427734
We can also just look at predictive performance in engines that are getting near the end of their life.
plt.scatter(test_rul[test_rul < 50], test_predictions[test_rul < 50]);
sklearn.metrics.r2_score(test_rul[test_rul < 50], test_predictions[test_rul < 50])
-1.6227147132084152
tf.keras.metrics.RootMeanSquaredError()(test_rul[test_rul < 50], test_predictions[test_rul < 50])
<tf.Tensor: shape=(), dtype=float32, numpy=18.007973>
Finally, let's save our model for later use.¶
model.save('JET_RUL.h5')
DeepCC¶
!deepCC JET_RUL.h5
[INFO] Reading [keras model] 'JET_RUL.h5' [ERROR] 2021-07-14 14:47:03.514221: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1 2021-07-14 14:47:04.478369: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1 2021-07-14 14:47:04.501068: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.501593: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: pciBusID: 0000:00:1e.0 name: Tesla T4 computeCapability: 7.5 coreClock: 1.59GHz coreCount: 40 deviceMemorySize: 14.75GiB deviceMemoryBandwidth: 298.08GiB/s 2021-07-14 14:47:04.501615: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1 2021-07-14 14:47:04.503249: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10 2021-07-14 14:47:04.504844: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10 2021-07-14 14:47:04.505120: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10 2021-07-14 14:47:04.506874: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10 2021-07-14 14:47:04.507879: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10 2021-07-14 14:47:04.511744: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7 2021-07-14 14:47:04.511847: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.512387: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.512857: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0 2021-07-14 14:47:04.513068: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2021-07-14 14:47:04.519625: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency: 2500000000 Hz 2021-07-14 14:47:04.520022: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5631eed4fd50 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2021-07-14 14:47:04.520047: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 2021-07-14 14:47:04.599202: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.599800: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5631ee5fc7d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: 2021-07-14 14:47:04.599823: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Tesla T4, Compute Capability 7.5 2021-07-14 14:47:04.600046: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.600561: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: pciBusID: 0000:00:1e.0 name: Tesla T4 computeCapability: 7.5 coreClock: 1.59GHz coreCount: 40 deviceMemorySize: 14.75GiB deviceMemoryBandwidth: 298.08GiB/s 2021-07-14 14:47:04.600589: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1 2021-07-14 14:47:04.600616: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcublas.so.10 2021-07-14 14:47:04.600628: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcufft.so.10 2021-07-14 14:47:04.600640: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcurand.so.10 2021-07-14 14:47:04.600648: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusolver.so.10 2021-07-14 14:47:04.600656: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcusparse.so.10 2021-07-14 14:47:04.600665: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7 2021-07-14 14:47:04.600738: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.601259: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:04.601722: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0 2021-07-14 14:47:04.601749: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1 2021-07-14 14:47:05.105210: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix: 2021-07-14 14:47:05.105250: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263] 0 2021-07-14 14:47:05.105257: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 0: N 2021-07-14 14:47:05.105456: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:05.106018: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-07-14 14:47:05.106500: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0. 2021-07-14 14:47:05.106529: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 12520 MB memory) -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:1e.0, compute capability: 7.5) Traceback (most recent call last): File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py", line 2800, in zeros tensor_shape.TensorShape(shape)) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 355, in _tensor_shape_tensor_conversion_function "Cannot convert a partially known TensorShape to a Tensor: %s" % s) ValueError: Cannot convert a partially known TensorShape to a Tensor: (None,) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/tljh/user/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/opt/tljh/user/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/opt/tljh/user/lib/python3.7/site-packages/deepC-0.13-py3.7-linux-x86_64.egg/deepC/compiler/reader/converter/keras2onnx.py", line 58, in <module> sys.exit(main(model_file_path, onnx_file_path)) File "/opt/tljh/user/lib/python3.7/site-packages/deepC-0.13-py3.7-linux-x86_64.egg/deepC/compiler/reader/converter/keras2onnx.py", line 32, in main model = tf.keras.models.load_model(model_file_path) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/saving/save.py", line 182, in load_model return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/saving/hdf5_format.py", line 178, in load_model_from_hdf5 custom_objects=custom_objects) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/saving/model_config.py", line 55, in model_from_config return deserialize(config, custom_objects=custom_objects) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/layers/serialization.py", line 175, in deserialize printable_module_name='layer') File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/utils/generic_utils.py", line 358, in deserialize_keras_object list(custom_objects.items()))) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/sequential.py", line 488, in from_config model.add(layer) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py", line 457, in _method_wrapper result = method(self, *args, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/sequential.py", line 221, in add output_tensor = layer(self.outputs[0]) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 926, in __call__ input_list) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1098, in _functional_construction_call self._maybe_build(inputs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2643, in _maybe_build self.build(input_shapes) # pylint:disable=not-callable File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/layers/preprocessing/normalization.py", line 133, in build initializer=init_ops.zeros_initializer) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_preprocessing_layer.py", line 114, in _add_state_variable **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 614, in add_weight caching_device=caching_device) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py", line 750, in _add_variable_with_custom_getter **kwargs_for_getter) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer_utils.py", line 145, in make_variable shape=variable_shape if variable_shape else None) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/variables.py", line 260, in __call__ return cls._variable_v1_call(*args, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/variables.py", line 221, in _variable_v1_call shape=shape) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/variables.py", line 199, in <lambda> previous_getter = lambda **kwargs: default_variable_creator(None, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/variable_scope.py", line 2597, in default_variable_creator shape=shape) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/variables.py", line 264, in __call__ return super(VariableMetaclass, cls).__call__(*args, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1518, in __init__ distribute_strategy=distribute_strategy) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1651, in _init_from_args initial_value() if init_from_fn else initial_value, File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py", line 114, in __call__ return array_ops.zeros(shape, dtype) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/util/dispatch.py", line 201, in wrapper return target(*args, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py", line 2747, in wrapped tensor = fun(*args, **kwargs) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py", line 2803, in zeros shape = ops.convert_to_tensor(shape, dtype=dtypes.int32) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1499, in convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 338, in _constant_tensor_conversion_function return constant(v, dtype=dtype, name=name) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 264, in constant allow_broadcast=True) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 275, in _constant_impl return _constant_eager_impl(ctx, value, dtype, shape, verify_shape) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 300, in _constant_eager_impl t = convert_to_eager_tensor(value, ctx, dtype) File "/opt/tljh/user/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py", line 98, in convert_to_eager_tensor return ops.EagerTensor(value, ctx.device_name, dtype) ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor. [ERROR] Couldn't convert keras model to ONNX. usage: deepCC [-h] [--output] [--format] [--verbose] [--profile ] [--app_tensors FILE] [--archive] [--bundle] [--debug] [--mem_override] [--init_net_model] [--input_data_type] [--input_shape] [--cc] [--cc_flags [...]] [--board] input