zoukankan      html  css  js  c++  java
  • caffe训练分类网络笔记

    1、caffe环境:

      没有手动本机安装caffe,使用的docker,可在https://hub.docker.com/ 里面下载到符合自己环境的docker。

          进入环境命令:sudo docker run --runtime=nviida -v /绝对路径/:/Downloads ba2 /bin/bash

    2、网络:

      github上找所需的网络,早期使用caffe框架时,各种模型资源很丰富,后来就主要开源相关配置文件和基础模型了。找到基础模型和与之对应的deploy.prototxt文件。

      deploy.prototxt 修改全连接层的output_num后,可用于Python脚本测试模型的准确率,经典的caffe测试脚本网上有,如https://blog.csdn.net/u013841196/article/details/72799680

      在deploy.prototxt的基础上添加data层(训练和验证)、loss层和准确率计算层(替换掉prob层)可得到trainval.prototxt。

          另有,solver.prototxt文件用于调用trainval.prototxt和caffemodel,设置训练参数。

    net: "ResNet-50-trainval.prototxt"
    #每次测试跑多少次迭代,照片数量/test的batch_size
    test_iter: 20
    #每多少次迭代进行一次测试
    test_interval: 100
    test_initialization: false
    
    #初始的学习率
    base_lr: 0.001
    #学习率的下降策略
    lr_policy: "step"
    gamma: 0.1
    stepsize: 5000
    
    #每迭代多少次打印一次loss信息
    display: 100
    #最多迭代多少次
    max_iter: 15000
    #梯度下降策略,90%依赖这次,10%依赖上次
    momentum: 0.9
    #正则项的比重
    weight_decay: 0.0001
    #迭代多少次生成一次中间的caffemodel
    snapshot: 5000
    #caffemodel的前缀
    snapshot_prefix: "models/resnet_50.caffemodel"
    solver_mode: GPU

    3、训练

      训练命令

    #!/usr/bin/env sh  
    TOOLS=/opt/caffe/build/tools  
    GLOG_logtostderr=0 GLOG_log_dir=./ft_log/ $TOOLS/caffe train --solver=solver.prototxt --weights=/Downloads/ResNet/ResNet-50/snapshot/resnet_50_iter_100000.caffemodel -gpu 0  #加入 -gpu 选项

         如果训练的损失不下降,可以将学习率按5倍、10倍的减小,同时这里的lr_policy是step,可以设置stepsize微调,返回的学习率为base_lr*gamma^(iter/stepsize)。

      如果验证集在模型训练时与单侧的时候准确度相差较大,可以考虑从:1、训练时验证集没有完全被验证;2、自测的时候预处理不合理,如均值文件、归一化方式等。

    测试命令

    /opt/caffe/build/tools/caffe test -model trainval.prototxt -weights ./models/resnet_50_iter_10000.caffemodel -gpu 0 -iterations 20
  • 相关阅读:
    调试 Android* x86 应用程序的方法以及要使用的工具
    android 获取手机信息工具类
    Android 布局自适应屏幕
    php & 和 & (主要是url 问题)
    系统的BIOS与系统安装
    ios的设计原则
    POJ 2409 Let it Bead(Polya简单应用)
    鸿学金信风控具体介绍
    Linux高性能server编程——I/O复用
    WCF问题集锦:未依照DataMember定义的名称序列化对象
  • 原文地址:https://www.cnblogs.com/xiaoheizi-12345/p/12327039.html
Copyright © 2011-2022 走看看