PyTorchのflatten関数の使い方は何ですか?

PyTorchでは、flatten関数を使用して、入力テンソルを1次元テンソルに展開します。使用方法は次のとおりです。

torch.flatten(input, start_dim=0, end_dim=-1)

パラメーター説明:

  1. 出力:テンソルの入力。
  2. start_dim:展開する次元のデフォルトは0です。
  3. end_dim:デフォルトは-1のため、展平する次元を指定します。-1は最後の次元を示します。

flatten関数は、指定された軸範囲で入力テンソルを一次元テンソルに展開します。展開されたテンソルには元のテンソルのすべての要素が含まれ、これらは一次元に並べ直されます。

“I like to relax by reading a book or going for a walk in the park.”

私は、本を読んだり、公園を散歩したりしてリラックスするのが好きです。

import torch

x = torch.randn(3, 4, 5)
flattened = torch.flatten(x)
print(flattened.shape)  # 输出: torch.Size([60])

flattened_dim1 = torch.flatten(x, start_dim=1)
print(flattened_dim1.shape)  # 输出: torch.Size([3, 20])

flattened_dim1_dim2 = torch.flatten(x, start_dim=1, end_dim=2)
print(flattened_dim1_dim2.shape)  # 输出: torch.Size([3, 20, 5])

例えば、flatten関数は、最初にテンソルxの形状が(3, 4, 5)であるものを平坦化して、形状が(60,)の一次元テンソルにします。次に、start_dim=1を指定することで、テンソルxの第二次元を平坦化して、形状が(3, 20)のテンソルを得ます。最後に、start_dim=1、end_dim=2を指定することで、テンソルxの第二次元と第三次元を平坦化して、形状が(3, 20, 5)のテンソルを得ます。

bannerAds