python - neural - tensorflow: AttributeError: el objeto ''módulo'' no tiene el atributo ''mul''
tensorflow neural network (3)
De acuerdo con las notas de lanzamiento de tensorflow 1.0.0 ,
tf.mul
,tf.sub
ytf.neg
están en desuso a favor detf.multiply
,tf.subtract
ytf.negative
.
Deberá reemplazar
tf.mul
con
tf.multiply
.
He usado tensorflow durante UN día, pero surgen algunos problemas, cuando importo tensorflow, habría AttributeError: el objeto ''módulo'' no tiene atributo ''XXXXXX''
Ambiente
Uso ubuntu14.04, python2.7, CUDA toolkit 8.0 y CuDNN v5. Y las versiones de mi six y protobuf son: Nombre: six Versión: 1.10.0 Ubicación: /usr/local/lib/python2.7/dist-packages Requiere: Nombre: protobuf Versión: 3.2.0 Ubicación: / usr / local / lib / python2.7 / dist-packages Requiere: seis, herramientas de configuración
Aquí está mi código de prueba:
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})
Me sale esta salida:
¿Hay algún problema con la instalación de tensorflow? o cualquier otro problema?
En python-3 use
tf.multiply
lugar de
tf.mul
.
Esta operación estaba previamente disponible en versiones 0.x. Con el lanzamiento de TF 1.0, introdujeron cambios importantes en la API . Además de
tf.mul
,tf.sub
ytf.neg
están en desuso a favor detf.multiply
,tf.subtract
ytf.negative
muchas otras funciones fueron renombradas y cambiadas con la siguiente justificación:
Se han cambiado varias llamadas a la API de Python para parecerse más a NumPy.
Por lo tanto, muchos de los scripts que ya encontraste en la web o en los libros no funcionarán.
Lo bueno es que la mayoría de ellos se pueden arreglar con su
script
migración.
Se puede ejecutar con
tf_upgrade.py --infile foo.py --outfile foo-upgraded.py
.
No podrá resolver todo (las limitaciones se enumeran
here
), pero le ahorrará mucho trabajo.