- 関数名:
展開(寸法、サイズ、ステップ): - パラメータ:
dim は分割する次元を示します
size はセグメンテーション ブロックのサイズを示します
step はセグメンテーションのステップ サイズを示します - 関数
実装されたスライディング ウィンドウ操作は畳み込みに似ていますが、存在するのは体積のみで積はありません。
展開()の機能は、選択されたサイズとステップサイズに従って行列を分割することです。 - 例:
1) コード:
import torch
patch_size = 3
stride = 1
inputs = torch.rand(3, 9, 9)
c, h, w = inputs.shape
print('inputs.shape_1', inputs.shape)
patches = inputs.unfold(1, 3, 1)
print('patches.shape_2', patches.shape)
patches = patches.unfold(2, 3, 1)
print('patches.shape_3', patches.shape)
patches = patches.reshape(c, -1, patch_size, patch_size)
print('patches.shape_4', patches.shape)
# inputs.shape_1 torch.Size([3, 9, 9])
# patches.shape_2 torch.Size([3, 7, 9, 3])
# patches.shape_3 torch.Size([3, 7, 7, 3, 3])
# patches.shape_4 torch.Size([3, 49, 3, 3])
2) 図面: