Python 重置Tensorflow adam优化器
我正在用Tensorflow对一个神经网络模型进行K次交叉验证,所以我需要对模型进行K次训练 我想知道如何重置tf.train.AdamOptimizer的状态,以便在每次折叠后执行新的训练 有人建议:Python 重置Tensorflow adam优化器,python,tensorflow,machine-learning,neural-network,Python,Tensorflow,Machine Learning,Neural Network,我正在用Tensorflow对一个神经网络模型进行K次交叉验证,所以我需要对模型进行K次训练 我想知道如何重置tf.train.AdamOptimizer的状态,以便在每次折叠后执行新的训练 有人建议: sess.run(tf.variables_initializer(optimizer.variables())) 但这会引发以下错误: 'Operation' object has no attribute 'variables' 优化器是如何定义的?嘿@jdehesa它的定义是这样的:
sess.run(tf.variables_initializer(optimizer.variables()))
但这会引发以下错误:
'Operation' object has no attribute 'variables'
优化器是如何定义的?嘿@jdehesa它的定义是这样的:
tf.train.AdamOptimizer(lr).最小化(损失)
对,所以你应该做一些类似于optimizer=tf.train.AdamOptimizer(lr)
的事情,然后train\u op=optimizer.最小化(损失)
,然后你发布的代码应该可以工作(您必须在训练循环中为训练操作
替换优化器
)。感谢您回答@jdehesa。您认为只执行会话.run(tf.global\u variables\u initializer()会更好吗
在每次折叠开始时重新初始化网络的权重?或者我应该像你解释的那样重置优化器吗?如果你在同一个会话中做所有事情,那么我想你必须重置每个折叠上的所有内容以进行交叉验证。我会创建init\u op=tf.global\u variables\u initializer()
只需事先一次,而不是在每个折叠的图中创建新的操作,但在其他方面对我来说这听起来很合理。优化器是如何定义的?嘿@jdehesa它的定义是这样的:tf.train.AdamOptimizer(lr)。最小化(损失)
对,所以你应该做一些类似于optimizer=tf.train.AdamOptimizer(lr)的事情
然后是train\u op=optimizer。最小化(损失)
,那么你发布的代码应该可以工作(你必须在训练循环中替换train\u op
的优化器)。感谢你回答@jdehesa。你认为只需执行会话。运行(tf.global\u variables\u initializer()
在每次折叠开始时重新初始化网络的权重?或者我应该像你解释的那样重置优化器吗?如果你在同一个会话中做所有事情,那么我想你必须重置每个折叠上的所有内容以进行交叉验证。我会创建init\u op=tf.global\u variables\u initializer()
只需提前一次,而不是在每次折叠的图表中创建新的ops,但在其他方面,这听起来很合理。