如何知道 flow_from_directory 中的图像数量

我们可以使用带有 flow_from_directory 方法的 ImageDataGenerator 生成图像数据集。


train_datagen = ImageDataGenerator(

    rescale=1./255, #scale images from integers 0-255 to floats 0-1.

    shear_range=0.2,

    zoom_range=0.2, # zoom in or out in images

    horizontal_flip=True) #horizontal flip of images

train_set = train_datagen.flow_from_directory(..)

并显示:


Found 200 images belonging to 2 classes

我想写一个循环来计算train_set上的图像数量


For image in train_set:

    count = count+1

print(count)

但这并没有显示任何东西!


慕少森
浏览 161回答 3
3回答

杨__羊羊

得到没有。图像,请尝试使用以下代码。train_set.samples

Qyouu

要访问数据集的样本数量,您首先必须知道它是哪种类型:如果您使用的是 ImageDataGenerator,那么:type(train_ds)将返回 tensorflow.python.keras.preprocessing.image.DirectoryIterator。在这种情况下,您可以通过以下方式访问样本数量:train_ds.samples但是,如果您正在使用以下方法创建数据集:train_ds = tf.keras.preprocessing.image_dataset_from_directory( rescale = 1/255. , etc...)然后type(train_ds)将返回 tensorflow.python.data.ops.dataset_ops.BatchDataset 这意味着您可以使用间接访问样本数len(train_ds.file_paths)

DIEA

__iter__将是您的解决方案。首先,您尝试预测train_set的类型。如果您不知道。print(type(train_set)) #then you find **keras.preprocessing.image.DirectoryIterator**现在您想对这种类型的数据应用一些功能或修改,请点击此处的链接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python