tf.estimator.LinearClassifier 输出权重解释

我是 tensorflow 和机器学习的新手,我正在经典 MNIST 数据集上训练 tf.estimator.LinearClassifier。

训练过程结束后,我正在阅读输出权重和偏差,classifier.get_variable_names()我得到:

"['global_step', 'linear/linear_model/bias_weights', 'linear/linear_model/bias_weights/part_0/Adagrad', 'linear/linear_model/pixels/weights', 'linear/linear_model/pixels/weights/part_0/Adagrad']"

我的问题是:linear/linear_model/bias_weights和之间有什么区别 linear/linear_model/bias_weights/part_0/Adagrad?它们的大小相同。

我能想象的唯一解释是linear/linear_model/bias_weightslinear/linear_model/bias_weights/part_0/Adagrad分别代表训练过程开始和结束时的权重。

但是,我不确定这一点,我在网上找不到任何东西。


慕田峪9158850
浏览 247回答 1
1回答

MM们

linear/linear_model/bias_weights 是你训练好的模型权重。linear/linear_model/bias_weights/part_0/Adagrad来自您使用AdaGrad优化器。这个优化器的特殊之处在于它保留了过去梯度的“记忆”,并使用它在每个训练步骤重新调整梯度。如果您想了解更多信息(非常数学),请参阅AdaGrad 论文。重要的部分是linear/linear_model/bias_weights/part_0/Adagrad存储这个“记忆”。它被返回是因为它在技术上是tf.Variable您程序中的一个,但它不是您模型中的实际变量/权重。只有linear/linear_model/bias_weights是。当然,这同样适用于linear/linear_model/pixels/weights。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python