¿Cómo puedo ejecutar un bucle con un tensor como su rango? (en tensorflow)

Quiero tener un bucle for que el número de sus iteraciones depende de un valor de tensor. Por ejemplo:

for i in tf.range(input_placeholder[1,1]): # do something 

Sin embargo me sale el siguiente error:

“TypeError: el objeto ‘Tensor’ no es iterable”

¿Qué tengo que hacer?

Para hacer esto, necesitará usar el tensorflow while loop ( tf.while_loop ) de la siguiente manera:

 i = tf.constant(0) while_condition = lambda i: tf.less(i, input_placeholder[1, 1]) def body(i): # do something here which you want to do in your loop # increment i return [tf.add(i, 1)] # do the loop: r = tf.while_loop(while_condition, body, [i]) 

El tipo del valor de retorno de las funciones de la API de TensorFlow Python, incluido tf.range es un Tensor . Un Tensor es un identificador simbólico de nodo en un gráfico que representa el cálculo. Usted realiza el cálculo real llamando al método eval en un Tensor , o pasando el objeto para run método de una Session . En su caso, tal vez lo que pretendía hacer era simplemente iterar sobre el range numpy .

 for in in np.range(...): # do something