【发布时间】:2018-02-24 06:03:38
【问题描述】:
我发现fit_generator() 会多跑几步。
我设置了steps_per_epoch=100。 i 和 k 都从 0 开始。但是在训练过程结束时,它会打印出k = 109。这种情况只有在添加验证数据时才会发生。
def data_generate(xfd, yfd, x_line_offset, y_line_offset):
while True:
k = 0
x_line_offset, y_line_offset = shuffle_list(x_line_offset, y_line_offset)
for i in range(100):
print('i = {}'.format(i))
print('k = {}'.format(k))
k += 1
x_train = get_line_by_offset(xfd, x_line_offset[i])
x_train = rescaling(x_train, 0, 65535, 0, 1)
y_train = get_line_by_offset(yfd, y_line_offset[i])
yield x_train, y_train
train_generator = data_generate(xfd_train, yfd_train, x_train_line_offset, y_train_line_offset)
validation_generator = data_generate(xfd_valid, yfd_valid, x_valid_line_offset, y_valid_line_offset)
model.fit_generator(train_generator, steps_per_epoch=100,
validation_data=validation_generator,
validation_steps=len(fix_y_valid_line_offset), epochs=1)
由于它会打印出k = 109,我假设它会运行更多步骤。不知道是不是bug。但是在k = 99 之后没有显示 keras 日志消息。
【问题讨论】:
标签: python keras generator yield