tensorflow 如何获取tf.keras.preprocessing.image_dataset_from_目录中的文件数量

z8dt9xmd  于 2023-03-09  发布在  其他
关注(0)|答案(3)|浏览(147)

如何获取tf.keras.preprocessing.image_dataset_from_目录下的文件数量?

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

找到3670个文件,属于5个类。使用2936个文件进行训练。

wxclj1h5

wxclj1h51#

当你跑的时候

import numpy as np

len(np.concatenate([i for x, i in train_ds], axis=0))

这将为您提供文件数,在本例中为2936。

xj3cbfub

xj3cbfub2#

您可以使用 index_directory 帮助函数:

from tensorflow.python.keras.preprocessing import dataset_utils
file_paths, _, _ = dataset_utils.index_directory(data_dir, 'inferred', ('.bmp', '.gif', '.jpeg', '.jpg', '.png'))
print('Total files:', len(file_paths))
2vuwiymt

2vuwiymt3#

对于您的情况,这将工作:

len(train_ds.file_paths)

在对象中查找元数据的一个技巧是设置一个断点并运行调试器。一旦对象被初始化,你就可以检查它是由什么组成的。
在这种情况下,你可以很容易地发现train_ds包含一个名为file_paths的字段,进一步检查它,你会发现它只是一个普通的列表,我们可以很容易地从中提取长度。

相关问题