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, 还不熟悉
来源:CSDN
作者:littlehaes
链接:https://blog.csdn.net/littlehaes/article/details/103801007