tensorflow - 验证准确度与模型结果之间的差异。评估
问题描述
我是深度学习的新手,我无法弄清楚您在每个时期结束时获得的验证准确度与使用该model.evaluate()
方法获得的准确度之间有什么区别。例如:
model.fit(train_dataset, validation_data=test_dataset, epochs=1)
和
model.fit(train_dataset, epochs=1)
loss, scores = model.evaluate(test_dataset)
这两个脚本会返回相同的准确性吗?
解决方案
是的,两者将返回相同的值,但是它们用于不同的目的。
通常你不会evaluate
验证集。相反,您将评估另一个集合 test_set,但是在您的情况下,您似乎只有一个火车和一个 test_dataset,因此这两种方法(方法 in 的最后一个时期.fit
)将输出相同的精度。
该validation_data
参数用于在模型训练时输出准确度/损失指标,让您了解模型如何随着时间的推移对未调整模型权重的数据(即“看不见的”数据)进行学习。
但是,鉴于您查看了这些结果,并调整您的模型以尝试获得最佳验证准确度/损失,您已经引入了一定程度的偏差,因此您可能会对模型在真正看不见的情况下的表现产生过度乐观的印象数据 - 考虑一下,您正在针对那个非常具体的验证集进行优化,因此另一个数据集可能会给出不同的结果。
因此,将另一组 保留在一边是有意义test_dataset
的. 这就是model.evaluate
进来的地方,因为它是一种无需model.fit
再次调用即可查看准确性的方法。
推荐阅读
- java - JSoup 获取元素 Span
- material-ui - 向自动完成添加其他按钮
- reactjs - 无法在 react.js 中访问功能组件变量作为回报
- css - 为什么更换字体不仅会更改英文字符,还会更改中文字符?
- node.js - 当以顺序方式从多个 API 获取数据时,如何提高后端性能?
- react-native - react-native-track-player:在曲目设置之间添加静音?
- reactjs - 分派函数的中断 if 语句 - TypeScript,ReactJS
- flutter - 参数类型“图标?” 不能分配给参数类型“Widget”
- keycloak - 获取 keycloak 中所有客户端的角色列表
- python - python requests.get ValueError:int()的无效文字,基数为10:''