数据集中某个图像已损坏。使用此代码,看看它是否崩溃。它将在阅读之前打印文件名,将看到哪个图片已损坏。
import tensorflow as tf
import os
def validate_image(file_name):
tf.py_function(tf.print, inp=[file_name], Tout=[])
image = tf.io.read_file(file_name)
image = tf.io.decode_image(image, channels=3)
return image
os.chdir(r'path\to\images')
accepted_extensions = ('jpg', 'png', 'bmp', 'gif')
files = list(filter(lambda x: x.lower().endswith(accepted_extensions), os.listdir()))
ds = tf.data.Dataset.from_tensor_slices(files).map(validate_image)
for i in ds:
pass