I want to have a for loop that the number of its iterations is depend on a tensor value. For example:
for i in tf.range(input_placeholder[1,1]):
# do something
The type of the return value of TensorFlow Python API functions, including tf.range
is a Tensor. A Tensor
is a symbolic handle to node in a graph that represents computation. You perform the actual computation by calling the eval
method on a Tensor
, or by passing the object to run
method of a Session
. In your case, perhaps what you intended to do was simply iterate over numpy
's range
.
for in in np.range(...):
# do something
To do this you will need to use the tensorflow while loop (tf.while_loop) as follows:
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])