Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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.get_collection()中的集合?_Python_Neural Network_Tensorflow_Recurrent Neural Network - Fatal编程技术网

Python 是否清除tensorflow.get_collection()中的集合?

Python 是否清除tensorflow.get_collection()中的集合?,python,neural-network,tensorflow,recurrent-neural-network,Python,Neural Network,Tensorflow,Recurrent Neural Network,我正在斯坦福的课程中学习使用Tensorflow的神经网络。我在实施RNN时发现了这一点,不太明白为什么会累积损失: #这会将丢失操作添加到图表中,以进行批量培训 def添加损耗op(自身、输出): all_one=[tf.one([self.config.batch_size*self.config.num_steps])] 交叉熵=序列损失( [output],[tf.Reforme(self.labels_占位符,[-1])],all_-one,len(self.vocab)) tf.将_

我正在斯坦福的课程中学习使用Tensorflow的神经网络。我在实施RNN时发现了这一点,不太明白为什么会累积损失:

#这会将丢失操作添加到图表中,以进行批量培训
def添加损耗op(自身、输出):
all_one=[tf.one([self.config.batch_size*self.config.num_steps])]
交叉熵=序列损失(
[output],[tf.Reforme(self.labels_占位符,[-1])],all_-one,len(self.vocab))
tf.将_添加到_集合中(“总损失”,交叉熵)
#这不是每批培训的规模都在增加吗?
损耗=tf.add\u n(tf.get\u集合(“总损耗”))
回波损耗
get\u collection()
的文档没有提到任何关于清除变量的内容。由于这是为每个训练步骤运行的,因此损失是否会在每个历元/小批量训练中增加并结转


我还是NNs的新手,所以请纠正我在这方面的任何误解

我认为这里的添加实际上只是为了确保将“total_loss”集合中任何预先存在的损失添加到最终结果中。它不改变任何变量,只是将输入相加并返回总数。

如果我没有猜错的话,在将损失添加到收集op之前,还有其他op将可培训VAR的l2损失添加到收集op。如果有,则此加法表示将此“损失”集合中的所有损失(包括l2损失和预测损失)相加。您在“有许多迭代要运行add_to_loss操作,损失是增量吗?”中感到困惑,不,如果调试运行过程,您将看到在构建整个图形时,该集合的大小已经确定,在实际运行tensorflow时,该集合的大小或框架没有更改