TensorFlow 2.x
急切执行默认情况下.numpy()
处于启用状态,因此只需调用Tensor对象即可。
import tensorflow as tfa = tf.constant([[1, 2], [3, 4]]) b = tf.add(a, 1)a. **numpy()**# array([[1, 2],# [3, 4]], dtype=int32)b. **numpy()**# array([[2, 3],# [4, 5]], dtype=int32)tf.multiply(a, b). **numpy()**# array([[ 2, 6],# [12, 20]], dtype=int32)
有关更多信息,请参见NumPy兼容性。值得注意的是(来自文档),
Numpy数组可以与Tensor对象共享内存。 对一个的任何更改都可能反映在另一个上。
大胆强调我的。副本可以返回也可以不返回,这是基于数据是在CPU还是GPU中的实现细节(在后一种情况下,必须从GPU复制到主机内存)。
但是我为什么得到AttributeError: 'Tensor' object has no attribute 'numpy'
?。
许多人对此问题发表了评论,有两个可能的原因:
- TF 2.0安装不正确(在这种情况下,请尝试重新安装),或者
- 已安装TF 2.0,但由于某些原因禁用了急切执行。在这种情况下,请致电
tf.compat.v1.enable_eager_execution()
启用它,或参阅下文。
如果禁用了“急切执行”,则可以构建一个图形,然后通过
tf.compat.v1.Session以下方式运行它:
a = tf.constant([[1, 2], [3, 4]]) b = tf.add(a, 1)out = tf.multiply(a, b)out.eval(session= **tf.compat.v1.Session()** ) # array([[ 2, 6],# [12, 20]], dtype=int32)
另请参见TF
2.0符号映射,以获取旧API到新API的映射。



