zoukankan      html  css  js  c++  java
  • solver.prototxt 配置文件训练

    reference:https://blog.csdn.net/qq_27923041/article/details/55211808          https://www.cnblogs.com/Allen-rg/p/5795867.html

    1. ####训练样本###

    总共:121368个
    batch_szie:256
    将所有样本处理完一次(称为一代,即epoch)需要:121368/256=475 次迭代才能完成
    所以这里将test_interval设置为475,即处理完一次所有的训练数据后,才去进行测试。所以这个数要大于等于475.
    如果想训练100代,则最大迭代次数为47500;



    2. ####测试样本###
    同理,如果有1000个测试样本,batch_size为25,那么需要40次才能完整的测试一次。 所以test_iter为40;这个数要大于等于40.

    3. ####学习率###
    学习率变化规律我们设置为随着迭代次数的增加,慢慢变低。总共迭代47500次,我们将变化5次,所以stepsize设置为47500/5=9500,即每迭代9500次,我们就降低一次学习率。

    ####参数含义#############

    net: "examples/AAA/train_val.prototxt"   #训练或者测试配置文件
    test_interval: 475  #测试间隔
    base_lr: 0.01  #基础学习率
    lr_policy: "step"  #学习率变化规律
    gamma: 0.1  #学习率变化指数
    stepsize: 9500  #学习率变化频率
    display: 20  #屏幕显示间隔
    max_iter: 47500 #最大迭代次数
    momentum: 0.9 #动量
    weight_decay: 0.0005 #权重衰减
    snapshot: 5000 #保存模型间隔
    snapshot_prefix: "models/A1/caffenet_train" #保存模型的前缀
    solver_mode: GPU #是否使用GPU

    stepsize不能太小,如果太小会导致学习率再后来越来越小,达不到充分收敛的效果。

    1:     net: "examples/AAA/train_val.prototxt"

    设置深度网络模型。每一个模型就是一个net,需要在一个专门的配置文件中对net进行配置,每个net由许多的layer所组成。上面这句代码就是设置训练网络的,网络模型文件配置,即examples/myfile/文件下的train_val.prototxt里面的配置。                      

    2: test_iter: 40   #完成一次测试需要的迭代次数

    这个要与train layer 中的batch_size结合起来理解。训练数据中测试样本总数为400,一次性执行全部数据的效率太低,因此我将测试数据分成几个批次来执行,每个批次的数量就是batch_size。

    本文,我将batch_size设置为40,则需要迭代10次才能将400个数据全部执行完。因此test_iter设置为10.执行完一次全部数据,称之为一个epoch.

    3: test_interval:475

    测试间隔。也就是每训练475次,才进行一次测试。

    4: base_lr: 0.01  #基础学习率
    lr_policy: "step"  #学习率变化规律
    gamma: 0.1  #学习率变化指数
    stepsize: 9500  #学习率变化频率

    5: display: 20 

    mei训练20次,在屏幕显示一次。如果设置为0,则不显示。

    6: max_iter: 47500 #最大迭代次数

    最大迭代次数。这个参数设置太小,会导致没有收敛,精确度很低。设置太大,会导致震荡,浪费时间。

    7: momentum: 0.9 #动量

    上一次梯度更新的权重。

    8:     weight_decay: 0.0005 #权重衰减

    权重衰减项,防止过拟合的一个参数。

    9: snapshot: 5000 #保存模型间隔

    snapshot_prefix: "models/A1/caffenet_train" #保存模型的前缀

    快照。将训练出来的model和solver状态进行保存,snapshot用于设置训练多少次后进行保存,默认为0,不保存。snapshot_prefix:设置保存路径。

    还可以设置snapshot_diff,是否保存梯度值,默认为false,不保存。

    也可以设置snapshot_format,保存的类型。有两种选择:HDF5和BINARYPROTO,默认为BINARYPROTO

    10: solver_mode: GPU #是否使用GPU

    设置运行模式。默认为GPU,如果你没有GPU,则需改成CPU,否则会出错。

    注意:以上的所有参数均为可选参数,都有默认值,根据solver(type)方法的不同,还有一些其他的参数,大家根据自己的需要自己设置。

  • 相关阅读:
    一个tomcat 增加多个端口
    转项目经理
    apicloud 解析
    七行代码搞定 任意数据库中的数据迁移
    语语
    农家设计图纸
    日期再总结
    X删除数据表的新用法
    c#中各类日期的计算方法,收藏
    IIS 7.5 高并发参数配置
  • 原文地址:https://www.cnblogs.com/1149825709qq/p/14298929.html
Copyright © 2011-2022 走看看