我有以下代码从目录中读取jpeg图像:
data_dir_str = "./photo/pults/samsung_small"
data_dir = pathlib.Path(data_dir_str)
image_count = len(list(data_dir.glob('*.*')))
print('images in directory: ' + str(image_count)) # 12 files in directory
sams_pults = list(data_dir.glob('*.jpg'))
img = PIL.Image.open(str(sams_pults[0]))
img_width, img_height = img.size
#img.show() # This works well - shows image
batch_size = 10
train_ds = tf.keras.utils.image_dataset_from_directory(
data_dir_str, #data_dir,
validation_split=0.2,
subset="training",
#seed=123,
image_size=(img_height, img_width),
batch_size=batch_size
)
即使img.show()
可以显示图像,tf.keras.utils.image_dataset_from_directory()
也会显示错误:
在目录{directory}中未找到图像。允许的格式:{ALLOWLIST_FORMATS}
2条答案
按热度按时间lrl1mhuk1#
我找到了解决方案:
./photo/pults/samsung_small
-〉./photo/pults
该路径不需要设置为放置图像的目录,而需要设置为上一级。因为目录名用于分类。
gev0vcfq2#
如果目录只包含图像而没有标签的子文件夹,则设置
label_mode=None
,函数将读取图像作为没有标签的数据集。例如