model.fit和model.evaluate作用上有什么区别呢?如果同时出现两次model.evaluate是为了什么?
先用model.fit训练 再用model.evaluate测试 然后model.evaluate测试:
model.fit(train_data_x, train_data_y, batch_size=20000)
model.evaluate(x_test, y_test, batch_size=600)
model.evaluate(train_data_x, train_data_y, batch_size=600)
有什么作用?
下面是详细讲解,望采纳,有问题可以交流
在使用机器学习模型时,一般会使用 model.fit() 来训练模型(也就是拟合数据),然后使用 model.evaluate() 来评估模型的性能。
上例中有2个model.evaluate的原因,是因为为了更有效地进行模型评估,我们会把数据拆分为训练集(你代码里的train_data_x, train_data_y)和测试集(你代码中的x_test, y_test),我们会评估在训练集(也就是学习用的数据,见过标准答案的数据)上的效果,和测试集(没有见过的新数据)上的效果。
请教了大神后了解到:
1.模型的BatchNormalization,Dropout,LayerNormalization等优化手段只在fit时,对训练集有用;
2.在进行evaluate()的时候,这些优化都会失效,因此,再次进行evaluate(x_train,y_train),就算添加了batchsize,也不能达到相同的评估计算结果。