本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。