【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.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日
    浏览(41)
  • pytorch中nn.Conv1d功能介绍

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

    2024年02月10日
    浏览(42)
  • [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日
    浏览(40)
  • Pytorch中的卷积与反卷积(conv2d和convTranspose2d)

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

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

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

    2024年02月13日
    浏览(37)
  • 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日
    浏览(32)
  • Pytorch:torch.nn.Module.apply用法详解

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

    2024年01月15日
    浏览(48)
  • Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)

     一、卷积层—Convolution Layers  1.1 1d / 2d / 3d卷积 1.2 卷积—nn.Conv2d() nn.Conv2d 1.3 转置卷积—nn.ConvTranspose nn.ConvTranspose2d  二、池化层—Pooling Layer (1)nn.MaxPool2d (2)nn.AvgPool2d (3)nn.MaxUnpool2d  三、线性层—Linear Layer  nn.Linear  四、激活函数层—Activate Layer (1)nn.Sigmoid  (

    2024年01月20日
    浏览(41)
  • Pytorch当中nn.AvgPool3d()和nn.AdaptiveAvgPool3d()的区别

    在 PyTorch 中,nn.AvgPool3d()和nn.AdaptiveAvgPool3d()都是用于三维数据(立体数据)的池化(Pooling)操作,但在功能上有一些区别。 nn.AvgPool3d()是一个常规的三维平均池化层,用于对输入的立体数据进行降采样。它使用固定大小的池化窗口在输入的每个通道上计算窗口中所有元素的平

    2024年01月16日
    浏览(30)
  • 一维卷积神经网络理解(torch.nn.Conv1d)

    in_channels : (int)输入数据的通道数,即对某条训练数据来说由多少组向量表示。例如对于由一维向量表示的一条数据来说,通道数为1;对于文本数据来说,一个句子是由m个单词组成,那么通道数就可以是m out_channels : (int)卷积产生的通道数,可以理解为卷积核的个数 kernel_siz

    2023年04月08日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包