.view()
テンソルには何が起こるのでしょうかx
? 負の値はどういう意味ですか?
x = x.view(-1, 16 * 5 * 5)
ベストアンサー1
view()
テンソルをメモリをコピーせずに再形成する。NumPyのreshape()
。
16 個の要素を持つテンソルが与えられますa
。
import torch
a = torch.range(1, 16)
このテンソルを変形してテンソルにするには4 x 4
、次を使用します。
a = a.view(4, 4)
これでテンソルa
になります4 x 4
。形状変更後、要素の合計数は同じままにする必要があることに注意してください。テンソルをテンソルa
に形状変更するのは3 x 5
適切ではありません。
パラメータ -1 の意味は何ですか?
必要な行数はわからないが、列数はわかっているという状況では、これを -1 で指定できます。(これをより多くの次元を持つテンソルに拡張できることに注意してください。軸の値の 1 つだけが -1 になることができます)。これは、ライブラリに「これらの列数を持つテンソルを与え、これを実現するために必要な適切な行数を計算してください」と指示する方法です。
これは、このモデル定義コード. forward 関数の行の後にx = self.pool(F.relu(self.conv2(x)))
、16 深度の特徴マップがあります。これを平坦化して、完全に接続されたレイヤーに渡す必要があります。そのため、取得したテンソルを特定の数の列に再形成するように PyTorch に指示し、行の数を自分で決定するように指示します。