RuntimeError: Expected object of scalar type Byte but got scalar type Int for argument

  • 问题描述:
>>> b.type()
'torch.FloatTensor'
>>> b.int()
tensor([[ 0,  1, -1,  0,  0],
        [ 0,  0,  1,  0,  2]], dtype=torch.int32)
>>> b
tensor([[-0.2353,  1.5432, -1.4633, -0.1470,  0.5092],
        [ 0.9389,  0.0459,  1.0843, -0.7417,  2.2712]])
>>> a
tensor([[-0.6341,  1.6152, -0.7700, -0.0680,  0.6076],
        [-0.0076,  0.6456,  1.0000, -0.0277, -0.3403]])
>>> b.masked_fill_(a.int(),2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: Expected object of scalar type Byte but got scalar type Int for argument #2 'mask'

原因是masked_fill_(a.int(),2)这个函数的输入a.int()为int()类型,应该改为byte()类型

  • 解决方法
>>> a.byte()
tensor([[0, 1, 0, 0, 0],
        [0, 0, 1, 0, 0]], dtype=torch.uint8)
>>> b.int().masked_fill_(a.byte(),2)
tensor([[ 0,  2, -1,  0,  0],
        [ 0,  0,  2,  0,  2]], dtype=torch.int32)
>>> b.int()
tensor([[ 0,  1, -1,  0,  0],
        [ 0,  0,  1,  0,  2]], dtype=torch.int32)
>>> a.byte()
tensor([[0, 1, 0, 0, 0],
        [0, 0, 1, 0, 0]], dtype=torch.uint8)

即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值