【问题标题】:Keras - OSError: cannot identify image fileKeras - OSError:无法识别图像文件
【发布时间】:2018-05-08 19:09:49
【问题描述】:

我正在尝试使用 Keras 训练 CNN,并且在运行 model.fit_generator 代码行时,我收到以下错误:

OSError: cannot identify image file      
'D:\\PDF\\Train\\notfactors\\notfactors59.jpg

奇怪的是,文件夹中不存在.jpg。以下是我所有的代码。

我使用的是来自以下 github 地址的完全相同的代码(不同的数据):

https://github.com/deeplizard/Keras_Jupyter_Notebooks/blob/master/CNN.ipynb

这里讨论过这个问题: OSError: cannot identify image file 'dataSet/.DS_Store'

但是对于这个问题,图像实际上是存在的。我迷路了。有人有想法吗?

【问题讨论】:

    标签: python neural-network keras conv-neural-network


    【解决方案1】:

    我不确定确切原因,但似乎某些数据已损坏或损坏,这可能在更改图像扩展名时发生,例如:png 到 jpg。我遇到了同样的错误并解决了它删除这些图像(必须删除 12/1802 图像)。

    【讨论】:

      【解决方案2】:

      model.fit_generator 函数调用在 jupyter notebook 中如下所示:

      model.fit_generator(train_batches, steps_per_epoch=4, 
                          validation_data=valid_batches, validation_steps=4, epochs=5, verbose=2)
      

      您将train_batches 变量作为参数传递。那是什么样子的?

      train_batches = ImageDataGenerator().flow_from_directory(train_path, target_size=(224,224), classes=['dog', 'cat'], batch_size=10)
      

      该作业正在train_path 位置查找图像。

      train_path = 'cats-and-dogs/train' 是相对路径。您的错误消息说它无法在位置 'D:\\PDF\\Train\\notfactors\\notfactors59.jpg 找到图像,该图像未在链接中提供的笔记本中的任何位置定义。

      您能否更新您的问题并为您正在使用的笔记本中的调用提供值?您似乎没有使用笔记本中的确切代码。这将有助于进一步解决此问题。

      【讨论】:

      • 我对@Nathan 的困惑表示歉意。我无法发布我的数据,所以我发布了带有可用数据的脚本。现在我回到办公室,我发现如果我复制图片并将它们发布到新文件夹,我不再收到错误消息。这没有回答“为什么”,但至少 CNN 正在运行。
      • 听起来是文件权限问题。如果您“复制”了文件并且它们有效,则可能是 CNN 代码无法读取原始文件。或者是文件路径问题。
      猜你喜欢
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多