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