我的训练数据集中的隐藏文件使 tensorflow return "Unknown image file format. One of JPEG, PNG, GIF, BMP required."

Hidden file in my training dataset which makes tensorflow return "Unknown image file format. One of JPEG, PNG, GIF, BMP required."

我有张量流模型,在训练第一个时期的第一部分,它一直工作到大约中点(735/2201 [=========>...... ..........]) 然后它 returns 标题中的错误。

首先我制作了一个脚本来删除该目录中所有不以 .jpg 结尾但没有任何改变的文件。

import os
for file in os.listdir(path):
    if not file.endswith('.jpg'):
        os.remove(os.path.join(path,file))

然后我打开我的 macs bash 并列出目录中的所有文件以查看是否有隐藏文件,但它们都只是 jpgs。

编辑:

Nessuno 的回答是正确的,但你必须遍历绝对路径而不仅仅是文件名,像这样应该可以工作

import os
import imghdr
#define your path
path = '' 

files = os.listdir(path)


for file in files:
    format = imghdr.what(os.path.join(path, file))
    if format != 'jpeg':
        os.remove(os.path.join(path, file))

我最终删除了 5 个不是 jpeg 的文件

您的 path 中有一些文件具有 .jpg 扩展名,但它包含不同的文件格式。

您可以使用 imghdr 库(Python 本身附带:https://docs.python.org/3/library/imghdr.html)并检查 header 是否等于 jpeg 和在这种情况下删除图像。

简而言之,您可以将脚本更改为:

import os
import imghdr

for file in os.listdir(path):
    if imghdr.what(file) != 'jpeg':
        os.remove(os.path.join(path, file))