0


torch.nn.Conv3d

3D卷积

比Conv2D多一个维度。

举例说明:Conv2D对720×720的3通道图像进行卷积,batch_size设为64,则输入向量的维度为 [64, 3, 720, 720], Conv3D对分辨率为720×720的视频(假设为连续5帧)进行卷积,batch_size设为64,则输入向量的维度为 [64, 3, 5, 720, 720]

  1. torch.nn.Conv3d(in_channels,
  2. out_channels,
  3. kernel_size,
  4. stride=1,
  5. padding=0,
  6. dilation=1,
  7. groups=1,
  8. bias=True,
  9. padding_mode = 'zeros')

参数详解

  • in_channels(int) :输入张量的通道数
  • out_channels(int) :卷积中滤波器的数量,表示输出张量的通道数
  • kerner_size(int or tuple) :卷积窗口的宽度和高度
  • stride(int or tuple, optional) :卷积沿宽度和高度方向的步长
  • padding(int or tuple, optional) :输入的每一条边填充的层数
  • dilation(int or tuple, optional) :卷积核元素之间的间距,即膨胀卷积的膨胀率,默认为1。
  • groups(int, optional):控制输入和输出之间的连接: group=1,输出是所有的输入的卷积;group=2,此时相当于有并排的两个卷积层,每个卷积层计算输入通道的一半,并且产生的输出是输出通道的一半,随后将这两个输出连接起来。
  • bias(bool, optional) :如果bias=True,添加偏置
  • padding_mode(str, optional) :填充的方式,如果padding_mode = 'zeros',表示用0填充

示例

  1. import torch.nn as nn
  2. import torch
  3. # 创建一个卷积层,填充一圈0
  4. conv1 = nn.Conv3d(in_channels=3,
  5. out_channels=32,
  6. kernel_size=(3, 3, 3),
  7. stride=(2, 2. 2),
  8. padding=1)
  9. # 创建一个卷积层,无填充
  10. conv2 = nn.Conv3d(in_channels=3,
  11. out_channels=32,
  12. kernel_size=(3, 3, 3),
  13. stride=(2, 2, 2),
  14. padding=0)
  15. # 创建一个维度为[64, 3, 7, 5, 5]的tensor
  16. x = torch.rand(64, 3, 7, 5, 5)
  17. # 进行卷积
  18. y1 = conv1(x)
  19. print(y1.shape) # [64, 32, 4, 3, 3]
  20. # 进行卷积
  21. y2 = conv2(x)
  22. print(y2.shape) # [64, 32, 3, 2, 2]

本文转载自: https://blog.csdn.net/weixin_46566663/article/details/127639493
版权归原作者 吃成一个胖娃娃 所有, 如有侵权,请联系我们删除。

“torch.nn.Conv3d”的评论:

还没有评论