解决tf2 : AttributeError: 'Tensor' object has no attribute 'numpy'

问题描述:

环境:tf2.0
查看代码运行中tensor的值,

def create_mask(inputs, targets):
    input_leave_fun('create_mask',1)
    # 编码器只有padding_mask
    print("查看输入")
    print(type(inputs))

    print(inputs.numpy())		# 此处报错

解决方法

注释@tf.function

#@tf.function  注释此处
def train_step(inputs, targets):
    input_leave_fun('train_step',1)
    tar_inp = targets[:, :-1]
    tar_real = targets[:, 1:]
    print('tar_inp.shape {} tar_real.shape{}'.format(tar_inp.shape, tar_real.shape))
    # 构造mask,调用函数处
    encoder_padding_mask, look_ahead_mask, decoder_padding_mask = create_mask(inputs, tar_inp)

    with tf.GradientTape() as tape:
        pred, _ = transformer(inputs,
                              tar_inp,
                              True,
                              encoder_padding_mask,
                              look_ahead_mask,
                              decoder_padding_mask)
        loss = loss_fun(tar_real, pred)

        print("执行退出")
        sys.exit(0)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值