Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras图像数据扩充_Python_Keras_Deep Learning_Conv Neural Network - Fatal编程技术网

Python Keras图像数据扩充

Python Keras图像数据扩充,python,keras,deep-learning,conv-neural-network,Python,Keras,Deep Learning,Conv Neural Network,我发现很难理解ImageDataGenerator的\u目录中的flow\u是如何工作的,我正在使用以下代码为我的CNN模型增加图像数据,因为没有可用的训练图像 batch_size = 16 from keras.preprocessing.image import ImageDataGenerator train_transformed = 'dataset/train_transformed' train_datagen = ImageDataGenerator( rescale=

我发现很难理解ImageDataGenerator的\u目录中的flow\u是如何工作的,我正在使用以下代码为我的CNN模型增加图像数据,因为没有可用的训练图像

batch_size = 16
from keras.preprocessing.image import ImageDataGenerator
train_transformed = 'dataset/train_transformed'
train_datagen = ImageDataGenerator(
    rescale=1./255,
    horizontal_flip=True,
    fill_mode='nearest')

train_generator = train_datagen.flow_from_directory(
    'dataset/train',
    target_size=(150, 150),
    batch_size=batch_size,
    class_mode='binary',
    save_to_dir=train_transformed,
    save_prefix='train_aug',
    save_format='png')
这是一个包含20个正片和20个负片的二值分类问题。因此,我有一个包含两个子文件夹的dataset/train文件夹,每个子文件夹有20个图像。当我使用上述图像生成器训练模型时,我可以看到4160图像保存在dataset/train\u transformed文件夹中,并假设4160图像用于训练模型

model.fit_generator(
    train_generator,
    steps_per_epoch=1000 // batch_size,
    epochs=5,
    validation_data=validation_generator,
    validation_steps=100 // batch_size)
据我了解,, 每个历元的样本数量=批次大小X每个历元的步骤数
正如我的步骤_per_epoch=1000/16=62一样,每个epoch中的样本应该是62 x 16=992
“No of epochs”设置为5,因此生成的图像总数应992 x 5=4960
在相同的超参数下,生成的图像不是随机的。

只需要对上述配置进行解释。

您的计算似乎是正确的。还要注意,目录中的
flow\u
有一个
shuffle
参数(默认为true)。这意味着生成器将在每个历元期间生成992个图像(
batch\u size
times
steps\u per\u epoch
),但它们在每个历元中的显示顺序将不同

即使每个历元的显示顺序不同,最终用于训练的总图像应为4960,但情况并非如此。