Pytorch 3D卷积的输入输出、参数量

1、torch.nn.Conv3d函数参数:

其中kernel_size、padding以及dilation可以是1X3的tuple,与2D卷积不用

self.conv3d = nn.Conv3d(1, 64, kernel_size=(3, 3, 3), padding=(1, 1, 1))

torch框架中的原始参数定义如下:

def __init__(
        self,
        in_channels: int,
        out_channels: int,
        kernel_size: _size_3_t,    # 1X3的tuple
        stride: _size_3_t = 1,     # 可以是1X3的tuple,也可以是一个int
        padding: _size_3_t = 0,    # 可以是1X3的tuple,也可以是一个int
        dilation: _size_3_t = 1,   # 可以是1X3的tuple,也可以是一个int
        groups: int = 1,
        bias: bool = True,
        padding_mode: str = 'zeros'
    )

在这里插入图片描述

2、3D卷积的输入输出

(3D conv一般用于对视频帧处理,提取时间维度上的信息)


输入的tensor维度应该是**[B, C ,D, H, W]**:

其中B、C、H、W与2D卷积所输入的一致
1、B:batch_size 每次送入训练的样本数
2、C:channel 通道数,这里我的理解是,若视频帧只取Y通道,C就是1(对于刚输入网络而言)
3、D:深度(D这个维度上含有视频帧时间维度上的信息),这里假设我们对5帧视频进行同时处理(D=5),要获取时间上的信息,那么这里的D应该就是帧数的叠加。

如果每一帧的维度是[B,C,H,W]=[8,1,64,64],那么5帧的输入可以通过torch.stack([5帧列表],dim=2)语句来堆叠成[B,C,D,H,W]=[8,1,5,64,64],这样3d卷积就可以在连续帧之间获取时间维的信息。

每一帧的维度[8,1,32,32]
5帧堆叠在一起[8,1,5,32,32]
实现语句:

torch.stack(frame_[:], dim=2) # 将张量的序列沿dim维取一个新的维度连接起来

(这里的深度5不用与卷积核的深度3对应相等)

我在思考能不能这么认为:(如果把5帧堆叠来经过3D卷积获取时间维度上的信息,5帧一起第一次送进去网络,应该把他看成一个整体,所以他的通道数C应该是1。)

3D卷积的输出在HW不变的情况下(计算好padding),只改变Channel.

3、3D扩张卷积

其实3D扩张卷积的思想和2D的一样,只要kernel_size=(3, 5, 5), padding=(1, 4, 4), dilation=(1, 2, 2)这三个参数对应好各自的维度即可。(可以先不看第一维,后面两维和2D是一样的pad计算方法)

4 参数量

在这里插入图片描述

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PyTorch是一个基于 Python 编程语言的开源机器学习框架。在PyTorch中,卷积神经网络(Convolutional Neural Network,CNN)是一种强大的模型,可用于图像处理和模式识别等任务。利用CNN可以对碳排放量进行预测。 在使用PyTorch构建卷积神经网络时,通常需要以下几个步骤: 1. 数据准备:收集关于碳排放量的相关数据。这些数据可能包括每个样本对应的一些特征,如工业生产情况、能源使用情况、人口数量等。此外,还需要准备相应的标签,也就是已知的碳排放量数据。 2. 数据预处理:对数据进行预处理,包括数据的归一化、去除噪声、处理缺失值等。这些步骤有助于提高模型的训练和预测性能。 3. 网络构建:利用PyTorch搭建卷积神经网络模型。模型的结构通常包括输入层、卷积层、池化层、全连接层和输出层等。卷积层和池化层用于提取和压缩数据的特征,全连接层用于将特征映射到输出层的 neurons 中。可以根据具体情况调整网络的层数和神经元数量数。 4. 模型训练:使用准备好的数据对模型进行训练。这里可以使用一种称为反向传播(backpropagation)的方法来更新模型的权重和偏置值,以最小化预测输出和实际标签之间的误差。 5. 模型评估和预测:使用另外一组未在训练过程中使用的数据对模型进行评估。可以使用一些评估指标,如均方误差(Mean Squared Error,MSE)来衡量预测输出与实际标签之间的差异。在模型的预测阶段,将新输入数据送入训练好的模型中,即可预测出相应的碳排放量。 通过使用PyTorch搭建卷积神经网络,并根据实际的碳排放量数据进行训练,我们可以预测出未来的碳排放量。这种方法可以帮助我们了解和控制碳排放的情况,并采取相应措施来减少碳排放量,以实现环境保护和可持续发展的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值