nn.ReflectionPad2d(1)
是 PyTorch 中的一个函数,用于在二维数据(通常是图像)的边界上应用反射填充(reflection padding)。这种填充方式通过反射图像边缘的像素来扩展图像,而不是简单地复制边缘像素或用常数填充。下面是对这个函数的详细解释:
反射填充(Reflection Padding)
反射填充是一种边缘扩展技术,它通过将图像的边缘像素反射到图像外部来扩展图像。例如,如果一个图像的左边缘像素是 A,那么在应用反射填充后,图像的右边缘将显示与 A 相同的像素,就好像图像在边缘处被镜像了一样。
nn.ReflectionPad2d(1)
nn.ReflectionPad2d
是 PyTorch 中用于二维数据的反射填充函数。1
参数指定了填充的大小,即在每个维度(高度和宽度)的两侧各填充 1 个像素。
import torch
import torch.nn as nn# 创建一个 1x1 的图像(为了演示,使用一个简单的 2D 张量)
x = torch.tensor([[[[1, 2],[3, 4]
]]])# 应用反射填充
reflection_pad = nn.ReflectionPad2d(1)
padded_x = reflection_pad(x)print(padded_x)
结果如下:
tensor([[[[4., 3., 4., 3.],[2., 1., 2., 1.],[4., 3., 4., 3.],[2., 1., 2., 1.]]]])