r2_score = stats.linregress(output[test_mask].float(), drug_graph_label[test_mask].float()).rvalue ** 2报错RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.
时间: 2023-12-25 13:02:45 浏览: 84
Python库 | graph_ltpl-0.44.tar.gz
这个错误的原因是你在调用 `numpy()` 方法时,该张量仍然需要梯度计算。在 PyTorch 中,只有不需要梯度的张量才能被转换为 NumPy 数组。要解决这个问题,你可以使用 `detach()` 方法将张量从计算图中分离出来,使其不再需要梯度计算,然后再将其转换为 NumPy 数组。修改代码如下所示:
```
r2_score = stats.linregress(output[test_mask].float().detach().numpy(),
drug_graph_label[test_mask].float().detach().numpy()).rvalue ** 2
```
阅读全文