tensorflow: AttributeError: Das Objekt 'module' hat kein Attribut 'mul'.


73

Ich habe Tensorflow für EINEN Tag verwendet, aber es gibt einige Probleme. Wenn ich Tensorflow importiere, gibt es AttributeError: Das Objekt 'module' hat kein Attribut 'XXXXXX'.

Umgebung

Ich verwende Ubuntu14.04, Python2.7, CUDA Toolkit 8.0 und CuDNN v5. Und Versionen meiner sechs und protobuf sind: Name: sechs Version: 1.10.0 Ort: /usr/local/lib/python2.7/dist-packages Benötigt: Name: protobuf Version: 3.2.0 Ort: / usr / local / lib / python2.7 / dist-packages Benötigt: sechs Setuptools

Hier ist mein Testcode:

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})

Ich bekomme diese Ausgabe:

Geben Sie hier die Bildbeschreibung ein

Gibt es ein Problem mit der Tensorflow-Installation? oder andere Probleme?

Antworten:


187

Gemäß den Versionshinweisen zu Tensorflow 1.0.0 ,

tf.mul, tf.subUnd tf.negsind für veraltet tf.multiply, tf.subtractund tf.negative.

Sie werden ersetzen müssen tf.mulmit tf.multiply.


7
Die Dokumentation sagt "veraltet", aber in Wirklichkeit hat TF sie gerade entfernt ...
— MaxB

Jep. Sie sind nicht veraltet, sondern werden vollständig entfernt. Vielen Dank für Ihre Antwort, hat mir eine Tonne Zeit gespart!
— Karthik Kannan

3

Diese Operation war zuvor in 0.x-Versionen verfügbar. Mit der Veröffentlichung von TF 1.0 wurden wichtige Änderungen an der API eingeführt . Zusätzlich zu

tf.mul, tf.subUnd tf.negsind für veraltet tf.multiply, tf.subtractundtf.negative

Viele andere Funktionen wurden mit folgender Begründung umbenannt und geändert:

Mehrere Python-API-Aufrufe wurden geändert, um NumPy ähnlicher zu werden.

Viele der Skripte, die Sie bereits im Internet oder in den Büchern gefunden haben, funktionieren also nicht. Gute daran ist , dass die Mehrheit von ihnen mit ihrer Migration behoben werden Skript . Es kann mit ausgeführt werden tf_upgrade.py --infile foo.py --outfile foo-upgraded.py. Es wird nicht in der Lage sein, alles zu lösen (Einschränkungen sind hier aufgeführt ), aber Sie sparen viel Arbeit.


0

2.0 Kompatible Antwort :

Die Befehle für tf.multiplydie Migration von Tensorflow 1.x auf 2.x sind nachstehend aufgeführt:

tf.compat.v1.math.multiply, tf.compat.v1.multiply, tf.compat.v2.math.multiply, tf.compat.v2.multiply

Die Befehle für tf.subtractdie Migration von Tensorflow 1.x auf 2.x sind nachstehend aufgeführt:

tf.compat.v1.math.subtract, tf.compat.v1.subtract, tf.compat.v2.math.subtract, tf.compat.v2.subtract

Die Befehle für tf.negativedie Migration von Tensorflow 1.x auf 2.x sind nachstehend aufgeführt:

tf.compat.v1.math.negative, tf.compat.v1.negative, tf.compat.v2.math.negative, 
tf.compat.v2.negative

Weitere Informationen finden Sie in diesem Tensorflow-Migrationshandbuch .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.