tensorflow:AttributeError:'module'对象没有属性'mul'

时间:2017-02-14 02:52:27

标签: python tensorflow

我已经使用了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})

我得到了这个输出:

enter image description here

tensorflow安装有问题吗?或任何其他问题?

4 个答案:

答案 0 :(得分:169)

根据tensorflow 1.0.0 release notes

  

tf.multf.subtf.neg已被弃用,支持tf.multiplytf.subtracttf.negative

您需要将tf.mul替换为tf.multiply

答案 1 :(得分:3)

此操作以前在0.x版本中可用。使用release of TF 1.0 they introduced breaking changes to the API

除了

  

tf.multf.subtf.neg已弃用,以支持tf.multiply,   tf.subtracttf.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