6
votes

Tensorflow Désalable type 'Liste' en sess.run

Il y a littéralement des milliers de ces messages, mais je ne l'ai pas encore vu, ce qui répond à mon problème exact. S'il vous plaît n'hésitez pas à la fermer si on existe.

Je comprends que les listes sont mutables en python. En conséquence, nous ne pouvons pas stocker une liste comme une clé dans un dictionnaire. P>

J'ai le code suivant (une tonne de celui-ci est laissé de côté car il n'est pas pertinent): P>

x = tf.transpose(x, [1, 0, 2])
x = tf.reshape(x, [-1, num_input])
x = tf.split(0, num_steps, x)


lstm_cell = rnn_cell.BasicLSTMCell(num_hidden, forget_bias=forget_bias)
outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32)


0 commentaires

3 Réponses :


8
votes

Je me sens en quelque sorte stupide ici, mais je suis sûr que quelqu'un d'autre aura ce problème.

La ligne ci-dessus où le tf.split dans une liste est le problème.

Je n'ai pas divisé en fonctions distinctes et modifié directement x (comme indiqué dans mon code) et n'a jamais changé les noms. Donc, lorsque le code a couru dans sess.run , x n'était plus un espace réservé à tenseur comme prévu, mais plutôt une liste de tenseurs après transformation dans le graphique.

Renommer chaque transformation de X résolu le problème.

J'espère que cela aide quelqu'un.


0 commentaires

4
votes

Cette erreur se produit également si x et y in feed_dict = {x: batch_x, y: batch_y} sont pour certaines listes de raisons. Dans mon cas, j'ai mal orthographié comme x et y et ceux-ci étaient des listes dans mon code.


3 commentaires

Cela ne fournit pas de réponse à la question. Une fois que vous avez suffisamment réputation , vous pourrez Commentaire sur n'importe quel message ; à la place, Fournir des réponses Cela n'exige pas de clarification de l'Asker . - de l'avis


@YIVI Ce n'est peut-être pas la raison pour laquelle l'OP a eu le message d'erreur dans le titre, mais c'est une explication éventuellement possible pour cette erreur. Je viens de faire exactement la même typo, cette question a été le premier résultat de Google pour le message d'erreur et, grâce à cette réponse, je n'ai pas fini de perdre beaucoup de temps sur une erreur idiote. D'où je me tiens, cela fait une réponse valide et utile.


Merci cela m'a aidé à résoudre le problème, j'avais en effet d'autres variables avec des noms X et Y. qui était utilisé comme clé à l'intérieur de sess.run



-1
votes

J'ai accidentellement défini la variable x en tant que liste Python dans le code.

pourquoi il a jeté cette erreur? à cause de _, perte = sess.run ([optimiseur, coût], feed_x = {x: batch_x, y: batch_y}) , Batch_x ou Batch_Y < / code> Un de l'une ou l'autre est une liste ou un tuple. Ils doivent être un tensor , alors imprimez les deux types de variables pour avoir l'air de regarder ce qui ne va pas avec le code.


0 commentaires