深ハンズオン科学学習_2.1_tensor

データ操作

1つの インポートトーチ
 2  
3  torch.manual_seed(0)
 4  torch.cuda.manual_seed(0)
 5  プリント(トーチ。__version__1.3.1

作成テンソル

1つの #は、5×3のテンソル作成初期化されていない
2 X = torch.emptyを(5 ,. 3 。3  印刷(X)を
 4  
。5  テンソル([1.3563e-。19 ,. 19-1.3563e、7.9717e-10]、
図6          [5.8270e-10 5.8270e-10 4.9153e-14]、
7          [1.3563e-。19、1.8578e-01 3.9157e-02]、
8          [4.7429e + 30、+ 35 2.2639e、図31は、1.8971e] +である
。9          [1.4587e-。19 ,. 19-1.1703e、1.5637e-01]])
ランダム初期化テンソル 
X = torch.rand(5 ,. 3 プリント(X)

#テンソル([0.4963、0.7682、0.0885]、
#[0.1320、0.3074、0.6341]、
#[0.4901、0.8964、0.4556]、
#【0.6323、0.3489、0.4017]、
#[0.0223、0.1689、0.2939]])
全て0テンソルlong型作成 
X = torch.zerosを(5 ,. 3、DTYPE = torch.long)
 プリント(X)
#テンソル([0、0、0]、
#[0、0、0]、
#[0、0、0]、
#[0、0、0]、
#[0、0、0])
直接初期化データ 
X = torch.tensor([5.5 ,. 3 ])
 プリント(X) 

テンソル([5.5000、3.0000])
従来のテンソルによって作成 
X = x.new_ones(5 ,. 3、DTYPE = torch.float64) 返さテンソルは、同じデフォルトtorch.dtypeとtorch.deviceを有する
プリント(X)を

X = torch.randn_like(X、DTYPE = torch.float) は、新しいデータ型を指定します
印刷(X)を

#テンソル([1、1、1]
#[1、1、1]
#[1、1、1]
#[1、1、1]
#[1、1、1]]、DTYPE = torch.float64)
#テンソル([0.6035、0.8110、-0.0451]、
#[0.8797、1.0482、-0.0445]、
#[-0.7229、2.8663、-0.5655]、
#[0.1604、-0.0254、1.0739]、
#[2.2628、-0.9175、-0.2251])
形状や大きさによって買収テンソル形状()
プリント(x.size())
 プリント(x.shape)
#torch.Size([5,3])
#torch.Size([5,3])

操作 

加算器1: 
(5 ,. 3 Y = torch.rand プリント(X + Y)
加算器2:
印刷(torch.add(X、Y)) 
出力の指定 
結果torch.empty =(5 ,. 3 
torch.add(X、Y、アウト = 結果)
 プリント(結果)
加法3:インプレースyにXを追加
y.add_(X)
 の印刷(Y)

 

指数

attension:共有メモリ、すなわちA修正で元のデータのうち、インデックスが得られるが、他にも変更されます

X = Y [0 ,:] 行列Xの最初の行
そして+ = 1
印刷(Y)
 プリント(X [0 ,:]) 元のテンソルも変更されて
変更形状ビュー() 
Y = x.view(15 
Z = x.view(-1、5 プリント(x.size()、y.size()、z.size())

attension:ビューは()新しいテンソルとテンソル元の共有メモリを返します。

もし私たちは、最初のクローンコピーを作成し、メモリを共有されていない[表示 
x_cp = x.clone()。表示(15 
X - = 1枚の
 プリント(X)
 プリント(x_cp)
アイテム()テンソルを変換する機能はスカラー数のPythonである 
X torch.randn =(1 プリント(X)
 印刷(x.item())

ブロードキャストメカニズム

二つの異なる形状放送機構がテンソル引き起こし得る 
X = torch.arange(1 ,. 3).viewを(1、2 印刷(X)
そして = torch.arange(1、4).view(3,1 プリント(及び)
 プリント(X + Y)

そしてテンソル変換numpyの

 numpyの()とfrom_numpy()彼女が同じメモリ上に生成し、テンソルnumpyの配列が実際に使用

テンソル- > numpyの 
A = torch.ones(5 
B = a.numpy()
 プリント(B)
+ = 1枚の
 プリント(B)
B + = 1枚の
 プリント(B)
numpyの- >テンソル
インポートNPとしてnumpyの
A = np.ones(5 
B = torch.from_numpy()
 プリント(B)
+ = 1枚の
 プリント(B)
B + = 1枚の
 プリント(B)
直接データのコピーであるnumpyのテンソルを変換し、元のデータがもはやテンソル共有メモリではない返すようにtorch.tensor()アレイと変換するときtorch.tensor有する()共有されていないメモリ 
C = トーチ。テンソル()+ = 1枚の
 プリント(C)

 

テストのGPUバージョンはPytorchかどうかであります

のみGPUバージョン上で実行されます
IF )(torch.cuda.is_available:
    デバイス = torch.device(" CUDA "GPU 
    Y = torch.ones_like(X、デバイス=デバイス)   GPU上テンソルを作成する 
    X = x.to(デバイス)     #はx.to(「CUDAと等価です") 
    Z = X + Yの
     印刷(Z)
     プリント(z.to(" CPU 、torch.double))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/harbin-ho/p/11961947.html