参数无效:预期的图像(JPEG,PNG或GIF),格式为'RIFF \ 320 \ 025 \ 000 \ 000WEBPVP8'

时间:2019-11-25 13:45:35

标签: python tensorflow photo tensorflow2.0

我使用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

1 个答案:

答案 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格式,我也得到了文件名,但该文件的格式也不正确,然后删​​除了该文件。从目录。这解决了我的问题。