My training data consists of 3 variables X1
, X2
, X3
such that
Y = (X1 * X2 / 1e6) * X3
Example of data
X1 | X2 | X3 | Y |
---|---|---|---|
310 | 768 | 952 | 0.2267 |
157 | 889 | 860 | 0.1200 |
157 | 787 | 610 | 0.0754 |
97 | 385 | 118 | 0.044 |
using data size of 80000 rows trained over 500 epochs with early stopping.
I structured the network like so
model = Sequential()
model.add(Dense(32, input_dim=3, activation='relu'))
model.add(Dense(16, input_dim=3, activation='relu'))
model.add(Dense(8, input_dim=3, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error',optimizer='adam')
However, after training the output network were unable to predict even seen training examples.
Training loss stalled at about 0.0145
model.predict([
[310, 768, 952],
[157,787,610],
[1,1,1],
[5,5,5]
])
output:
array([[0.07321107],
[0.07321107],
[0.07321107],
[0.07321107]], dtype=float32)
Which is wrong. Wondering what should I do to correct this?