【Pytorch】三维卷积 nn.Conv3d 用法

这篇具有很好参考价值的文章主要介绍了【Pytorch】三维卷积 nn.Conv3d 用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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)

其中,paddingdilationkernel_sizestride 分别对应 nn.Conv3d 中的相应参数。注意,这些参数可以是单个整数(表示在所有轴上相同)或包含3个整数的元组(分别表示深度、高度和宽度方向的值)。如果你使用的是元组,则上述公式中的索引 [0][1][2] 分别表示深度、高度和宽度方向的值。

2. 使用说明

nn.Conv3d 函数的参数如下:

  1. in_channels (int): 输入特征图的通道数。这应该与要传递给该层的输入张量的通道数匹配。

  2. out_channels (int): 输出特征图的通道数。这是卷积操作后得到的输出张量的通道数。

  3. kernel_size (int or tuple): 三维卷积核的大小。可以是单个整数,表示卷积核的深度、高度和宽度相同,或者是一个包含三个整数的元组,分别表示卷积核的深度、高度和宽度。

  4. stride (int or tuple, optional): 卷积操作的步长。步长是在输入特征图上滑动卷积核时沿深度、高度和宽度方向移动的单位数。可以是单个整数,表示深度、高度和宽度的步长相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度的步长。默认值是1。

  5. padding (int or tuple, optional): 输入特征图的零填充大小。可以是单个整数,表示深度、高度和宽度方向的填充大小相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度方向的填充大小。默认值是0。

  6. dilation (int or tuple, optional): 卷积核中元素的间距。可以是单个整数,表示深度、高度和宽度方向的间距相同,或者是一个包含三个整数的元组,分别表示深度、高度和宽度方向的间距。默认值是1。较大的间距值会导致卷积核在输入特征图上的覆盖范围更大,但实际卷积核的大小不变。

  7. groups (int, optional): 控制输入和输出通道之间的连接。groups 的默认值是1,表示所有输入通道都与所有输出通道连接。设为其他值将分割输入和输出通道,以减少计算量。例如,如果 in_channels 为4,out_channels 为8,groups 为2,则前2个输入通道与前4个输出通道连接,后2个输入通道与后4个输出通道连接。

  8. bias (bool, optional): 如果设置为 True,则向卷积操作的输出添加偏置。默认值是 True

示例:文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch中 nn.Conv2d的简单用法

    参数介绍 : in_channels :卷积层输入通道数 out_channels :卷积层输出通道数 kernel_size :卷积层的卷积核大小 padding :填充长度 stride :卷积核移动的步长 dilation :是否采用空洞卷积 groups :是否采用分组卷积 bias :是否添加偏置参数 padding_mode : padding 的模式 如果输入大小为:

    2024年02月11日
    浏览(44)
  • 【PyTorch】nn.Conv2d函数详解

    CONV2D官方链接 in_channels:输入的通道数,RGB 图像的输入通道数为 3 out_channels:输出的通道数 kernel_size:卷积核的大小,一般我们会使用 5x5、3x3 这种左右两个数相同的卷积核,因此这种情况只需要写 kernel_size = 5这样的就行了。如果左右两个数不同,比如3x5的卷积核,那么写作

    2024年01月22日
    浏览(40)
  • pytorch之nn.Conv1d详解

    1、Conv1d 定义 class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True) 自然语言处理中一个句子序列,一维的,所以使用Conv1d,此时卷积核(没有batch_size,参数是共享的)除去chanel,也是一维的。  2、参数  in_channels(int) – 输入信号的通道。在

    2024年02月16日
    浏览(45)
  • pytorch中nn.Conv1d功能介绍

            在使用Conv1d函数时,pytorch默认你的数据是一维的,比如一句话“深度学习”可以用一个一维数组 [\\\'深\\\', \\\'度\\\', \\\'学\\\', \\\'习\\\'] 表示,这个数据就是一维的。图片是二维数据,它有长宽两个维度。         因此在使用 Conv1d 函数时,输入是一个三位数组,三个维度分别表

    2024年02月10日
    浏览(46)
  • [Pytorch]卷积运算conv2d

    torch.nn.functional.Conv2d()的详细参数: 即F.Conv2d的主要参数如下: input:输入特征图 weight:卷积核 bias:偏置参数 stride:卷积步长 padding:填充 dilation:膨胀系数 groups:分组卷积 利用F.Conv2d对图像中的暗线进行识别demo: pytorch中的卷积运算接口可使用torch.nn中的Conv2d(): pytorch官方

    2024年02月14日
    浏览(41)
  • CNN(一维卷积Conv1D)实现时间序列预测(PyTorch版)

    💥项目专栏:【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

    2024年02月01日
    浏览(44)
  • Pytorch中的卷积与反卷积(conv2d和convTranspose2d)

    卷积是特征提取的常用操作,卷积可以改变图片的通道和大小,相比全连接操作,卷积可以减少计算量,并且充分融合图像的局部特征。    

    2024年02月06日
    浏览(38)
  • pytorch nn.ModuleList和nn.Sequential的用法笔记

    有部分内容转自: pytorch小记:nn.ModuleList和nn.Sequential的用法以及区别_慕思侣的博客-CSDN博客 但是有部分内容做了修改调整, 在构建网络的时候,pytorch有一些基础概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,这些类我们称为为容器(containers),可参考containers。本文中

    2024年02月13日
    浏览(40)
  • pytorch复习笔记--nn.Embedding()的用法

    目录 1--nn.Embedding()的用法 2--实例展示: 3--注意的问题 nn.Embedding()产生一个权重矩阵weight,其shape为(num_embeddings, embedding_dim),表示生成num_embeddings个具有embedding_dim大小的嵌入向量; 输入input的形状shape为(batch_size, Seq_len),batch_size表示样本数(NLP句子数),Seq_len表示序列

    2024年02月16日
    浏览(35)
  • Pytorch:torch.nn.Module.apply用法详解

    torch.nn.Module.apply 是 PyTorch 中用于递归地应用函数到模型的所有子模块的方法。它允许对模型中的每个子模块进行操作,比如初始化权重、改变参数类型等。 以下是关于 torch.nn.Module.apply 的示例: 1. 语法 Module:PyTorch 中的神经网络模块,例如 torch.nn.Module 的子类。 fn:要应用到

    2024年01月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包