将张量转换为Tensorflow中的numpy数组?
将Tensorflow与Python绑定一起使用时,如何将张量转换为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复制到主机内存)。
。
许多人对此问题发表了评论,有两个可能的原因:
- 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