タイトルには、私のマシンのソースから構築されたテンソルフローバージョン1.2が使用されていると書かれています。私はそれが私の質問に影響を与えるとは思わない。Tensorflow 1.2変数の割り当て
コードのこれら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、データ)を割り当てる)を行うときに、なぜそれが、その後動作しますか?また、どちらが「より良い」方法ですか? tf.assignまたはそれを割り当てるだけですか? – ReverseFall
'tf.assign'メソッドの結果を実行するのは、assignオペレーションを保持するopであるためです。答えを編集してより明確にします。 – npf
さて、それは理にかなっています。私はtf.assign呼び出しの結果を代入するように切り替え、それは再び動作します。ありがとう。 – ReverseFall