假设输入数据为2个三维数据块,batch数目为b,channel数目为ch_in(这里即是2),三维数据的尺寸即D、H、W。
那么,输入张量的维度应为 (b,ch_in,d,h,w) ,其中:
- b:batch的大小。使用训练集中的一小部分样本队模型权重进行一次反向传播的参数更新,这一小部分样本被称为"一批数据",这一批数据的数目即batch的尺寸b。
- ch_in:输入数据的通道数量。比如这里,我们的输入是两个三维数据块,那么ch_in的大小就是2。在彩色图像的输入中,RGB三个通道,ch_in大小就是3。
- d:输入数据的深度,切片数量。
- h:输入数据的高度,单张二维切片的高。
- w:输入数据的宽度,单张二维切片的宽。
输出张量的维度应为 (b,ch_out,d',h',w') ,其中:
- b:批处理数量,与输入一致。
- ch_out:输出数据的通道数量,表示经过卷积操作后输出特征图的通道数。由卷积操作所设置的out_channels决定。
- d':输出数据的切片数量。
- h':输出数据的单张二维切片的高。
- w':输出数据的单张二维切片的宽。
这里以医学图像为例,网络的输入为2个三维医学图像(尺寸为300*48*48),即输入张量的尺寸为(b,2,300,48,48)。
使用nn.Conv3d进行三维卷积操作,其使用方法如下:
torch.nn.Conv3d(in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1,
groups=1,
bias=True,
padding_mode = 'zeros')
参数解释:
- in_channels(int):输入张量的通道数
- out_channels(int):卷积中滤波器的数量,表示输出张量的通道数
- kernel_size(int or tuple):卷积窗口的宽度和高度
- stride(int or tuple):输入的每一条边填充的层数
- 其他参数默认即可