Keras - OSError: 无法识别图像文件

3

我正在尝试使用Keras训练卷积神经网络,但在运行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' 但是对于这个问题,图片实际上是存在的。我很迷茫。有人有想法吗?
2个回答

3
我不确定确切的原因,但似乎一些数据已经损坏或受损。这可能会发生在更改图像扩展名时,例如:将png更改为jpg。我曾遇到同样的错误,并通过删除其中的图像(不得不删除12/1802张图像)来解决它。

1

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

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现在可以运行了。 - Jordan
听起来像是文件权限问题。如果你“复制”了这些文件并且它们可以工作,那么可能是CNN代码无法读取原始文件,或者存在文件路径问题。 - Nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接