本文簡要介紹python語言中 torch.nn.Fold
的用法。
用法:
class torch.nn.Fold(output_size, kernel_size, dilation=1, padding=0, stride=1)
將一組滑動的局部塊組合成一個大的包含張量。
考慮一個批處理的
input
張量,其中包含滑動的局部塊,例如圖像塊,形狀為 ,其中 是批處理維度, 是塊內的值的數量(塊具有 每個空間位置都包含一個 通道向量),而 是塊的總數。 (這與Unfold
的輸出形狀完全相同。)此操作通過對重疊值求和,將這些局部塊組合成形狀為 的大output
張量。與Unfold
類似,參數必須滿足其中 在所有空間維度上。
output_size
說明了滑動局部塊的大包含張量的空間形狀。當多個輸入形狀映射到相同數量的滑動塊時,解決歧義很有用,例如,使用stride > 0
。
padding
、stride
和dilation
參數指定如何檢索滑動塊。stride
控製滑塊的步幅。padding
控製重塑前每個維度的padding
點的兩側隱含zero-paddings 的數量。dilation
控製內核點之間的間距;也稱為 à trous 算法。很難說明,但是這個link 很好地可視化了dilation
的作用。
如果
output_size
、kernel_size
、dilation
、padding
或stride
是 int 或長度為 1 的元組,則它們的值將在所有空間維度上複製。對於兩個輸出空間維度的情況,此操作有時稱為
col2im
。
注意
Fold
通過對所有包含塊中的所有值求和來計算生成的大張量中的每個組合值。Unfold
通過從大張量複製來提取局部塊中的值。因此,如果塊重疊,它們就不是彼此相反的。一般來說,折疊和展開操作的關係如下。考慮使用相同參數創建的
Fold
和Unfold
實例:>>> fold_params = dict(kernel_size=..., dilation=..., padding=..., stride=...) >>> fold = nn.Fold(output_size=..., **fold_params) >>> unfold = nn.Unfold(**fold_params)
然後對於任何(支持的)
input
張量,以下等式成立:fold(unfold(input)) == divisor * input
其中
divisor
是僅取決於input
的形狀和 dtype 的張量:>>> input_ones = torch.ones(input.shape, dtype=input.dtype) >>> divisor = fold(unfold(input_ones))
當
divisor
張量不包含零元素時,fold
和unfold
運算是彼此的逆運算(直到常數除數)。警告
目前,僅支持 4-D 輸出張量(批量 image-like 張量)。
- 形狀:
輸入:
輸出:
如上所述
例子:
>>> fold = nn.Fold(output_size=(4, 5), kernel_size=(2, 2)) >>> input = torch.randn(1, 3 * 2 * 2, 12) >>> output = fold(input) >>> output.size() torch.Size([1, 3, 4, 5])
參數:
相關用法
- Python PyTorch Forker用法及代碼示例
- Python PyTorch Future.then用法及代碼示例
- Python PyTorch FunctionCtx.mark_dirty用法及代碼示例
- Python PyTorch FloatFunctional用法及代碼示例
- Python PyTorch FMInteractionArch用法及代碼示例
- Python PyTorch Future.add_done_callback用法及代碼示例
- Python PyTorch Function用法及代碼示例
- Python PyTorch FeatureAlphaDropout用法及代碼示例
- Python PyTorch FSSpecFileOpener用法及代碼示例
- Python PyTorch Filter用法及代碼示例
- Python PyTorch FSSpecSaver用法及代碼示例
- Python PyTorch FileLister用法及代碼示例
- Python PyTorch FunctionCtx.set_materialize_grads用法及代碼示例
- Python PyTorch FisherSnedecor用法及代碼示例
- Python PyTorch FeaturePyramidNetwork用法及代碼示例
- Python PyTorch FactorizationMachine用法及代碼示例
- Python PyTorch FileStore用法及代碼示例
- Python PyTorch FractionalMaxPool3d用法及代碼示例
- Python PyTorch FiveCrop用法及代碼示例
- Python PyTorch FileOpener用法及代碼示例
- Python PyTorch FunctionCtx.save_for_backward用法及代碼示例
- Python PyTorch FactorizationMachine.forward用法及代碼示例
- Python PyTorch FrequencyMasking用法及代碼示例
- Python PyTorch Fade用法及代碼示例
- Python PyTorch Future.set_result用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.nn.Fold。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。