在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
我正在试验TensorFlow中的一些简单模型,其中包括与入门MNIST for ML Beginners example非常相似的模型,但具有较大的维度。使用梯度下降优化器时,没有问题,收敛性足够好。但是,当我尝试使用ADAM优化器时,出现如下错误:
提示在运行时未初始化的特定变量被改变。这个错误是什么意思?无论我使用的学习速率如何,它似乎都会发生。 最佳解决办法这应该是一个经常遇到的问题,当运行一个在初始化之前读取tf.Variable的操作时,通常会引发此异常。 AdamOptimizer类创建称为”slots”的其他变量来保存”m”和”v”累加器的值。 如果您好奇,请在这里查看源代码,它实际上非常易读:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/adam.py#L39。其他优化器,例如Momentum和Adagrad也使用插槽。 在训练模型之前,必须初始化这些变量。 初始化变量的正常方法是调用 (另外:不像其名称所暗示的那样, initialize_all_variables()不会初始化任何内容,它只会添加在运行时初始化变量的操作。) 在添加优化器之后,您必须执行的操作是call initialize_all_variables():
附图1:各种迭代算法训练开销(adam对比)
附图2:迭代算法动态图 参考资料
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13