Eu percebo pequenas diferenças quando pego resultado do model.fit (history) e quando pego do model.evaluate()
# fit model
Hist = model_rna.fit(x_train, y_train,
validation_data=(x_val, y_val),
callbacks=[early_stopping],
verbose=2,
epochs=epochs)
# get last trained mse
hist = pd.DataFrame(Hist.history)
mse_train = [i for i in np.array(hist['mse']).tolist()]
print(mse_train[-1])
Resultado: 0.03789380192756653
# evaluate the trained model
model_rna.evaluate(x_train, y_train)
Resultado: 5/5 [==============================] - 0s 4ms/step - loss: 0.0379 - mse: 0.0379 - acc: 0.0000e+00 [0.03786146640777588, 0.03786146640777588, 0.0]
Se fizer o cálculo "manual":
Sum_of_Squared_Errors= np.sum( (y_train - modelo_rna.predict(x_train))**2 )
print(Sum_of_Squared_Errors/len(y_train))
Resultado: 0.03786148292614872
Esse é exatamente o mesmo que encontro usando o model.evaluate mas um pouco diferente do model.fit (history()
Por que isso?
Obs.: Minhas amostras de treinamento e validação estão fixas.