想要成为一个合格的码农 2022-12-14 20:00 采纳率: 33.3%
浏览 26
已结题

model.fit和model.evaluate作用

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)
有什么作用?

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-14 20:30
    关注

    下面是详细讲解,望采纳,有问题可以交流


    在使用机器学习模型时,一般会使用 model.fit() 来训练模型(也就是拟合数据),然后使用 model.evaluate() 来评估模型的性能。

    • model.fit() 用于训练模型,它接收训练数据和训练标签,并通过算法来更新模型的参数,使模型能够更好地拟合训练数据。
    • model.evaluate() 用于评估模型的性能,它接收测试数据和测试标签,并通过对模型在测试数据上的预测结果与真实标签的对比来计算模型的性能指标,例如准确率和损失值。

    上例中有2个model.evaluate的原因,是因为为了更有效地进行模型评估,我们会把数据拆分为训练集(你代码里的train_data_x, train_data_y)和测试集(你代码中的x_test, y_test),我们会评估在训练集(也就是学习用的数据,见过标准答案的数据)上的效果,和测试集(没有见过的新数据)上的效果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-12-14 22:19
    关注
    • 这篇文章:聊一聊model.fit()与model.evaluate()指标值不同的坑 也许有你想要的答案,你可以看看
    • 除此之外, 这篇博客: 聊一聊model.fit()与model.evaluate()指标值不同的坑中的 总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 请教了大神后了解到:
      1.模型的BatchNormalizationDropoutLayerNormalization等优化手段只在fit时,对训练集有用;
      2.在进行evaluate()的时候,这些优化都会失效,因此,再次进行evaluate(x_train,y_train),就算添加了batchsize,也不能达到相同的评估计算结果。


    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 已采纳回答 12月17日
  • 创建了问题 12月14日

悬赏问题

  • ¥30 频率与占空比均可调的方波发生器
  • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
  • ¥100 关于游戏app session获取的问题
  • ¥15 MYSQL数据库建表
  • ¥15 爬虫程序爬取TTGChina网站文章代码
  • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  • ¥15 如何用下图方法在AMESim中搭建离心泵模型
  • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道
  • ¥15 xcode15build的c++ dylib在10.15上不兼容
  • ¥15 CPLD如何实现在线逻辑分析