正如标题所说,我正在为我的机器使用从源代码构建的 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]