コードにエラーがあり、どの方法でも修正できません。
エラーは単純です。値を返します。
_torch.exp(-LL_total/T_total)
_
後でパイプラインでエラーを取得します。
_RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
_
cpu().detach().numpy()
などのソリューションでも同じエラーが発生します。
どうすれば修正できますか?ありがとう。
_import torch
tensor1 = torch.tensor([1.0,2.0],requires_grad=True)
print(tensor1)
print(type(tensor1))
tensor1 = tensor1.numpy()
print(tensor1)
print(type(tensor1))
_
これは、行tensor1 = tensor1.numpy()
とまったく同じエラーになります。
_tensor([1., 2.], requires_grad=True)
<class 'torch.Tensor'>
Traceback (most recent call last):
File "/home/badScript.py", line 8, in <module>
tensor1 = tensor1.numpy()
RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
Process finished with exit code 1
_
これはエラーメッセージで提案されました。var
を変数名に置き換えてください
_import torch
tensor1 = torch.tensor([1.0,2.0],requires_grad=True)
print(tensor1)
print(type(tensor1))
tensor1 = tensor1.detach().numpy()
print(tensor1)
print(type(tensor1))
_
期待通りに戻る
_tensor([1., 2.], requires_grad=True)
<class 'torch.Tensor'>
[1. 2.]
<class 'numpy.ndarray'>
Process finished with exit code 0
_
実際の値の定義に加えて、勾配を必要としない別のテンソルにテンソルを変換する必要があります。この他のテンソルは、派手な配列に変換できます。 Cf. これについては.pytorchの投稿 。 (より正確には、pytorch Variable
ラッパーから実際のテンソルを取得するためにそうする必要があると思います。cf。 this other Discussion.pytorch post を参照)。
同じエラーメッセージが表示されましたが、matplotlibで散布図を描画するためのものでした。
このエラーメッセージから抜け出す方法は2つあります。
fastai.basics
ライブラリと:from fastai.basics import *
torch
ライブラリのみを使用する場合は、requires_grad
with:
with torch.no_grad():
(your code)