2017-03-06 86 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,但它没有。 –