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造成的。
  • 相关阅读:
    二叉链表(双叉链表)实现二叉树
    队列知识
    windows下Anaconda3配置TensorFlow深度学习库
    栈的顺序结构和链式结构实现
    Anaconda中配置Pyspark的Spark开发环境
    Scala学习笔记(3)-表达式归纳
    SparkR-Install
    推荐系统之最小二乘法ALS的Spark实现
    linux查看主机端口进程命令
    使用redis的五个注意事项
  • 原文地址:https://www.cnblogs.com/jacklu/p/7424948.html
Copyright © 2011-2022 走看看