2

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()よりも好まれるのでしょうか?

4

1 に答える 1