データ操作
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))