2016-10-03 9 views
0

私はコストがあります。これは変数のリストの2つであるabに依存します。
私がしたい:Tensorflow control_dependenciesがリストと一緒に動作しない

  1. は損失w.r.t.、現在の時点で
  2. 更新をコストの両方の勾配を計算します変数の最初のリスト(a
  3. 更新損失w.r.t.変数の第2のリスト(b)。

この順番で。

EDIT:私はこのような何かしようとした。これを行うために

@Yaroslav Bulatovの答えに続きを私は次のことを試してみました:これは正しいことをやっている場合

opt=tf.train.GradientDescentOptimizer(0.001) 
grad_cost_wrt_a=opt.compute_gradients(cost,[a]) 
grad_cost_wrt_b=opt.compute_gradients(cost,[b]) 

with tf.control_dependencies(grad_cost_wrt_a[0]): 
    with tf.control_dependencies(grad_cost_wrt_b[0]): 
    update_wrt_a=opt.apply_gradients(grad_cost_wrt_a) 
     with tf.control_dependencies([update_wrt_a]): 
     update_wrt_b=opt.apply_gradients(grad_cost_wrt_b) 

は疑問に思いますか? aとbが変数のリストである場合。

その後、行うことができるようにするには:

sess.run([update_wrt_a,update_wrt_b],feed_dict={x: x_input, y: y_input}) 

を第一に、これは私が手に動作しません: はテンソルまたは操作にリストを変換することはできませんが、control_dependenciesはテンソルのリストを受け取ることになっている...

私は本当にすべてのそれらのcontrol_dependenciesが必要ですか?

答えて

1

あなたgrad_cost_wrt_agrad_cost_wrt_b変数がリストされている、grad_cost_wrt_a[0], grad_cost_wrt_b[0]

+0

ような何かをやっていることは知られている必要があります!すみません、私はそれを逃した!ありがとう! – jean

+0

実際には、aとbが変数のリストである場合をどのように扱いますか? – jean

+0

私の質問を編集しましたか?私が最初のグラデーションにコントロールの依存関係のみを使用すると、可変タプルは私が望むように動作しますか? – jean

関連する問題