PyTorchのflatten関数の使い方は何ですか?
PyTorchでは、flatten関数を使用して、入力テンソルを1次元テンソルに展開します。使用方法は次のとおりです。
torch.flatten(input, start_dim=0, end_dim=-1)
パラメーター説明:
- 出力:テンソルの入力。
- start_dim:展開する次元のデフォルトは0です。
- 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)のテンソルを得ます。