0
正如标题所示,我正在使用从我的机器源代码构建的tensorflow 1.2版。我不相信这会影响我的问题。Tensorflow 1.2分配变量
这两个代码块有什么区别? 最重要的一个原因是我从来没有在训练时得到分配的值,但底部的确是这样。我将我的所有时代数据复制到GPU中,然后根据需要抓取每批次的数据,因此此代码在同一会话中每批次的开始处运行。
代码是在Python中,所有这些都是在我的模型类中定义的。 所有self.data对象都是3D float32张量。
## the index i.e the current step in the epoch
index = tf.to_int32(self.step, name="step_to_int")
## code that doesn't work
tf.assign(self.input_data, self.all_input_data[index])
tf.assign(self.targets, self.all_target_data[index])
## code that works
self.input_data = self.all_input_data[index]
self.targets = self.all_target_data[index]
为什么它工作,然后当我做一个sess.run(TF,分配(model.all_data,数据))?另外,哪种“更好”的方法可以使用?分配还是只分配它? – ReverseFall
它的工作原理是因为你运行'tf.assign'方法的结果,这是一个持有赋值操作的op。我会编辑答案,使其更清晰。 – npf
好的,这是有道理的。我切换它分配tf.assign调用的结果,它再次工作。谢谢。 – ReverseFall