Cainvas

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

In [1]:
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

In [2]:
!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.

In [3]:
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()
Out[3]:
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.

In [4]:
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:

In [5]:
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()
Out[5]:
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

In [6]:
train_df.describe().transpose()
Out[6]:
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.

In [7]:
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.

In [8]:
ax1 = train_df[train_df.unit_number == 1].plot(subplots=True, sharex=True, figsize=(20,20))
In [9]:
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:

In [10]:
train_df.groupby('unit_number')['time_in_cycles'].max().describe()
Out[10]:
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
In [11]:
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.)

In [12]:
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:

In [13]:
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:

In [14]:
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.

In [15]:
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.

In [16]:
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
Out[16]:
Index(['T24', 'T30', 'T50', 'P15', 'P30', 'Nf', 'Nc', 'Ps30', 'phi', 'NRf',
       'BPR', 'htBleed', 'W31', 'W32'],
      dtype='object')
In [17]:
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)
In [18]:
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
Out[18]:
(<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

In [19]:
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()])
In [20]:
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
_________________________________________________________________
In [21]:
model(train_batch[0])
Out[21]:
<tf.Tensor: shape=(2, 1), dtype=float32, numpy=
array([[ 41.977806],
       [-37.99696 ]], dtype=float32)>

Training

In [22]:
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

In [23]:
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()
In [24]:
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()
In [25]:
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.

In [26]:
test_df.groupby('unit_number')['time_in_cycles'].max().describe()
Out[26]:
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.

In [27]:
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:

In [28]:
test_rul = pd.read_csv("CMaps/RUL_FD001.txt",sep=" ",header=None)

test_rul.describe()
Out[28]:
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
In [29]:
test_rul = np.array(test_rul.drop([1], axis=1)).squeeze()
In [30]:
plt.scatter(test_rul, test_predictions);
In [31]:
sklearn.metrics.r2_score(test_rul, test_predictions)
Out[31]:
0.5348076694093842
In [32]:
float(tf.keras.metrics.RootMeanSquaredError()(test_rul, test_predictions))
Out[32]:
28.343013763427734

We can also just look at predictive performance in engines that are getting near the end of their life.

In [33]:
plt.scatter(test_rul[test_rul < 50], test_predictions[test_rul < 50]);
In [34]:
sklearn.metrics.r2_score(test_rul[test_rul < 50], test_predictions[test_rul < 50])
Out[34]:
-1.6227147132084152
In [35]:
tf.keras.metrics.RootMeanSquaredError()(test_rul[test_rul < 50], test_predictions[test_rul < 50])
Out[35]:
<tf.Tensor: shape=(), dtype=float32, numpy=18.007973>

Finally, let's save our model for later use.

In [37]:
model.save('JET_RUL.h5')

DeepCC

In [39]:
!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

In [ ]: