2017-03-06 65 views
0

我寫了下面的測試代碼(一個更大的代碼的一部分)tensorflow - tf.where類型錯誤

import tensorflow as tf 

update_boolean = [True, False, True, False, True, True] 


with tf.Session() as sess: 
    op = tf.where(update_boolean, lambda: tf.train.AdamOptimizer(0.1), lambda: tf.no_op()) 

我收到以下錯誤

TypeError: Expected binary or unicode string, got <function <lambda> at 0x000000000118E400> 

怎樣才能解決這個問題?

我想要做的是創建一個列表\ tensor運營商(這是優化\什麼都不做)給定一定的條件(不使用tf.cond,因爲我想應用這個批處理,所以我有一個列表\ tensor布爾值) *在tensorflow中工作1.0

回答

0

tf.train.AdamOptimizer(0.1)返回一個Optimizer對象,但不清楚它如何與no_op關聯。我建議先創建優化器,然後調整漸變更新,而不是調整批量部分的梯度貢獻。 tf.where不適用於操作,它提供訪問張量的索引。

+0

謝謝。我明白。我認爲這將允許做一批tf.cond,但它沒有。 –