gpt4 book ai didi

keras - fit_generator中的 “samples_per_epoch”和 “steps_per_epoch”有什么区别

转载 作者:行者123 更新时间:2023-12-03 10:25:54 25 4
gpt4 key购买 nike

我被这个问题困扰了好几天...

我的问题是,为什么训练时间之间有如此大的差异,以至于我将生成器的batch_size设置为“1”和“20”。

如果将 batch_size 设置为 1 ,则 1个时期训练时间大约为 180〜200秒
如果将 batch_size 设置为 20 ,则 1个时期训练时间大约为 3000〜3200 sec

但是,这些训练时间之间的可怕差异似乎是异常的……,因为它应该是相反的结果:
batch_size = 1,训练时间-> 3000〜3200秒。
batch_size = 20,训练时间-> 180〜200秒。

我生成器的输入不是文件路径,而是已经加载到
通过调用“np.load()”来存储内存。
因此,我认为I / O权衡问题不存在。

我正在使用Keras-2.0.3,后端是tensorflow-gpu 1.0.1

我已经看到了合并后的PR的更新,
但似乎此更改完全不会影响任何内容。 (用法与原始用法相同)

这里的link是我自定义生成器的要点,也是fit_generator的一部分。

最佳答案

使用fit_generator时,每个时期处理的样本数为batch_size * steps_per_epochs。从关于fit_generator的Keras文档中:https://keras.io/models/sequential/

steps_per_epoch: Total number of steps (batches of samples) to yield from generator before declaring one epoch finished and starting the next epoch. It should typically be equal to the number of unique samples of your dataset divided by the batch size.



这与“适合”的行为不同,后者的“批处理”大小通常会加快速度。

总之,如果要使训练时间保持相同或更低,则在使用fit_generator增加batch_size时,应将steps_per_epochs减少相同的因子。

关于keras - fit_generator中的 “samples_per_epoch”和 “steps_per_epoch”有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com