Keras训练时报错:Batch 0: Invalid loss, terminating training

这个错误是由于无法计算loss造成的,有好多种情况会导致出现这种报错,需要慢慢排查。在这里整理一下排查的思路,给遇到相同问题的人一些思路。

Batch 0: Invalid loss, terminating training

循着这条思路,可以从下面几个方面检查自己的代码:

  1. 导入神经网络的图片格式都一样吗?我之前在制作数据集的时候,把几个数据集整合到一起,其中有一个数据集忘记重新对它resize,导致每次导入这些数据的时候就报错,因为我是通过generator导入的,一个batch里面就会出现几个异常size的数据,导致无法计算loss
  2. 检查softmax的神经节点个数与label数对不对应,若有100个分类,label是从1排到100就要将节点数设置成101,这时0位上是空着的,当然如果是从0到99编号的,就不需要考虑这个,这个地方不注意,很容易出事,我为了这个小错误,浪费了一个下午。
  3. 依然是label的问题,我整理的数据集,label编号是从几个数据集中提取的,比如只抽取0-4编号,8-12编号的数据,一共10个编号:【0,1,2,3,4,8,9,10,11,12】,这时如果设置softmax层的节点为10个,就会报错,要把上面的编号和对应的数据整理一遍,变成0-9的排号

你可能感兴趣的:(Keras)