PyTorchテンソルの次元とサイズの扱い方
定義
をパイトーチのテンソルとしよう。
次の順序ペアをのサイズと呼ぶ。
をの大きさとしよう。
を**次元テンソル**と呼ぶ。
はそれぞれ番目の次元の大きさで、より大きい整数だ。Pythonなので、番目の次元から始まることに注意しよう。
>>> A = torch.ones(2,3,4)
tensor([[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]])
例えば、このようなテンソルの次元は、大きさは、サイズはだ。
.dim()
, .ndim
テンソルの次元を返す。
>>> A.dim()
3
>>> A.ndim
3
.shape
, .size()
テンソルのサイズを返す。
>>> A.shape
torch.Size([2, 3, 4])
>>> A.shape[1]
3
>>> A.size()
torch.Size([2, 3, 4])
>>> A.size(2)
4
.view()
, .reshape()
テンソルの大きさを保持しながらサイズを変える。
引数にを使うと、自動的に大きさが合わせられる。例えば、以下の例のように、サイズのテンソルを.view(4,-1)
のように変更すると、サイズに変わる。
>>> A.reshape(8,3)
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
>>> A.view(3,-1)
tensor([[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.]])
>>> A.view(-1,4)
tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])