77 votes

tensorflow: AttributeError: l'objet 'module' n'a pas d'attribut 'mul'

J'ai utilisé tensorflow pour UN jour,mais il arrive quelques problèmes,quand je l'importation tensorflow, il n'y aurait AttributeError: 'module' objet n'a pas d'attribut "XXXXXX"

Environnement

J'utilise ubuntu14.04, python2.7, CUDA toolkit 8.0 et CuDNN v5. Et les versions de mes six et protobuf sont: Nom: six Version: 1.10.0 Emplacement suivant: /usr/local/lib/python2.7/dist-packages Nécessite: Nom: protobuf Version: 3.2.0 Emplacement suivant: /usr/local/lib/python2.7/dist-packages Nécessite: six, setuptools

voici mon code de test:

import tensorflow as tf
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.mul(a, b)
with tf.Session() as sess:
    # Run every operation with variable input
    print "Addition with variables: %i" % sess.run(add, feed_dict={a: 2, b: 3})
    print "Multiplication with variables: %i" % sess.run(mul, feed_dict={a: 2, b: 3})

J'obtiens ce résultat:

enter image description here

Est-il un problème avec le tensorflow de l'installation? ou d'autres problèmes?

191voto

Meuu Points 1743

Selon les notes de publication de tensorflow 1.0.0 ,

tf.mul , tf.sub et tf.neg sont désapprouvés en faveur de tf.multiply , tf.subtract et tf.negative .

Vous devrez remplacer tf.mul par tf.multiply .

3voto

Salvador Dali Points 11667

Cette opération était précédemment disponible en 0.x versions. Avec la sortie de TF 1.0 ils ont introduit des modifications importantes à l'API. En plus

tf.mul, tf.sub et tf.neg sont abandonnés en faveur de l' tf.multiply, tf.subtract et tf.negative

de nombreuses autres fonctions ont été renommé et modifié avec la justification suivante:

Plusieurs API python appels ont été modifiés pour ressembler à NumPy plus de près.

Donc, beaucoup de scripts que vous avez déjà trouvé sur le web ou dans les livres, ne fonctionnera pas. La bonne chose est que la majorité d'entre eux peut être fixé avec leur migration script. Il peut être exécuté avec tf_upgrade.py --infile foo.py --outfile foo-upgraded.py. Il ne sera pas en mesure de résoudre tout (limitations sont répertoriés ici), mais vous permettra d'économiser beaucoup de travail.

-4voto

charlie Points 1

En python-3, utilisez tf.multiply au lieu de tf.mul .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X