【pytorch】padding的几种填充方法

今天总结一下,pytorch框架下的几种边界填充方法:

1、torch.nn.ReflectionPad2d(padding)

功能:使用输入边界的反射填充输入张量。

1.1、若 padding是int类型,则在所有边界填充使用相同的

举例:

padding=1
(左、右、上、下 4个方向分别填充长度为1的映射)
在这里插入图片描述
padding=2
(左、右、上、下 4个方向分别填充长度为2的映射)
在这里插入图片描述

1.1、若 padding是tuple类型,根据tuple里的数值进行映射

在这里插入图片描述
左边填充长度为1的映射,右边填充长度为1的映射,上方填充长度为2的映射,下方填充长度为0的映射。

2、torch.nn.ZeroPad2d(padding)

padding是int类型,表示填充长度。
功能:用零填充输入张量边界。
在这里插入图片描述

3、torch.nn.ConstantPad2d(padding, value)

padding是int类型,表示填充长度,value表示要填充的常数值。
功能:用一个常数值填充输入张量边界。
在这里插入图片描述

4、torch.nn.ReplicationPad2d(padding)

功能:使用输入边界的复制填充输入张量。
padding = int or tuple:填充的大小。

4.1、 如果是int, 则在所有边界使用相同的填充;

在这里插入图片描述

4.2、 如果是4个元组, 则使用(paddingLeft, paddingRight, paddingTop, paddingBottom)

在这里插入图片描述

参考

https://blog.csdn.net/weixin_38258767/article/details/109444299

https://www.zhihu.com/question/298049893/answer/509983136

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyTorch提供了一种方便的方法来对张量进行填充padding)。填充是在张量的边界周围添加额外的值,从而改变其形状或尺寸。在PyTorch中,可以使用torch.nn.functional中的pad函数来进行填充操作。 pad函数的使用方式如下: ```python import torch.nn.functional as F padded_tensor = F.pad(input_tensor, pad, mode='constant', value=0) ``` 其中,参数解释如下: - input_tensor:需要进行填充操作的输入张量。 - pad:填充值的大小。可以是单个整数,表示在所有维度上应用相同大小的填充;也可以是一个元组,表示在各个维度上应用不同的填充大小。 - mode:填充模式。可选的模式包括'constant'(常数填充,默认值)、'reflect'(反射填充)和'replicate'(复制填充)。 - value:用于常数填充时所使用的常数值,默认为0。 以下是一个使用pad函数进行填充的示例: ```python import torch import torch.nn.functional as F input_tensor = torch.tensor([[1, 2], [3, 4]]) pad = (1, 2, 0, 0) # 在第一个维度前面填充1个元素,在第一个维度后面填充2个元素,在第二个维度前面和后面都不填充 padded_tensor = F.pad(input_tensor, pad, mode='constant', value=0) print(padded_tensor) ``` 输出结果为: ``` tensor([[0, 0, 0], [1, 2, 0], [3, 4, 0], [0, 0, 0]]) ``` 在这个示例中,输入张量input_tensor的形状为(2, 2),通过填充操作,得到了一个形状为(4, 3)的填充后张量padded_tensor。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器不学习我学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值