【发布时间】:2021-01-29 18:53:41
【问题描述】:
我使用optimizer.get_config() 来获取我的亚当优化器的最终状态(如https://stackoverflow.com/a/60077159/607528)但是.get_config() 正在返回初始状态。我认为这意味着以下之一
-
.get_config()应该返回初始状态 - 我的优化器没有更新,因为我设置错误
- 我的优化器未更新 tf 的 adam 已损坏(极不可能)
- 我的优化器正在更新,但在我调用
.get_config()之前正在某个地方重置 - 还有别的吗?
当然,我最初在一个包含训练和验证集等的适当项目中注意到了这个问题,但这里有一个非常简单的 sn-p,它似乎重现了这个问题:
import tensorflow as tf
import numpy as np
x=np.random.rand(100)
y=(x*3).round()
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x, y, epochs=500)
model.evaluate(x, y)
model.optimizer.get_config()
【问题讨论】:
-
你到底把什么叫做状态?如果你的意思是跑步的意思,那么你的方法是错误的。
-
@Dr.Snoopy 是的 - 我希望能够以或多或少相同的 lr/momentum 重新开始训练
标签: tensorflow keras tensorflow2.0 adam