Tensorflow Error笔记 4

2017-07-17  本文已影响0人  BookThief

愿天堂没有Tensorflow! 阿门。

Invalid Argument Error: Invalid JPEG data size 49

在我准备好训练数据,准备把数据放入网络训练时,在程序运行到这一行时,提示上述错误:

image = tf.image.decode_jpeg(image_contents, channels=3)

根据提示,很明显,是告诉我们文件里有非JPEG格式的图片,可是我打开文件夹,仔细找了一下,并没有发现有任何非JPEG的图片


通过下面的命令,查了几个疑似图片也没有发现错误:

file 005061.jpg

但是上述代码不能帮我们找所有文件,于是我准备了下面的程序来找出那个不是JPEG格式的文件:

import numpy as np
import os
train_dir = '/home/mml/net/rain-1/'
def get_files(file_dir):
    name = []
    for file in os.listdir(file_dir):
            name.append(file_dir + file)
    print('There are %d image' %(len(name)))
    return name
    
a = get_files(train_dir)
b = len(a)
from PIL import Image
def is_jpg(filename):
    try:
        i=Image.open(filename)
        return i.format =='JPEG'
    except IOError:
        print(filename)
        return False
for i in range(b):
    is_jpg(a[i])

通过上述代码我们可以找到文件夹下面所有不是JPEG格式的文件,最终发现我的眼睛没有瞎(/大哭),不是JPEG格式的文件原来是几个隐藏文件,怪不得我找不到,所以只要点击显示隐藏文件,上述步骤就可以全省了(/大哭),但是上述步骤思路还是比较清晰的,如果有一些图片后缀是jpg但是也有可能不是JPEG格式,所以上述步骤还是很好的查找过程。

上一篇下一篇

猜你喜欢

热点阅读