我已经使用了tensorflow一天,但是遇到了一些麻烦,当我导入tensorflow时,会出现AttributeError:'module'对象没有属性'XXXXXX'
我使用的是ubuntu14.04,python2.7,CUDA工具包8.0和CuDNN v5。 我的六个和protobuf的版本是: 名称:六 版本:1.10.0 位置:/usr/local/lib/python2.7/dist-packages 要求: 名称:protobuf 版本:3.2.0 位置:/usr/local/lib/python2.7/dist-packages 需要:六,setuptools
这是我的测试代码:
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})
我得到了这个输出:
tensorflow安装有问题吗?或任何其他问题?
答案 0 :(得分:169)
根据tensorflow 1.0.0 release notes,
tf.mul
,tf.sub
和tf.neg
已被弃用,支持tf.multiply
,tf.subtract
和tf.negative
。
您需要将tf.mul
替换为tf.multiply
。
答案 1 :(得分:3)
此操作以前在0.x版本中可用。使用release of TF 1.0 they introduced breaking changes to the API。
除了
tf.mul
,tf.sub
和tf.neg
已弃用,以支持tf.multiply
,tf.subtract
和tf.negative
使用以下理由重命名和更改了许多其他功能:
已将多个python API调用更改为类似于NumPy 密切。
因此,您在网络或书籍中找到的许多脚本都无法使用。好的是,他们中的大多数都可以通过迁移进行修复script。它可以与tf_upgrade.py --infile foo.py --outfile foo-upgraded.py
一起运行。它无法解决所有问题(列出限制here),但会为您节省大量工作。
答案 2 :(得分:0)
2.0兼容答案:
如果要从Tensorflow 1.x迁移到2.x,则 tf.multiply
的命令如下所示:
tf.compat.v1.math.multiply, tf.compat.v1.multiply, tf.compat.v2.math.multiply, tf.compat.v2.multiply
如果要从Tensorflow 1.x迁移到2.x,则 tf.subtract
的命令如下所示:
tf.compat.v1.math.subtract, tf.compat.v1.subtract, tf.compat.v2.math.subtract, tf.compat.v2.subtract
如果要从Tensorflow 1.x迁移到2.x,则 tf.negative
的命令如下所示:
tf.compat.v1.math.negative, tf.compat.v1.negative, tf.compat.v2.math.negative,
tf.compat.v2.negative
有关更多详细信息,请参见此Tensorflow Migration Guide。
答案 3 :(得分:-4)
在python-3中,使用pip install -r requirements.txt
代替tf.multiply
。