tensorflow教程代码失败并出现AttributeError:“ Tensor”对象没有属性“ numpy”

时间:2018-08-17 17:59:37

标签: python tensorflow

只需使用Python 3.6.6和CUDA 9.0在Win10上安装tensorflow-gpu 1.10 在https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/notebooks/custom_training.ipynb#scrollTo=_WRu7Pze7wk8

处尝试示例代码

顶部出现问题:

class Model(object):   def __init__(self):
    # Initialize variable to (5.0, 0.0)
    # In practice, these should be initialized to random values.
    self.W = tf.Variable(5.0)
    self.b = tf.Variable(0.0)
       def __call__(self, x):
    return self.W * x + self.b    model = Model()

assert model(3.0).numpy() == 15.0

在Google笔记本上运行时,失败并显示

  

RuntimeError:启用急切执行时不支持tf.Variable。请改用tf.contrib.eager.Variable

您应该解决该问题。修复后,代码在Notebook上运行不会出错。

但是,当我将其复制到本地.py文件并运行该文件时,却遇到了这个意外错误:

  

回溯(最近通话最近):     文件“ linear.py”,第15行       断言模型(3.0).numpy()== 15.0   AttributeError:“ Tensor”对象没有属性“ numpy”

但是在Python的交互模式下...

>>> import tensorflow as tf
>>> tf.enable_eager_execution()
>>> v = tf.contrib.eager.Variable(4.7)
>>> print( v.numpy() )
4.7
>>>

有什么作用? (请记住,我是一个Python和tensorflow新手)

1 个答案:

答案 0 :(得分:0)

  1. 关于Google笔记本中的RuntimeError。您正在GitHub的master分支中查看笔记本的版本。笔记本的该版本旨在与代码库的master分支同步,其中tf.Variable可以正常工作。如果要查找与TensorFlow特定发行版相对应的笔记本,则应查看相应发行分支中的版本。例如,https://colab.research.google.com/github/tensorflow/tensorflow/blob/r1.10/tensorflow/contrib/eager/python/examples/notebooks/eager_basics.ipynb似乎www.tensorflow.org/tutorials错误地链接到master分支版本,因此这肯定是网站上的错误。

更新:网站已修复,链接应指向相应的发行分支。

  1. 第二个错误表明缺少对tf.enable_eager_execution()的调用,或者代码正在with tf.Graph().as_default()块内运行。那会发生什么吗?

希望有帮助。