Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重置Tensorflow adam优化器_Python_Tensorflow_Machine Learning_Neural Network - Fatal编程技术网

Python 重置Tensorflow adam优化器

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它的定义是这样的:

我正在用Tensorflow对一个神经网络模型进行K次交叉验证,所以我需要对模型进行K次训练

我想知道如何重置tf.train.AdamOptimizer的状态,以便在每次折叠后执行新的训练

有人建议:

 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,但在其他方面,这听起来很合理。