将张量转换为Tensorflow中的numpy数组?

将Tensorflow与Python绑定一起使用时,如何将张量转换为numpy数组?

回答:

急切执行默认情况下

处于启用状态,因此只需调用Tensor对象即可。

import tensorflow as tf

a = 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复制到主机内存)。

许多人对此问题发表了评论,有两个可能的原因:

  • 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的映射。

以上是 将张量转换为Tensorflow中的numpy数组? 的全部内容, 来源链接: utcz.com/qa/398175.html

回到顶部