繁体   English   中英

tf.keras.preprocessing.image_dataset_from_directory 值错误:找不到图像

[英]tf.keras.preprocessing.image_dataset_from_directory Value Error: No images found

belos 是我的代码,用于确保文件夹中有图像,但 tf.keras.preprocessing.image_dataset_from_directory 返回未找到图像。 我做错了什么? 谢谢。

DATASET_PATH = pathlib.Path('C:\\Users\\xxx\\Documents\\images')
image_count = len(list(DATASET_PATH.glob('.\\*.jpg')))
print(image_count)

output = 2715

batch_size = 4
img_height = 32
img_width = 32

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
    DATASET_PATH.name,
    validation_split=0.8,
    subset="training",
    seed=123,
    image_size=(img_height, img_width),
    batch_size=batch_size)

output:

Found 0 files belonging to 0 classes.
Using 0 files for training.
Traceback (most recent call last):
  File ".\tensorDataPreProcessed.py", line 23, in <module>
    batch_size=batch_size)
  File "C:\Users\xxx\Anaconda3\envs\xxx\lib\site-packages\tensorflow\python\keras\preprocessing\image_dataset.py", line 200, in image_dataset_from_directory
    raise ValueError('No images found.')
ValueError: No images found.

这里有两个问题,首先image_dataset_from_directory需要目录中每个类的子文件夹。 通过这种方式,它可以自动识别图像并将类标签分配给图像。

所以TF的标准文件夹结构是:

data
|
|___train
|      |___class_1
|      |___class_2
|
|___validation
|      |___class_1
|      |___class_2
|
|___test(optional)
       |___class_1
       |___class_2

另一个问题是您试图仅使用一个类来创建模型,这不是一种可行的方法。 该模型需要能够区分您尝试使用 GAN 生成的类,但要做到这一点,它需要属于此类的图像样本。

如果你正在进行无监督学习并且你真的只有一个 class 那么tf.keras.utils.image_dataset_from_directory有一个名为labels的参数:

注意:如果您不确定这是否适用于您的问题,您应该首先确定。 只是复制这个解决方案而不知道它是否是您的问题所需要的是一个坏主意。

文档

标签: “推断”(标签从目录结构生成)、无(无标签)或 integer 个标签的列表/元组,其大小与目录中找到的图像文件的数量相同。 标签应根据图像文件路径的字母数字顺序排序(通过 Python 中的 os.walk(directory) 获得)。

所以你可以将标签设置为None ,它会将所有图像导入 1 class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM