gpt4 book ai didi

python - 如何在 TensorFlow 中将张量转换为 ndarray?

转载 作者:行者123 更新时间:2023-12-01 00:39:32 25 4
gpt4 key购买 nike

我的目标是将张量转换为 ndarray 而无需“run”或“eval”。我想执行与示例相同的操作。

A = tf.constant(5)
B = tf.constant([[A, 1], [0,0]])

但是,ndarray 可以位于 tf.constant 内部,但张量不能。因此,我尝试使用以下示例执行操作,但 tf.make_ndarray 不起作用。

A = tf.constant(5)
C = tf.make_ndarray(A)
B = tf.constant([[C, 1], [0,0]])

https://github.com/tensorflow/tensorflow/issues/28840#issuecomment-509551333

正如上面的 github 链接中提到的,tf.make_ndarray 不起作用。准确地说,发生错误是因为tensorflow需要一个不存在的'tensor_shape',而不是存在的'shape'。

在这种情况下如何运行代码?

最佳答案

tf.make_ndarray用于转换TensorProto值到 NumPy 数组中。这些值通常是图中使用的常量。例如,当您使用tf.constant时,您可以创建一个 Const 操作,其属性 value 保存该操作将产生的常量值。该属性存储为 TensorProto 。因此,您可以将 Const 运算的值“提取”为 NumPy 数组,如下所示:

import tensorflow as tf

A = tf.constant(5)
C = tf.make_ndarray(A.op.get_attr('value'))
print(C, type(C))
# 5 <class 'numpy.ndarray'>

不过,一般来说,您无法将任意张量转换为 NumPy 数组,因为它们的值将取决于特定 session 中的变量值和馈送输入。

关于python - 如何在 TensorFlow 中将张量转换为 ndarray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com