首页 > 代码库 > 深度学习-网络调参技巧
深度学习-网络调参技巧
最近在做深度学习实验,跑一次实验轻则以小时计、重则以天计,实在没有那么多的时间可以等待,因此想想用尽可能少的实验次数,得到尽可能好的实验效果。这样的话,问题就可以归结为如何设计合适的网络结构、如何设计合适的训练策略,主要就是:
- 层数、每一层卷积核个数、卷积权重初始化方式、dropout ratio、BN、全连接层神经元个数、Relu等网络结构参数应该如何选?
- 学习率、decay等solver参数又该如何设置?
在参考炼丹实验室的基础上,并结合自己的体会,谈谈对调参的理解,大家如果有其他技巧,也欢迎多多交流。
- 网络结构设计
如果我们在Cifar10数据集上进行实验,最好能够找几个在该数据集上效果较好的网络结构,看看别人的网络超参数是如何设置的,有什么共性(比如每一层卷积核的个数、大小、层数等)。原则就是“尽可能采用成熟的网络结构,近可能少改动网络结构”。
- 实验的输出
一般情况下,在实验的时候会有,train loss、test loss、训练集准确率、测试集准确率,根据它们的特点,我们大致可以得出网络的状态。训练集准确率高、测试集准确率低,过拟合;训练集准确率低、测试集准确率低,欠拟合;训练集、测试集上的准确率和初始状态相比,没有明显的变化,网络在“徘徊”。
- “过拟合”
这时候需要提高网络的泛化能力,例如引入dropout、或者增大已有dropout ration等。
- “欠拟合”
这时候需要增强模型的拟合能力,,例如增加网络层数、增加节点数,减少dropout等。
- “徘徊”
我现在面对的就是这样的状态,现在还没有明确的“应对指导思想”。
深度学习-网络调参技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。