keras数据耗尽时的数据增强

问题描述

为什么此代码不起作用,它直接取自《用Python进行深度学习》这本书。.我收到错误消息:

“警告:tensorflow:您的输入用完了数据;正在中断训练。请确保您的数据集或生成器可以生成至少steps_per_epoch * epochs个批次(在这种情况下为50个批次)。您可能需要使用构建数据集时使用repeat()函数。”

以下是相关代码的片段:

train_datagen = ImageDataGenerator(
    rescale=1./255,rotation_range=40,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True,)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        train_dir,target_size=(150,150),batch_size=32,class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        validation_dir,class_mode='binary')

history = model.fit_generator(
      train_generator,steps_per_epoch=100,epochs=100,validation_data=validation_generator,validation_steps=50)

我不明白为什么它要我在书中使用时更改批处理大小或steps_per_epoch。

解决方法

您可以尝试以下操作:

steps_per_epoch=train_generator.n//train_generator.batch_size

并且:

validation_steps=validation_generator.n//validation_generator.batch_size

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...