Python - AI - Tensor - 次元増減

クラウディア 
1. 概要
2. 増減

1. 概要

 次元を増やしたり、減らしたりするメソッドがあります。  本ページは、下記のサイトを参考にさせていただきました。
Squeeze / unsqueezeの使い方:要素数1の次元を消したり作ったりする

2. 増減

 「squeeze」(減)「unsqueeze」(増)で、次元数の増減ができます。

tensor.squeeze(0)
tensor.unsqueeze(0)
 と引数に 0 を設定することで、1次元分の増減ができます。  0 以外にも引数の個数を変えたり、いろいろあるようですが、とりあえず増減だけは、理解できました。

import torch

x = torch.randn(4, 3)
print(x)

x = x.unsqueeze(0)
print(x)

x = x.squeeze(0)
print(x)
 てなソースを書いて、実行すると、下記の結果が得られます。

tensor([[-0.3372,  1.4657,  0.3851],
        [-0.5026,  1.3584,  0.5374],
        [-1.4869,  0.1844, -1.0662],
        [ 0.4061, -1.1613, -0.3926]])
tensor([[[-0.3372,  1.4657,  0.3851],
         [-0.5026,  1.3584,  0.5374],
         [-1.4869,  0.1844, -1.0662],
         [ 0.4061, -1.1613, -0.3926]]])
tensor([[-0.3372,  1.4657,  0.3851],
        [-0.5026,  1.3584,  0.5374],
        [-1.4869,  0.1844, -1.0662],
        [ 0.4061, -1.1613, -0.3926]])
 中身は、乱数で生成していますので、保証しませんが・・・。