0
2つのサブグラフ間で変数を共有したいと思います。より正確には、私はfowolling操作を行うにはしたいと思います:4つのテンソルa
、b
、c
、d
とw
可変重み与え、W*a
、W*b
、W*c
、W*d
を計算するが、異なるサブグラフに。私が持っているコードは、以下の通りである:テンソルフローと変数共有でのvariable_scopeとname_scopeの理解
def forward(inputs):
w = tf.get_variable("weights", ...)
return tf.matmult(w, inputs)
with tf.name_scope("group_1"):
a = tf.placeholder(...)
b = tf.placeholder(...)
c = tf.placeholder(...)
aa = forward(a)
bb = forward(b)
cc = forward(c)
with tf.name_scope("group_2):
d = tf.placeholder(...)
tf.get_variable_scope().reuse_variable()
dd = forward(d)
この例では、実行するようだが、私は、私は何の変数がないというエラーを得たtf.get_variable_scope.reuse_variable()
を追加すると、変数W
がgroup_1
内、特に再利用されているかどうか私はわからないんだけど共有する。 テンソルボードでグラフを視覚化すると、サブグラフの中にいくつかのweigths_*
があります。
スケルトンコード( 'matmult'などのタイプミスを含む)ではなく、実際のコードを提供するのに本当に役立ちます。さらに、コードが "実行されているようだ"と言っているが、再利用したいときにいつも明示的に 'reuse_variables()'を指定しなければならないので、タイプミスを修正した後でも、 'bb = forward(b)変数。作業コードについては私の答えを見てください。 – MiniQuark