Expected tensor for argument #1 ‘indices‘ to have scalar type Long;but got torch.IntTensor instead

日萌社

 

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


        报错:RuntimeError: Expected tensor for argument #1 'indices' to have scalar type Long; 
              but got torch.IntTensor instead (while checking arguments for embedding)
        分析:训练的批量样本数据输入值需要是long值的Tensor数据,而不是int值的Tensor数据.
        解决:
            1.把输入数据data和目标数据data的类型值都从int转换为long
                1.可以加long()
                    source = Variable(data, requires_grad=False).long()
                    target = Variable(data, requires_grad=False).long()
                2.也可以加torch.LongTensor
                    source = Variable(torch.LongTensor(data), requires_grad=False)
                    target = Variable(torch.LongTensor(data), requires_grad=False)

            2.如果有使用以下这个第三方pyitcast包下的transformer_utils.py的话,可以如下修改
                    class SimpleLossCompute
                        def __call__(self, x, y, norm):
                            #return loss.data[0] * norm
                            #loss.data[0] 改成 loss.data.item()
                            return loss.data.item() * norm
            3.tensor变量.item() 的用法
                x = torch.randn(1)
                print(x)        #tensor([-0.4464])
                print(x.item()) #-0.44643348455429077

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值