gpt4 book ai didi

tensorflow - 在tensorflow estimator类中,一步训练是什么意思?

转载 作者:行者123 更新时间:2023-12-02 09:13:15 26 4
gpt4 key购买 nike

具体来说,在一步之内,它是如何训练模型的?梯度下降和反向传播的退出条件是什么?

此处的文档:https://www.tensorflow.org/api_docs/python/tf/estimator/Estimator#train

例如

  mnist_classifier = tf.estimator.Estimator(model_fn=cnn_model_fn)

train_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": X_train},
y=y_train,
batch_size=50,
num_epochs=None,
shuffle=True)

mnist_classifier.train(
input_fn=train_input_fn,
steps=100,
hooks=[logging_hook])

我理解,一步训练意味着我们一次性为神经网络模型提供 batch_size 个数据点。我的问题是,在这一步中,它执行了多少次梯度下降?它是只进行一次反向传播和梯度下降,还是一直进行梯度下降,直到模型权重达到这批数据的最优值?

最佳答案

除了@David Parks 的回答之外,使用批处理执行梯度下降被称为随机梯度下降。您不是在每个训练样本之后更新权重,而是对批处理的梯度总和进行平均,并使用这个新梯度来更新您的权重。

例如,如果您有 1000 个训练样本并使用 200 个批处理,您可以计算 200 个样本的平均梯度,并用它更新您的权重。这意味着您总共只执行 5 次更新,而不是更新您的权重 1000 次。在足够大的数据集上,您将体验到更快的训练过程。

Michael Nielsen 在他的 book 中用一种非常好的方式来解释这个概念。 .

关于tensorflow - 在tensorflow estimator类中,一步训练是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49782346/

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