torch.tensor(sourcetensor)
と を使用してテンソルをコピーすることの違いは何tensor.clone().detach()
ですか?
torch.tensor(srctsr)
いつものようにデータをtensor.clone().detach()
コピーし、データもコピーします。
x = torch.tensor([1, 2, 3])
y1 = x.clone().detach()
y2 = torch.tensor(x)
x[0] = 0
print(y1, y2) # both are same
したがって、それらはまったく同じように見えます。torch.tensor()
以下は、およびについての PyTorch ドキュメントに記載されている説明です。torch.clone().detach()
したがって、torch.tensor(x) は x.clone().detach() と同等であり、torch.tensor(x, requires_grad=True) は x.clone().detach().requires_grad_(True) と同等です。clone() と detach() を使用した同等の方法が推奨されます。
では、それらが互いに同等である場合、なぜ他のもの.clone().detach()
よりも好まれるのでしょうか?