RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead

welcome to my blog

问题描述

我想将pytorch的计算结果赋值给numpy array, S[i, v] = torch.div(row_res, row_sum), 其中S是numpy array, 结果报错RuntimeError: Can’t call numpy() on Variable that requires grad. Use var.detach().numpy() instead, 意思是: 需要求导的变量无法调用numpy()方法

解决方法

既然报错信息说需要求导的变量无法调用numpy()方法, 那就将变量变为不需要求导的即可, 调用detach()方法即可使得变量不需要求导, 重新执行S[i, v] = torch.div(row_res, row_sum).detach(), 不再报错, 成功解决

上面的解决方法适用于不求导的变量, 如果变量需要求导呢?
另一种解决办法, 将S转成Tensor, 这样就不用在numpy array和Tensor中来回转换了, 同时也能指定变量是否需要求导
刚上手pytorch, 还不熟悉

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值