win电脑TensorFlow训练时,遇到Invalid argument: Expected image (JPEG, PNG, or GIF), got unknown format的解决办法

本文详细解析了在使用tfrecord进行网络训练时遇到的“Expected image (JPEG, PNG, or GIF)”错误,揭示了错误根源在于图片文件夹中混有非图片格式文件,并提供了具体的排查与解决步骤,包括如何通过Python脚本定位并移除问题文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决办法


我在生成tfrecord文件后,训练网络时遇到
Invalid argument: Expected image (JPEG, PNG, or GIF), got unknown format starting with ‘BM\356\243,\000\000\000\000\0006\000\000\000(\000’
从错误信息中可以看出,是由于图片文件夹中存在非图片文件,根据后面的信息可知我的是bm文件,这个不一定相同,根据自己的情况而来。

接着我们可以通过编写程序遍历所有文件找到:

import os
dir = 'image_path/'
for i, filename in enumerate(os.listdir(dir)):
    filename = dir + filename
    with open(filename, 'rb') as imageFile:
        if imageFile.read().startswith(b'xxx'):
            print(f"{i}: {filename} - found!")

注:
其中的image_path为图片存放的文件夹;
imageFile.read().startswith(b’xxxx’):其中的xxx为报错信息中的格式。

最后会打印出相应的文件名,删除即可,再重新生成tfrecord文件后训练。

参考自:参考网址

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值