Pytorch的学习——CNN

CNN在pytorch中CNN(卷积神经网络)由 torch.nn中的Conv1d()、Conv2d()、Conv3d()三个函数进行数据的一维、二维、三维卷积操作。主要参数有in_channels, out_channels,kernel_size。# in_channels:代表输入数据的个数# 比如[[1,1],[2,2],[3,3],[4,4],[5,5]]这可以当作一维数据也可以当...
摘要由CSDN通过智能技术生成

CNN

在pytorch中CNN(卷积神经网络)由 torch.nn中的Conv1d()、Conv2d()、Conv3d()三个函数进行数据的一维、二维、三维卷积操作。主要参数有in_channels, out_channels,kernel_size。

in_channels:代表输入数据的个数

比如[[1,1],[2,2],[3,3],[4,4],[5,5]]这可以当作一维数据也可以当作二维数据
如果当作一维数据,每个数据又由一个[]组成,在每个[]中有2个数据,所以in_channels就等于2
如果当作二维数据,每个位置只有一个数据,所以in_channels就等于1

out_channels:代表输出的层数,可随便填

比如[1,2,3,4,5],如果out_channels=5,那么卷积之后就会变成[[…],[…],[…],[…],[…]]
每个[…]都含有5个数据

kernel_size:代表选择框的长度,一般选取奇数

比如kernel_size=5,对一维数据每5个数据进行一次卷积操作,对二维数据就会生成边长为5的正方形矩形框进行卷积操作,同理三维数据是边长为5的正方体
下面例子是对图像进行卷积操作

如下图kernel_size就为k,一维数据可以想象成在直线上
在这里插入图片描述二维数据在这里插入图片描述三维数据

torch.nn.Conv2d(
                in_channels=3,    # 图像每个像素点由R,G,B三个数组成,当然有的就一个数据,这里具体看图像的每个像素点的组成数据的个数
                out_channels=16,  # 输出16层
                kernel_size=5,    # 框的边长
            )

正常数据通过卷积后,数据会缩小如4x4的图片在3x3的矩形框下卷积操作后就会变成2x2,这样会漏掉图像的边缘信息。所以可以通过在数据的外围包裹数据的方式来解决该问题,pytorch提供了padding参数来保持图像卷积后的大小不会改变。
padding=kernel_size/2-1,如下列子

torch.nn.Conv2d(
                in_channels=3,
                out_channels=16,
                kernel_size=5,
                padding=2,
            )

卷积后就是池化层,作用是缩小图像,由MaxPool1d()、MaxPool2d()、MaxPool3d()函数提供,与Conv1d()、Conv2d()、Conv3d()一一对应
小编这里用MaxPool2d()做例子,这里一般只需要参数kernel_size就可以了,kernel_size意义还是矩形框的边长。因为在源码中stride即步长,如果不填的话会默认等于kernel_size

torch.nn.MaxPool2d(kernel_size=2)

这里一般都填2,因为比较易于计算池化后的图像的长和宽,就是输入图像的长宽除2
在这里插入图片描述
这里通过手写数字的一个小例子来进一步了解pytorch中的cnn

import torch
import torch.utils.data as Data
import torch.nn as nn
import torchvision
# import matplotlib.pyplot as plt
from torch.nn import functional as F


EPOCH = 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测是计算机视觉领域的重要任务,而Faster R-CNN作为目标检测领域的经典算法之一,具有较高的检测精度和鲁棒性。在睿智的目标检测系列中,我们将使用PyTorch搭建一个基于Faster R-CNN的目标检测平台。 首先,我们将使用PyTorch构建一个深度学习模型的基础框架。PyTorch是一个开源的机器学习库,具有灵活的设计和易于使用的特点,因此非常适合用于搭建目标检测平台。我们将利用PyTorch提供的模块和工具,构建一个包含RPN模块、ROI pooling模块和分类回归模块的Faster R-CNN模型。 其次,我们将使用标记好的目标检测数据集,如COCO或PASCAL VOC数据集,对我们搭建的目标检测平台进行训练和验证。我们将利用PyTorch内置的数据加载和预处理工具,以及优化器和损失函数,对Faster R-CNN模型进行端到端的训练,以提高检测精度和泛化能力。 最后,我们将通过在真实场景下的目标检测任务中的应用,来验证我们搭建的Faster R-CNN目标检测平台的性能。我们将评估其在目标定位、多目标检测、不同尺寸目标检测等方面的表现,并对可能的改进和优化进行进一步的研究和实验。 通过这样一个基于PyTorch搭建的Faster R-CNN目标检测平台,我们将能够深入理解目标检测算法的原理和实现细节,提高对深度学习框架的应用能力,并为未来的研究和应用奠定基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值