web-dev-qa-db-fra.com

Comment puis-je exécuter une boucle avec un tenseur comme plage? (en tensorflow)

Je veux avoir une boucle for dont le nombre d'itérations dépend d'une valeur de tenseur. Par exemple:

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

Cependant, j'obtiens l'erreur suivante:

"TypeError: l'objet 'Tenseur' n'est pas itérable"

Que devrais-je faire?

17
Poorya Pzm

Pour ce faire, vous devrez utiliser le tensorflow while loop ( tf.while_loop ) comme suit:

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])
25
patapouf_ai