最近在做一个CNN车型分类的任务,首先先简要介绍一下这个任务。

  总共30个类,训练集图片为车型图片,类似监控拍摄的车型图片,训练集测试集安6:4分,训练集有22302份数据,测试集有14893份数据。

  首先使用的是VGGNet网络,

nn.Sequential {
[input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> (8) -> (9) -> (10) -> (11) -> (12) -> (13) -> (14) -> (15) -> (16) -> (17) -> (18) -> (19) -> (20) -> (21) -> (22) -> (23) -> (24) -> (25) -> output]
(1): nn.DataLayer
(2): cudnn.SpatialConvolution(3 -> 64, 6x6, 2,2, 2,2)
(3): cudnn.ReLU
(4): cudnn.SpatialMaxPooling(2x2, 2,2)
(5): cudnn.SpatialConvolution(64 -> 128, 5x5, 2,2, 2,2)
(6): cudnn.ReLU
(7): cudnn.SpatialMaxPooling(2x2, 1,1)
(8): cudnn.SpatialConvolution(128 -> 256, 3x3, 2,2, 2,2)
(9): cudnn.ReLU
(10): cudnn.SpatialMaxPooling(2x2, 1,1)
(11): cudnn.SpatialConvolution(256 -> 512, 2x2)
(12): cudnn.ReLU
(13): cudnn.SpatialMaxPooling(2x2, 1,1)
(14): cudnn.SpatialConvolution(512 -> 512, 2x2)
(15): cudnn.ReLU
(16): cudnn.SpatialMaxPooling(2x2, 1,1)
(17): nn.View(12800)
(18): nn.Linear(12800 -> 4096)
(19): cudnn.ReLU
(20): nn.Dropout(0.500000)
(21): nn.Linear(4096 -> 4096)
(22): cudnn.ReLU
(23): nn.Dropout(0.500000)
(24): nn.Linear(4096 -> 30)
(25): nn.LogSoftMax
}

  网络参数如上。五个卷积层,三个全连接层。

  数据预处理:每个图片scale成3*150*150大小。

  实验结果:十余小时90%的正确率。(据之前结果最高到92%)

  微调:使用Imagenet训练处的DataLayer,十余小时正确率达92%。(据之前结果最高到97%)

  注意(源代码中数据预处理与训练过程中有一点不匹配,会导致维度出错的bug,具体错误请自行调试)

  

  然后使用了Residual Learning的方法,使用的模型是ResNet-50。Model详见:http://ethereon.github.io/netscope/#/gist/db945b393d40bfa26006

  使用了之前用ImageNet训练好的ResNet-50的模型进行retrain,将最后的全连接2048-1000的Linear换成了2048-30的Linear。

  训练结果:十余小时94%的TOP1正确率。

  网络结构需参考: BatchNormalization论文。

  ResNet-50网络所需内存达到4000MB左右,需要两个GPU同时运行才能跑。

  结构中所采用的1*1卷积大大减少了网络的参数,首先1*1进行降维,3*3卷积后再使用1*1进行升维。每次维度变化都为4倍。

  数据预处理:输入为3*224*224。

  收敛速度曲线与论文中曲线类似:

CNN车型分类总结的更多相关文章

  1. Smartbi制作报表教程:热销车型分类排名总表

    今天Smartbi给大家分享 热销车型分类排名总表 这张移动端报表的制作过程. 制作工具:Smartbi云报表 Smartbi云报表是一款基于Office Excel的SAAS BI工具,支持在Exc ...

  2. [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)

    3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...

  3. CNN 文本分类

    谈到文本分类,就不得不谈谈CNN(Convolutional Neural Networks).这个经典的结构在文本分类中取得了不俗的结果,而运用在这里的卷积可以分为1d .2d甚至是3d的.  下面 ...

  4. CNN文本分类

    CNN用于文本分类本就是一个不完美的解决方案,因为CNN要求输入都是一定长度的,而对于文本分类问题,文本序列是不定长的,RNN可以完美解决序列不定长问题, 因为RNN不要求输入是一定长度的.那么对于C ...

  5. pytorch -- CNN 文本分类 -- 《 Convolutional Neural Networks for Sentence Classification》

    论文  < Convolutional Neural Networks for Sentence Classification>通过CNN实现了文本分类. 论文地址: 666666 模型图 ...

  6. 写给程序员的机器学习入门 (八) - 卷积神经网络 (CNN) - 图片分类和验证码识别

    这一篇将会介绍卷积神经网络 (CNN),CNN 模型非常适合用来进行图片相关的学习,例如图片分类和验证码识别,也可以配合其他模型实现 OCR. 使用 Python 处理图片 在具体介绍 CNN 之前, ...

  7. tensorflow学习之(十)使用卷积神经网络(CNN)分类手写数字0-9

    #卷积神经网络cnn import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #数据包,如 ...

  8. CNN 文本分类模型优化经验——关键点:加卷积层和FC可以提高精度,在FC前加BN可以加快收敛,有时候可以提高精度,FC后加dropout,conv_1d的input维度加大可以提高精度,但是到256会出现OOM。

    network = tflearn.input_data(shape=[None, max_len], name='input') network = tflearn.embedding(networ ...

  9. CNN tensorflow text classification CNN文本分类的例子

    from:http://deeplearning.lipingyang.org/tensorflow-examples-text/ TensorFlow examples (text-based) T ...

随机推荐

  1. Basic EEG waves 四种常见EEG波形

    Source: https://www.medicine.mcgill.ca/physio/vlab/biomed_signals/eeg_n.htm The electroencephalogram ...

  2. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. [LeetCode] Isomorphic Strings 同构字符串

    Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...

  4. 琴弦文字 - wpf行为

    效果图: 此效果的设计和实现思路均来自:上位者的怜悯 详情见原文:http://www.cnblogs.com/lianmin/p/5940637.html 我所做的,只是将原作者的设计和思路封装成了 ...

  5. 文件上传之——用SWF插件实现文件异步上传和头像截取

    之前写过几篇文件上传,那些都不错.今天小编带领大家体会一种新的上传方法,及使用Flash插件实现文件上传. 使用Flash的好处就是可以解决浏览器兼容性问题.之前我写的一个快捷复制功能也是利用的Fla ...

  6. 俄罗斯方块C#版

    using System; using System.Windows.Forms; using System.Drawing; using System.Media; class me : Form ...

  7. 【笔记】JS基础一

    名词解释 ECMAScript 翻译器,解释器 DOM 文档对象模型 Document Object Model 例如 document BOM 浏览器对象模型 Browser Object Mode ...

  8. 好用的wget命令从下载添加环境变量到各参数详解

    本文是因为(笔者使用的windows系统)使用过好几次wget后,始终存在各种细节问题,于是下定决定细致的研究一下,并记录下其中细节. 下载与安装 第一步:下载wget,网络地址:http://dow ...

  9. javascript中正则实现读取当前url中指定参数值方法。

    getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  10. svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法

    今天在svn提交的时候它卡顿了一下,我以为已经提交完了,就按了一下,结果就再也恢复不了,也继续不了了... 报错 cleanup failed–previous operation has not f ...