为了账号安全,请及时绑定邮箱和手机立即绑定

'Tensor' 对象在 TF 2.0 的 tf.function 中没有属性 'numpy'

'Tensor' 对象在 TF 2.0 的 tf.function 中没有属性 'numpy'

慕仙森 2022-01-05 10:29:32
TensorFlow 2.0 中tensor.numpy()的 a 内部是否有其他选择tf.function?问题是,当我尝试在装饰函数中使用它时,我收到错误消息,'Tensor' object has no attribute 'numpy'而在外部运行时没有任何问题。通常,我会选择类似的东西,tensor.eval()但它只能在 TF 会话中使用,并且在 TF 2.0 中不再有会话。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

如果你有一个非修饰函数,你可以正确地使用numpy()来提取 a 的值tf.Tensor


def f():

    a = tf.constant(10)

    tf.print("a:", a.numpy())

当你装饰函数时,tf.Tensor对象改变语义,成为计算图的张量(普通的旧tf.Graph对象),因此该.numpy()方法消失了,如果你想获得张量的值,你只需要使用它:


@tf.function

def f():

    a = tf.constant(10)

    tf.print("a:", a)

因此,您不能简单地装饰一个 Eager 函数,而必须像在 Tensorflow 1.x 中那样重新编写它。


我建议您阅读这篇文章(和第 1 部分)以更好地了解其tf.function工作原理:https : //pgaleone.eu/tensorflow/tf.function/2019/04/03/dissecting-tf-function-part-2/


查看完整回答
反对 回复 2022-01-05
  • 1 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信