pytorchでtensorデータとnumpyデータ変換で注意する問題
転載先:(pytorchでtensorデータとnumpyデータ変換で注意した問題)[https://blog.csdn.net/nihate/article/details/82791277]pytorchでnumpyをarrayデータをテンソルtensorデータに変換する一般的な関数はtorchである.from_义齿Tensor(array)は、最初の関数が一般的です.コードで違いを見てみましょう.
配列aの要素値を修正し,テンソルbの要素値も変化したが,テンソルcは変化しないことがわかる.テンソルcの要素値を変更すると、配列aとテンソルbの要素値は変更されません.これはfrom_numpy(array)は配列の浅いコピーをします.Tensor(array)は配列の深いコピーをします.
転載先:https://www.cnblogs.com/xym4869/p/11302160.html
import numpy as np
import torch
a=np.arange(6,dtype=int).reshape(2,3)
b=torch.from_numpy(a)
c=torch.Tensor(a)
a[0][0]=10
print(a,'
',b,'
',c)
[[10 1 2]
[ 3 4 5]]
tensor([[10, 1, 2],
[ 3, 4, 5]], dtype=torch.int32)
tensor([[0., 1., 2.],
[3., 4., 5.]])
c[0][0]=10
print(a,'
',b,'
',c)
[[10 1 2]
[ 3 4 5]]
tensor([[10, 1, 2],
[ 3, 4, 5]], dtype=torch.int32)
tensor([[10., 1., 2.],
[ 3., 4., 5.]])
print(b.type())
torch.IntTensor
print(c.type())
torch.FloatTensor
配列aの要素値を修正し,テンソルbの要素値も変化したが,テンソルcは変化しないことがわかる.テンソルcの要素値を変更すると、配列aとテンソルbの要素値は変更されません.これはfrom_numpy(array)は配列の浅いコピーをします.Tensor(array)は配列の深いコピーをします.
転載先:https://www.cnblogs.com/xym4869/p/11302160.html