zoukankan      html  css  js  c++  java
  • 卷积神经网络经验-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造成的。
  • 相关阅读:
    U1. 广度优先搜索(BFS)和 广度优先搜索(DFS)
    C5. Spring 服务的注册与发现(Spring Cloud Eureka)
    S3. Android 消息推送
    S2. Android 常用控件
    S12. Android 检查更新功能实现
    S1. Android 功能大全
    B9 Concurrent 重入锁(ReentrantLock)
    117.dom2事件
    106.事件的传播机制
    105.事件对象及兼容处理
  • 原文地址:https://www.cnblogs.com/jacklu/p/7424948.html
Copyright © 2011-2022 走看看