3
n
(たとえばn = 3)のスコープとx
(たとえばx = 4)のスコープで定義された変数はありません。 スコープは、次のとおりです。1つのスコープの変数を抽出するためのtf.get_collection
model/generator_0
model/generator_1
model/generator_2
私は損失を計算したら、私が抽出し、実行時に基準に基づいて、一つだけのスコープのからすべての変数を提供したいです。明らかに動作しませんでした
train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, 'model/generator_'+tf.cast(idx, tf.string))
:したがって、私は選択範囲idx
の指数は、私はすでに試してみましたint32の
<tf.Tensor 'model/Cast:0' shape=() dtype=int32>
にキャストargminテンソルです。 idxを使用して特定のスコープに属する変数x
をすべてオプティマイザに渡す方法はありますか?
ありがとうございます!あなたはTF 1.0 RC1以降では、このような何かを行うことができ
ビネーシュスリニバサン
は、残念ながら、optim_varsはすべてのスコープからのすべての変数が含まれています。 (tf.variable_scopeで V1 = tf.Variable(tf.ones(())) loss1 = tf.identity(V1) :私の問題は、私はtf.variable_scope( 'generator_0')で〜 を持っているということですv2 = tf.Variable(tf.ones())) loss2 = tf.identity(v2) 〜 次に、tf.minimum(loss、loss2)を見つけて変数を渡したいと思いますオプティマイザにその損失に属しています。 – viggie
私はちょうど最新バージョン(夜間)でそれをテストし、 'optim_vars'には' adapoptim'スコープの変数が含まれています –
あなたは以前には分かっていないのと同じ損失を定義しています。私は 'min_idx = tf.cast(tf.argmin(tf.stack([loss1、loss2])、0)、tf.int32)'を見つけて、この 'loss = tf.stack([loss1、loss2 ])[min_idx] 'をオプティマイザに送ります。それで、私は、すべての変数をurの提案を使って定義しているのです。 – viggie