我是 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_weights和linear/linear_model/bias_weights/part_0/Adagrad分别代表训练过程开始和结束时的权重。但是,我不确定这一点,我在网上找不到任何东西。
1 回答
MM们
TA贡献1886条经验 获得超2个赞
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
。
添加回答
举报
0/150
提交
取消