argument 'indices' must be tuple of Tensors, not Tensor

当我做loss backward的时候,遇到这个问题。

先是查到,这个问题可以通过autograd.variable解决,我将最后得到loss的中间变量加上之后觉得无法利用之前的信息
手写双线性插值也并不能解决这个问题
在pytorch社区发现类似问题,有人提出,不用index,而是用 gather, index_put_ , masked_scatter_  or grid_sample ,给我提供了解决方法。
https://discuss.pytorch.org/t/leaf-variable-moved-into-graph-interior/17489/5
有了整体方向,接下来一个比较大的问题,就是我发现这些函数都是针对某行或者某列操作,交叉用的话,还是需要提取最后得到的矩阵的对角线的值,还没无法避免取[index]的过程。
解决方法是,用.view(-1)将矩阵拉平,再找对应的值。
后面还涉及到我以为torch.cat没法把我的两个行向量组成一个两行的矩阵,最后发现是需要用unsqueeze进行维度扩展等等,不过都是小问题,卡的时间不久。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值