【pytorch中3D-CNN分析】


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了pytorch中三维卷积神经网络的使用。


一、三维卷积是什么?

在一般的图像卷积神经网络中,均使用的是二维的卷积神经网络,而在三维数据中比如高光谱数据以及视频数据,就很难将不同通道上的信息进行融合。因此使用三维卷积神经网络就能够很好的解决此问题。

二、相关代码和分析

1.引入库

代码如下(示例):

import torch.nn as nn
import torch
from pytorch_model_summary import summary

2.添加网络

代码如下(示例):

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        
        self.conv1 = nn.Conv3d(in_channels=1, out_channels=128,
          kernel_size=(3, 3, 3),stride=(2, 2, 2),padding=(3 // 2, 3, 3))
        #self.pool = nn.MaxPool3d(kernel_size=(1, 3, 3), stride=(1, 2, 2),padding=(1//2,1,1))
        

    def  forward(self, x):
        x = self.conv1(x)
        #x = self.pool(x)
        return x

该处使用的url网络请求的数据。

3.添加数据并运行网络

print(summary(Net(), torch.zeros((1, 1, 88, 75, 55)), show_input=True))
model = Net()
pred = model(video)
print(pred.shape)

4.运行,并输出结果

--------------------------------------------------------------------------
      Layer (type)            Input Shape         Param #     Tr. Param #
==========================================================================
          Conv3d-1     [1, 1, 88, 75, 55]           3,584           3,584
==========================================================================
Total params: 3,584
Trainable params: 3,584
Non-trainable params: 0
--------------------------------------------------------------------------
torch.Size([1, 128, 44, 40, 30])

网络参数分析
N = ( ( H − k e r n e l s i z e + 2 ∗ p a d d i n g ) / s t r i d e ) + 1. N =((H-kernelsize+2*padding)/stride)+1. N=((Hkernelsize+2padding)/stride)+1.
以上网络的参数量计算:
3 ∗ 3 ∗ 3 ∗ 128 + 128 = 3584 3*3*3*128+128=3584 333128+128=3584

2D: ( B , C , H , W ) (B,C,H,W) (B,C,H,W),在进行2维卷积的时候卷积核作用的维度为:H,W
3D: ( B , C , D , H , W ) (B,C,D,H,W) (B,C,D,H,W),在进行3维卷积的时候卷积核作用的维度为:D,H,W

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flow_code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值