nn.Conv3d
是 PyTorch 中实现三维卷积操作的类。
1.维度说明
其输入和输出的维度如下:
输入维度:
输入张量的维度应为 (N, C_in, D, H, W)
,其中:
-
N
: 批量大小 (batch size),即一批输入数据中包含的样本数量。 -
C_in
: 输入通道数 (number of input channels),即输入数据的通道数量,例如彩色图像通常有3个通道(红、绿、蓝)。 -
D
: 输入数据的深度 (depth)。 -
H
: 输入数据的高度 (height)。 -
W
: 输入数据的宽度 (width)。
输出维度:
输出张量的维度为 (N, C_out, D_out, H_out, W_out)
,其中:
-
N
: 批量大小 (batch size),与输入张量的批量大小相同。 -
C_out
: 输出通道数 (number of output channels),即经过卷积操作后输出特征图的通道数。这个值取决于你在nn.Conv3d
中设置的out_channels
参数。 -
D_out
: 输出数据的深度 (depth)。 -
H_out
: 输出数据的高度 (height)。 -
W_out
: 输出数据的宽度 (width)。
输出数据的深度、高度和宽度可以根据以下公式计算:
D_out = floor((D_in + 2 * padding[0] - dilation[0] * (kernel_size[0] - 1) - 1) / stride[0] + 1)
H_out = floor((H_in + 2 * padding[1] - dilation[1] * (kernel_size[1] - 1) - 1) / stride[1] + 1)
W_out = floor((W_in + 2 * padding[2] - dilation[2] * (kernel_size[2] - 1) - 1) / stride[2] + 1)
其中,padding
、dilation
、kernel_size
和 stride
分别对应 nn.Conv3d
中的相应参数。注意,这些参数可以是单个整数(表示在所有轴上相同)或包含3个整数的元组(分别表示深度、高度和宽度方向的值)。如果你使用的是元组,则上述公式中的索引 [0]
、[1]
和 [2]
分别表示深度、高度和宽度方向的值。
2. 使用说明
nn.Conv3d
函数的参数如下:
-
in_channels
(int): 输入特征图的通道数。这应该与要传递给该层的输入张量的通道数匹配。 -
out_channels
(int): 输出特征图的通道数。这是卷积操作后得到的输出张量的通道数。 -
kernel_size
(int or tuple): 三维卷积核的大小。可以是单个整数,表示卷积核的深度、高度和宽度相同,或者是一个包含三个整数的元组,分别表示卷积核的深度、高度和宽度。 -
stride
(int or tuple, optional): 卷积操作的步长。步长是在输入特征图上滑动卷积核时沿深度、高度和宽度方向移动的单位数。可以是单个整数,表示深度、高度和宽度的步长相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度的步长。默认值是1。 -
padding
(int or tuple, optional): 输入特征图的零填充大小。可以是单个整数,表示深度、高度和宽度方向的填充大小相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度方向的填充大小。默认值是0。 -
dilation
(int or tuple, optional): 卷积核中元素的间距。可以是单个整数,表示深度、高度和宽度方向的间距相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度方向的间距。默认值是1。较大的间距值会导致卷积核在输入特征图上的覆盖范围更大,但实际卷积核的大小不变。 -
groups
(int, optional): 控制输入和输出通道之间的连接。groups
的默认值是1,表示所有输入通道都与所有输出通道连接。设为其他值将分割输入和输出通道,以减少计算量。例如,如果in_channels
为4,out_channels
为8,groups
为2,则前2个输入通道与前4个输出通道连接,后2个输入通道与后4个输出通道连接。 -
bias
(bool, optional): 如果设置为True
,则向卷积操作的输出添加偏置。默认值是True
。文章来源:https://www.toymoban.com/news/detail-448873.html
示例:文章来源地址https://www.toymoban.com/news/detail-448873.html
# 创建一个 nn.Conv3d 层,输入通道数为3,输出通道数为6,卷积核大小为4,步长为2,零填充大小为1
conv3d = nn.Conv3d(in_channels=3, out_channels=6, kernel_size=4, stride=2, padding=1)
到了这里,关于【Pytorch】三维卷积 nn.Conv3d 用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!