首页 > 解决方案 > Keras 服装回调。生成精确召回时,_flow_index 出现错误

问题描述

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

我发现在自定义回调中访问验证数据对我来说效果最好,因为我使用的是 Keras fit_generator。它设法在每个 epoch 后计算精度和召回率。但是,我认为在创建自定义回调时我做错了。我收到以下错误消息:

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 继承。

有人遇到过这个问题吗?或者有谁知道我错过了什么?

更新

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

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

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

更正后(用数据输入测试集)代码运行良好:)

标签: pythoncallbackkerasprecision

解决方案


推荐阅读