2016-10-03 49 views
0

我有一個成本,這取決於兩個變量列表ab
我想:Tensorflow control_dependencies不與列表

  1. 計算在當前點費用都梯度,
  2. 更新的損失w.r.t.第一個變量列表(a
  3. 更新損失w.r.t.第二個變量列表(b)。

按該順序。

要做到這一點我想是這樣的:

編輯:繼@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