zoukankan      html  css  js  c++  java
  • 深度学习-网络调参技巧

    最近在做深度学习实验,跑一次实验轻则以小时计、重则以天计,实在没有那么多的时间可以等待,因此想想用尽可能少的实验次数,得到尽可能好的实验效果。这样的话,问题就可以归结为如何设计合适的网络结构、如何设计合适的训练策略,主要就是:

    1. 层数、每一层卷积核个数、卷积权重初始化方式、dropout ratio、BN、全连接层神经元个数、Relu等网络结构参数应该如何选?
    2. 学习率、decay等solver参数又该如何设置?

    在参考炼丹实验室的基础上,并结合自己的体会,谈谈对调参的理解,大家如果有其他技巧,也欢迎多多交流。

    • 网络结构设计

    如果我们在Cifar10数据集上进行实验,最好能够找几个在该数据集上效果较好的网络结构,看看别人的网络超参数是如何设置的,有什么共性(比如每一层卷积核的个数、大小、层数等)。原则就是“尽可能采用成熟的网络结构,近可能少改动网络结构”。

    • 实验的输出

    一般情况下,在实验的时候会有,train loss、test loss、训练集准确率、测试集准确率,根据它们的特点,我们大致可以得出网络的状态。训练集准确率高、测试集准确率低,过拟合;训练集准确率低、测试集准确率低,欠拟合;训练集、测试集上的准确率和初始状态相比,没有明显的变化,网络在“徘徊”。

    • “过拟合”

    这时候需要提高网络的泛化能力,例如引入dropout、或者增大已有dropout ration等。

    • “欠拟合”

    这时候需要增强模型的拟合能力,,例如增加网络层数、增加节点数,减少dropout等。

    • “徘徊”

    我现在面对的就是这样的状态,现在还没有明确的“应对指导思想”。

  • 相关阅读:
    iframe嵌套
    fiddler——一款莱斯的抓包工具
    工程代码规范和更新规范
    新项目新工作空间新仓库新setting文件
    quartz-job实现实时或定时发送短信任务
    quartz-job实现定时任务配置
    quartz开源作业调度框架的配置
    Confluence 6 让一个空间可以公众访问
    Confluence 6 管理和恢复空间管理权限
    Confluence 6 指派和撤销空间权限
  • 原文地址:https://www.cnblogs.com/everyday-haoguo/p/DL-Parameters.html
Copyright © 2011-2022 走看看