我使用tensorflow2.0训练了一些照片。首先,我使用其他人收集的口袋妖怪数据(近1000张照片)。我成功地制作了模型。
然后,我想使用自己的照片。数量不多,只有20张照片。我运行了代码(看起来很成功):
[https://i.stack.imgur.com/cq204.png]
但是却收到错误消息
:Invalid argument: Expected image (JPEG, PNG, or GIF), got unknown format starting with 'RIFF\320\025\000\000WEBPVP8 '
[https://i.stack.imgur.com/msjiz.png]
我猜这是我照片的错误。 数量是否太少?或照片类型错误?
我检查了它全是JPG或PNG
答案 0 :(得分:3)
实际上,数据集中文件之一的文件类型不是指定的JPEG,PNG或GIF格式。尽管任何人都容易误以为文件的扩展名是这些格式之一,但文件的实际内容不是适当的格式。
这就是我所做的
我不知道数据目录中的哪个文件是RIFF
格式(您的情况是这样),所以我决定打印文件的二进制内容并手动检查它。 [这是蛮力的方式,这就是让我震惊的原因!]
我写了这段代码来帮助我做到这一点
import os
for i, filename in enumerate(os.listdir('./')):
with open(filename, 'rb') as imageFile:
if imageFile.read().startswith(b'RIFF'):
print(f"{i}: {filename} - found!")
我在所有的类文件夹中运行了此代码片段,发现这些文件夹中的文件确实具有RIFF格式,我也得到了文件名,但该文件的格式也不正确,然后删除了该文件。从目录。这解决了我的问题。