RuntimeError: Can‘t call numpy() on Variable that requires grad. Use var.detach().numpy()
生活随笔
收集整理的這篇文章主要介紹了
RuntimeError: Can‘t call numpy() on Variable that requires grad. Use var.detach().numpy()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 問題描述
如題,將PyTorch Tensor類型的變量轉換成numpy時報錯:
RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.2. 解決辦法
出現這個現象的原因是:待轉換類型的PyTorch Tensor變量帶有梯度,直接將其轉換為numpy數據將破壞計算圖,因此numpy拒絕進行數據轉換,實際上這是對開發者的一種提醒。如果自己在轉換數據時不需要保留梯度信息,可以在變量轉換之前添加detach()調用。假設原來的寫法是:
aaa.cpu().numpy()那么現在改為
aaa.cpu().detach().numpy()即可。
總結
以上是生活随笔為你收集整理的RuntimeError: Can‘t call numpy() on Variable that requires grad. Use var.detach().numpy()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Pytorch神经网络理论篇】 28
- 下一篇: 【Pytorch神经网络理论篇】 29