前言
在深度学习中,尤其是在处理图像、音频或其他多维数据时,数据填充(Padding)是一个常见的操作。填充不仅可以保持数据的空间维度,还能在卷积操作中避免信息丢失。PyTorch提供了多种填充方式,其中nn.CircularPadXd和nn.ConstantPadXd是两种常用的填充方法。本文将详细介绍nn.CircularPad1d、nn.CircularPad2d、nn.CircularPad3d以及nn.ConstantPad1d、nn.ConstantPad2d、nn.ConstantPad3d的函数原型、用法示例,并总结它们的特点。
函数原型
nn.CircularPadXd
nn.CircularPadXd(其中X可以是1、2或3)类用于使用循环填充(circular padding)方式填充输入张量(tensor)的边界。循环填充意味着在填充时使用输入张量边界的值来填充另一端。
nn.CircularPad1d(padding): 一维数据的循环填充。
nn.CircularPad2d(padding): 二维数据的循环填充,常用于图像。
nn.CircularPad3d(padding): 三维数据的循环填充,适用于视频帧或体积数据。
padding参数可以是一个整数或元组(tuple),表示在每个维度上的填充大小。
nn.ConstantPadXd
nn.ConstantPadXd(其中X可以是1、2或3)类用于使用常数填充(constant padding)方式填充输入张量的边界。
nn.ConstantPad1d(padding, value): 一维数据的常数填充。
nn.ConstantPad2d(padding, value): 二维数据的常数填充,常用于图像。
nn.ConstantPad3d(padding, value): 三维数据的常数填充,适用于视频帧或体积数据。
padding参数同上,value参数指定了填充的常数值。
示例
nn.CircularPad1、2、3d 示例
import torch
import torch.nn as nn
# 示例:nn.CircularPad2d
input = torch.arange(9, dtype=torch.float).reshape(1