愿天堂沒有Tensorflow! 阿門诬垂。
Invalid Argument Error: Invalid JPEG data size 49
在我準(zhǔn)備好訓(xùn)練數(shù)據(jù)结窘,準(zhǔn)備把數(shù)據(jù)放入網(wǎng)絡(luò)訓(xùn)練時(shí),在程序運(yùn)行到這一行時(shí)隧枫,提示上述錯誤:
image = tf.image.decode_jpeg(image_contents, channels=3)
根據(jù)提示悠垛,很明顯确买,是告訴我們文件里有非JPEG格式的圖片纱皆,可是我打開文件夾芭商,仔細(xì)找了一下铛楣,并沒有發(fā)現(xiàn)有任何非JPEG的圖片
通過下面的命令簸州,查了幾個疑似圖片也沒有發(fā)現(xiàn)錯誤:
file 005061.jpg
但是上述代碼不能幫我們找所有文件岸浑,于是我準(zhǔn)備了下面的程序來找出那個不是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格式的文件矢洲,最終發(fā)現(xiàn)我的眼睛沒有瞎(/大哭)缩焦,不是JPEG格式的文件原來是幾個隱藏文件,怪不得我找不到盖桥,所以只要點(diǎn)擊顯示隱藏文件呻拌,上述步驟就可以全省了(/大哭)藐握,但是上述步驟思路還是比較清晰的,如果有一些圖片后綴是jpg但是也有可能不是JPEG格式猾普,所以上述步驟還是很好的查找過程。