tensorflow:AttributeError:'模块'对象没有属性'mul'


73

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

我得到以下输出:

在此处输入图片说明

张量流安装有什么问题吗?或其他任何问题?

Answers:


187

根据tensorflow 1.0.0发行说明

tf.multf.sub并且tf.neg被弃用,取而代之的tf.multiplytf.subtracttf.negative

您需要替换tf.multf.multiply


7
该文档说“已弃用”,但实际上TF只是删除了它们……
MaxB

对。它们并没有被弃用,而是被完全删除了。感谢您的回答,为我节省了很多时间!
Karthik Kannan

3

此操作以前在0.x版本中可用。随着TF 1.0发布,他们引入了对API的重大更改。此外

tf.multf.sub并且tf.neg不推荐使用tf.multiplytf.subtracttf.negative

许多其他功能被重命名和更改,理由如下:

几个python API调用已更改为更类似于NumPy。

因此,您已经在网上或书籍中找到的许多脚本将无法使用。好消息是它们中的大多数都可以使用其迁移脚本进行修复。它可以与运行tf_upgrade.py --infile foo.py --outfile foo-upgraded.py。它不能解决所有问题(此处列出局限性),但可以节省很多工作。


0

2.0兼容答案

tf.multiply如果要从Tensorflow 1.x迁移到2.x的命令,如下所示:

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

tf.subtract如果要从Tensorflow 1.x迁移到2.x的命令,如下所示:

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

tf.negative如果要从Tensorflow 1.x迁移到2.x的命令,如下所示:

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

有关更多详细信息,请参见此《 Tensorflow迁移指南》


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.