Keras 服装回调。生成精确召回时,我在 _flow_index 中收到错误

2024-05-10

我正在使用 Keras 训练二元分类器。我想在每个时期后生成 precision_score 和 recall_score ,以便更深入地分析训练。在互联网上我找到了教程/帮助,例如:

  • https://medium.com/@thongonary/how-to-compute-f1-score-for-each-epoch-in-keras-a1acd17715a2 https://medium.com/@thongonary/how-to-compute-f1-score-for-each-epoch-in-keras-a1acd17715a2

  • https://github.com/keras-team/keras/issues/2607 https://github.com/keras-team/keras/issues/2607

I found 在自定义回调中访问验证数据 https://stackoverflow.com/questions/47676248/accessing-validation-data-within-a-custom-callback因为我使用的是 Keras fit_generator,所以这对我来说效果最好。它设法在每个时期后计算精确度和召回率。但是,我认为在创建自定义回调时我做错了什么。我收到以下错误消息:

File "...\envs\keras\lib\site-packages\keras\preprocessing\image.py", line 845, in _flow_index
current_index = (self.batch_index * self.batch_size) % self.n

ZeroDivisionError: integer division or modulo by zero

我最好的猜测是自定义回调错误地继承自 Keras。

有人经历过这个问题吗? 或者有人知道我缺少什么吗?

UPDATE

我想我现在明白了这个错误。在 Keras image.py 中当前索引除以self.n。在名为 Iterator 的类中(在 Keras 中)n定义为

n:整数,数据集中要循环的样本总数。

换句话说,我的理解是网络不能提供零样本。我意识到我的测试集是空的(0 个样本),因此出现错误消息。

纠正后(向测试集提供数据),代码运行良好:)


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keras 服装回调。生成精确召回时,我在 _flow_index 中收到错误 的相关文章

随机推荐