python - 如何在回调中获得批次中使用的确切训练示例?
问题描述
我在 Keras 中训练神经网络时遇到问题。每个 epoch,loss 都会稳步下降,达到 1e-9 左右,然后在 epoch 中间的某个地方(可能是任何地方),loss 会上升到 5e-5,最终稳定在每个 epoch 相同的最终 loss。我相信这是由于我的数据集中的一些脏数据导致模型无法训练超过某个点,尽管我真的不确定。
为了检验我的假设,我想创建一个自定义的 Keras 回调对象,它将确定一个批次后损失是否有足够大的跳跃,并指出哪个批次导致了跳跃。问题是batch
提供给的参数keras.callbacks.Callback.on_batch_end
只是批号,实际上并不是该批中使用的训练示例。此外,logs
传入的 dict 也只包含loss
and acc
。
这意味着我实际上无法确定哪些数据导致了损失的跳跃。有没有办法可以确定导致每个时期跳跃的确切训练示例?有什么方法可以在回调中访问它吗?
解决方案
推荐阅读
- ios - KeyedDecodingContainer 总是有零个键
- apache-spark - Spark kafka 在未获得范围内的偏移量时重新启动
- google-api - Google Sheet Api获取函数在nodejs中返回未定义的值
- dart - Flutter - 我正在寻找一种制作脉冲动画的方法
- neo4j - Cypher 中的数据透视表类型的查询(一次通过)
- mysql - 如何获得较低的日期 Laravel 和 mysql
- jenkins-pipeline - 如何增加詹金斯管道输入区域的大小?
- qt - QML 嵌套项的名称
- c# - 堆栈跟踪没有行号
- php - 即使选中,ReCaptcha V2 也会返回 False