我手动构建了一个数据生成器,每次调用会产生一个[input, target]
元组。 我将生成器设置为每个周期随机打乱训练样本的顺序。然后我使用fit_generator
调用我的generator
,但是对这个函数中的“shuffle”参数感到困惑:
fit_generator(self, generator, steps_per_epoch=None, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_queue_size=10, workers=1, use_multiprocessing=False, shuffle=True, initial_epoch=0)
来自Keras API:
shuffle:是否在每个 epoch 开始的时候,对 batch 的顺序进行洗牌。只能使用 keras.utils.Sequence 实例。
我原本认为“shuffle”应该由generator
来完成。如果我的自定义generator
决定在每次迭代中输出哪个批次,它怎么能洗牌批次的顺序呢?