Pythorch中的ReflectionPad2d与直接指定conv层中padding扩充的区别是?

15 人赞同了该回答

已解决!以下是自己的笔记!


增加边界的类型有以下4个类型:

以一行图像数据为例,abcdefgh是原图数据,|是图像边界,为原图加边

Ø aaaaaa|abcdefgh|hhhhhhh 重复

Ø fedcba|abcdefgh|hgfedcb 反射

Ø gfedcb|abcdefgh|gfedcba 反射101,相当于上一行的左右互换

Ø cdefgh|abcdefgh|abcdefg 外包装

Ø iiiiii|abcdefgh|iiiiiii with some specified 'i' 常量

1)torch.nn.ReflectionPad2d(padding)

使用输入边界的反射填充输入张量.

扫描二维码关注公众号,回复: 9402881 查看本文章

padding (int, tuple) – 填充的大小. 如果是int, 则在所有边界填充使用相同的.

则使用 (如果是4个元组,) –

Input: (N,C,Hin,Win)

Output: (N,C,Hout,Wout)

Hout=Hin+paddingTop+paddingBottom ,Wout=Win+paddingLeft+paddingRight

1)torch.nn.ReplicationPad2d(padding)

使用输入边界的复制填充输入张量.

padding (int, tuple) – 填充的大小. 如果是int, 则在所有边界使用相同的填充. 如果是4个元组, 则使用(paddingLeft, paddingRight, paddingTop, paddingBottom)

Input: (N,C,Hin,Win)

Output: (N,C,Hout,Wout)

Hout=Hin+paddingTop+paddingBottom,Wout=Win+paddingLeft+paddingRight

3)torch.nn.ZeroPad2d(padding) 用零填充输入张量边界.

4)torch.nn.ConstantPad2d(padding, value)用一个常数值填充输入张量边界.

赞同 15 1 条评论
分享
收藏 喜欢
收起
发布了381 篇原创文章 · 获赞 67 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/Arthur_Holmes/article/details/104264944