CNN-Backbone的Pytorch实现
创建日期: 2020-07-04 17:19:39
简介:卷积神经网络非常适合处理图像相关任务,其优势一是权值共享策略,降低了模型复杂度和参数量,本质上也对应着生物视觉神经的感受野。二是其强大的特征提取能力,这也是目前视觉感知任务(分类检测分割等)性能提升的关键。而CNN模型的Bacebone(主干网络)主要负责的就是特征提取。特征提取能力的强弱直接决定了后面head的性能(head模块在的不同的任务下是不同的,简单的分类任务的head是最后接到全连接层上的,而分割任务的head是输出一组feature map,另外的检测任务则是输出bbox坐标)。本文主要工作是:测试不同Backbone在Cifar10数据集上的分类能力。用以初步判定不同Backbone的特征提取能力。github链接:https://github.com/lee-zq/CNN-Backbone
1. 项目介绍
cv任务种类繁多,但特征提取网络目前基本都是基于CNN来做。从最初的98年LeNet提出至今,网络特征提取能力越来越强,如ResNet,denseNet,mobileNet,efficientNet等等,相比于之前的AlexNet、VGGNet都要优秀很多。之前在一篇文章中提到过,一般论文里面提出的模型结构创新,较为低级的是用已有模块搭积木,而较为高级的,就是提出新的Backbone,再高级的那就是各大实验室的大佬们来做的工作了,如胶囊网络、图神经网络、动态卷积这些,直接从底层上改进卷积。言归正传,我做的这个项目是属于最低级的[23333],就是把别人的backbone拿过来做分类。我的出发点是对比目前提出的经典网络在Cifar10上的分类性能,用以鉴别网络的特征提取能力。建立对不同Backbone的理解,以及用pytorch实现的方法,从而在我自己的任务中能够灵活运用。
2. pytorch实现
Github链接:https://github.com/lee-zq/CNN-Backbone
这部分你可以直接参看项目的README,我在这里不再重复。主要就是下载Cifar10数据集和训练模型两部分。(模型我都定义在models文件夹下,在选择模型的时候,你只需要在train.py里面修改模型定义,并在命令行参数解析器里面修改保存路径即可)
目前已加入的模型有LeNet,DensenNet, ResNet, GhostNet。还有一些我基于一些新模块写的模型,有可变形卷积实现的DeformLeNet,有基于八度卷积(Octconv)实现的OctNet和OctResNet。
Tips:
测试代码未实现,我都是直接对比验证Accuracy的。(因为我直接用的cifar10的testset做的验证)
代码写的很naive,因为这是我从刚开始入门cv的时候就陆续写起来的,并没有设置很多接口,也写了很多注释,所以也很适合入门。
3. 更新记录
(这里记录一些我新加入的Backbone)
2020.07.04更新: 发现一样的工作有位大佬在两年前就开始做了,而且做的很详细(https://github.com/kuangliu/pytorch-cifar),参考了其中的transforms更新了我的代码。后续在此基础上加新模型。
4. To Do
(后续计划要加入的Backbone)
- HRNet
- ACNet
- ShuffleNet系列
- MobileNet系列
CNN-Backbone的Pytorch实现的更多相关文章
- Kaggle竞赛丨入门手写数字识别之KNN、CNN、降维
引言 这段时间来,看了西瓜书.蓝皮书,各种机器学习算法都有所了解,但在实践方面却缺乏相应的锻炼.于是我决定通过Kaggle这个平台来提升一下自己的应用能力,培养自己的数据分析能力. 我个人的计划是先从 ...
- 从卷积拆分和分组的角度看CNN模型的演化
博客:博客园 | CSDN | blog 写在前面 如题,这篇文章将尝试从卷积拆分的角度看一看各种经典CNN backbone网络module是如何演进的,为了视角的统一,仅分析单条路径上的卷积形式. ...
- ICCV2021 | 用于视觉跟踪的学习时空型transformer
前言 本文介绍了一个端到端的用于视觉跟踪的transformer模型,它能够捕获视频序列中空间和时间信息的全局特征依赖关系.在五个具有挑战性的短期和长期基准上实现了SOTA性能,具有实时性,比 ...
- ONNXRuntime学习笔记(三)
接上一篇完成的pytorch模型训练结果,模型结构为ResNet18+fc,参数量约为11M,最终测试集Acc达到94.83%.接下来有分两个部分:导出onnx和使用onnxruntime推理. 一. ...
- recurrent model for visual attention
paper url: https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf year: 2014 abs ...
- 论文笔记:Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification
Auto-ReID: Searching for a Part-aware ConvNet for Person Re-Identification 2019-03-26 15:27:10 Paper ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- 基于pytorch的CNN、LSTM神经网络模型调参小结
(Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...
- MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...
- (原)CNN中的卷积、1x1卷积及在pytorch中的验证
转载请注明处处: http://www.cnblogs.com/darkknightzh/p/9017854.html 参考网址: https://pytorch.org/docs/stable/nn ...
随机推荐
- NULL 是什么意思 ?
NULL 这个值表示 UNKNOWN(未知):它不表示""(空字符串).对 NULL 这 个值的任何比较都会生产一个 NULL 值.您不能把任何值与一个 NULL 值进行比 较,并 ...
- 学习Kvm(三)
虚拟化(将一个物理硬件平台虚拟成多个) vmware(模拟出一堆硬件设备,每一个硬件设备都是独立平台) 虚拟化要解决的问题(硬件之上的OS,有用户空间.内核空间:vmware虚拟机所模拟出的多个硬件平 ...
- 单片机ram和rom的区别
单片机运行时需要调用某个程序/函数/固定数据时就需要读取ROM,然后在RAM中执行这些程序/函数的功能,所产生的临时数据也都存在RAM内,断电后这些临时数据就丢失了.ROM:(Read Only Me ...
- 制作任意波形发生器MAX038
- mpvue打包没有app.json等配置文件的解决方法
问题 一早上折腾了1个小时,小程序始终提示查找不到'app.json'文件.mpvue重新打包,光生成内容文件无配置文件. 解决办法 出错原因:版本问题 只需要把packpage.json里的mpvu ...
- 利用angular4和nodejs-express构建一个简单的网站(七)—用户注册之ReactiveForm
这一节对用户注册组件进行分析.用户注册组件主要涉及angular4表单的操作.Angular提供了两种构建表单的技术:响应式表单和模板驱动表单. 这两项技术都属于@angular/forms库,并且共 ...
- Idea运行时Scala报错Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
一.情况描述 使用idea +scala+spark,运行程序代码如下: package cn.idcast.hello import org.apache.spark.rdd.RDD import ...
- tomcat 安装配置及问题解决
最近没写程序 刚想运行一个jsp程序发现tomcat出现一些问题,然后就重新装了程序,重新配置 总结经验就是不要怕报错,把错误复制下来,百度里面都有解决办法 要安装与自己jdk版本相匹配的tomcat ...
- PyQt5 基本语法(五)
目录 2. 输入控件(二) 2.2 步长调节 2.2.1 QAbstractSpinBox 2.2.1.1 描述 2.2.1.2 功能作用 2.2.1.2.1 使用 2.2.1.2.2 主要功能 2. ...
- Python入门-pip模块管理工具
安装 # 在线安装 pip install <包名> 安装后,该模块文件会在安装python环境目录:lib/packages目录下 # 安装本地安装包 pip install <目 ...