卷积神经网络经验-CS231n笔记
Posted lulujianjie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络经验-CS231n笔记相关的知识,希望对你有一定的参考价值。
课程note中讲了一些工程经验,感觉很有用,记下来供自己以后查阅
- 相比于大的滤波器,小滤波器更受青睐。小滤波器参数更少、计算量更小、能够表达更多的特征,做反向传播时需要的内存更少。
- 通常不会考虑创建一个新的网络结构。一般都会找一些在ImageNet上有较好表现的预训练网络,下载下来然后做finetune
- input layer通常是2的倍数,比如32(CIFAR-10),96(STL-10)
- conv layer通常使用小滤波器(3x3 或 5x5),stride=1,做padding保证卷积层不会改变输入的维数
- 如果必须使用大的滤波器(7x7),就在第一层使用,输入为原图像。
- pooling layer通常使用2x2 max-pooling with stride=2或者不常用的3x3 with stride =2
- 大于3的pooling几乎不会做,因为会带来很大的信息损失,进而网络结构表示很差。
- 为什么通常stride=1,因为实际中小的stride的效果更好,而且可以把down-sampling交给pooling层,conv层只做输入的体积转换
- 为了减少内存限制,通常对网络进行压缩。一般在第一个卷积层执行,比如ZF net 使用了7x7滤波器 stride=2,AlexNet使用了11x11 滤波器 stride =4
- 通常如果GPU内存不够的话,可以考虑减小batch size,因为大多数内存消耗都是由activation layers造成的。
以上是关于卷积神经网络经验-CS231n笔记的主要内容,如果未能解决你的问题,请参考以下文章
[人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级
cs231n spring 2017 lecture9 听课笔记
Stanford CS231n实践笔记(课时22卷积神经网络工程实践技巧与注意点 cnn in practise 上)