形状が未知の変数を使用したい場合があります(ndimは既知で修正済みですが)。動的形状で変数を最適化する
私はそれが好きで宣言します。
initializer = tf.random_uniform_initializer()
shape = (s0, s1, s2) # these are symbolic vars
foo_var = tf.Variable(initializer(shape=shape), name="foo", validate_shape=False)
これは私がw.r.t.を最適化したいポイントまでの計算グラフを作成するときに動作するようです静的形状情報に依存すると思われるいくつかの機能create_zeros_slot
にオプティマイザに失敗し、この変数、すなわち:
optimizer = tf.train.AdamOptimizer(learning_rate=0.1, epsilon=1e-4)
optim = optimizer.minimize(loss, var_list=[foo_var])
は(それがprimary.get_shape().as_list()
を使用します)。 (私はこれを上流に報告しましたhere)
したがって、オプティマイザを使用すると静的な形状の変数でのみ動作しますか?
I.e.変数の形の変更ごとに、私は計算グラフを再構築する必要がありますか? レクリエーションを避ける方法はありますか?
最適化中、変更されることはありません。ある時点で、私はそれを明示的に新しい値にリセットします。これは別の形をとる可能性があります。次に、最適化をもう一度やりたい毎回計算グラフを再作成したくない。 – Albert
最適化が影響しない場合は、作成時に変数を訓練できないように設定してみてください。 – chasep255
しかし、私は特にこの変数を最適化したいと思います。 – Albert