【发布时间】:2019-02-08 20:30:30
【问题描述】:
我正在使用 Keras 进行一项基本的分类任务,我似乎偶然发现了一个需要帮助的问题。
我有 200 个用于训练的样本和 100 个用于验证的样本,我打算使用 ImageDataGenerator 来增加我的任务的训练样本数量。我想确定传递给 fit_generator() 的训练图像的总数。
我知道 steps_per_epoch 定义了我们从生成器获得的批次总数,理想情况下它应该是样本数除以批次大小。
但是,这对我来说并不重要。这是我的代码的 sn-p:
num_samples = 200
batch_size = 10
gen = ImageDataGenerator(horizontal_flip = True,
vertical_flip = True,
width_shift_range = 0.1,
height_shift_range = 0.1,
zoom_range = 0.1,
rotation_range = 10
)
x,y = shuffle(img_data,img_label, random_state=2)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.333, random_state=2)
generator = gen.flow(x_train, y_train, save_to_dir='check_images/sample_run')
new_network.fit_generator(generator, steps_per_epoch=len(x_train)/batch_size, validation_data=(x_test, y_test), epochs=1, verbose=2)
我正在保存增强图像以查看图像如何从 ImageDataGenerator 生成,并确定从中生成的图像数量。
在运行此代码单个 epoch 后,我的目录中有 600 张图像,这是我无法达到的数字,或者我犯了一个错误。
如果能帮助我理解这段代码中的计算,我们将不胜感激。有没有人遇到过类似的问题?
TIA
【问题讨论】:
标签: python-3.x keras deep-learning classification generator