我将我的神经网络设置为使用均方误差,如下所示。据我了解(并通过阅读文档),这意味着如果一行的正确结果是 0.7 并且网络预测为 0.8,则此条目对损失的贡献是 (0.8 - 0.7) 平方 = 0.01
from keras.models import Sequential
from keras.layers import Dense
#...build up neural network layers here...
net.compile(optimizer = 'adam', loss = 'mean_squared_error')
net.fit(training_data, training_results, batch_size = 4, epochs = 100)
我得到以下输出。
纪元 100/100 1190/1190 [===============================] - 0s 133us/步 - 损失:0.0082
哇损失很小,我的小神经网络做得很好!但是,如果我在原始训练数据上验证结果
prediction = net.predict(training_data)
prediction_delta = (prediction - training_results)
尽管 prediction_delta 中的一些值总体上很小,但损失远高于 0.0082,单个值高达 0.44。请注意,这是用于拟合网络的相同训练数据,而不是测试数据(也显示类似结果),因此我希望返回值 0.082。Keras 是如何计算这个损失数的?