gpt4 book ai didi

python - TensorFlow keras 模型 fit() 参数 steps_per_epoch 和 epochs 在训练集上的行为

转载 作者:行者123 更新时间:2023-12-05 02:49:48 25 4
gpt4 key购买 nike

我使用的是包含我的训练数据的 tf.data 数据集,其中包含(比方说)10 万张图像。我还使用了包含我的验证集的 tf.data 数据集。由于所有 100k 图像的一个纪元需要很长时间(在我的例子中大约一个小时)才能得到关于验证集性能的任何反馈,所以我在 tf.keras.Model 中设置了 steps_per_epoch 参数>fit()10000。使用 1 的批量大小会导致在达到 100k 图像时具有 10 个验证分数。为了完成我整个训练数据集的 100k 图像的一个 epoch,我将 epochs 参数设置为 10

但是,我不确定以这种方式使用 steps_per_epochepochs 是否会产生任何其他后果。使用这些参数以获得更频繁的性能反馈是否正确?还有一个更具体的问题,它是使用所有 100k 图像还是在每个“纪元”使用我训练集的前 10k 图像?我已经深入研究了 TensorFlow docs并阅读了几个不同的堆栈溢出问题,但我找不到任何结论来回答我自己的问题。希望对您有所帮助!

我使用的 Tensorflow 版本是 2.2.0。

最佳答案

Is it correct to use these parameters in order to get more frequentfeedback on performance?

是的,使用这些参数是正确的。这是我用来拟合模型的代码。

model.fit(
train_data,
steps_per_epoch = train_samples//batch_size,
epochs = epochs,
validation_data = test_data,
verbose = 1,
validation_steps = test_samples//batch_size)

does it use all 100k images or does it use the same first 10k images of mytraining set at every 'epoch'?

它使用训练数据中的所有图像。

为了更好地理解,Epoch 是学习算法将遍历整个训练数据集的次数。

其中 steps_per_epoch 是训练数据集中的样本总数除以批量大小。

例如,如果您有 100000 个训练样本并使用 100 的批量大小,则一个 epoch 将相当于 1000 steps_per_epoch。

注意:我们通常观察到批量大小是 2 的幂,这是因为优化矩阵运算库的有效工作。

关于python - TensorFlow keras 模型 fit() 参数 steps_per_epoch 和 epochs 在训练集上的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63919438/

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