资讯专栏INFORMATION COLUMN

caffe的python插口形成solver文件详细说明学习培训

89542767 / 329人阅读

  本文主要是给大家介绍了caffe的python插口形成solver文件详细说明学习培训实例,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的不断进步,尽早涨薪


  也有一些基本参数必须计算出来的,并不是乱设定。


  solver.prototxt的文件参数设置


  caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面,如下:


  base_lr:0.001


  display:782


  gamma:0.1


  lr_policy:“step”


  max_iter:78200


  momentum:0.9


  snapshot:7820


  snapshot_prefix:“snapshot”


  solver_mode:GPU


  solver_type:SGD


  stepsize:26067


  test_interval:782


  test_iter:313


  test_net:“/home/xxx/data/val.prototxt”


  train_net:“/home/xxx/data/proto/train.prototxt”


  weight_decay:0.0005


  假定我们会有50000个svm分类器,batch_size为64,即每批号解决64个样版,那必须迭代更新50000/64=782次才处理完毕一回每一个样版。我们可以把处理完毕一回每一个样版,称作新一代,即epoch。因此,这儿的test_interval设成782,即处理完毕一回每一个训练数据后,才要进行测试。假如我们想练习100代,就需要设定max_iter为78200.


  同样,若是有10000个检测样版,batch_size设成32,那必须迭代更新10000/32=313次才全面地检测完一回,因此设定test_iter为313.


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


  生成solver文件


  下面是生成solver文件的python代码,比较简单:


  #-*-coding:utf-8-*-
  """
  Created on Sun Jul 17 18:20:57 2016
  author:root
  """
  path='/home/xxx/data/'
  solver_file=path+'solver.prototxt'#solver文件保存位置
  sp={}
  sp['train_net']=‘“'+path+'train.prototxt”'#训练配置文件
  sp['test_net']=‘“'+path+'val.prototxt”'#测试配置文件
  sp['test_iter']='313'#测试迭代次数
  sp['test_interval']='782'#测试间隔
  sp['base_lr']='0.001'#基础学习率
  sp['display']='782'#屏幕日志显示间隔
  sp['max_iter']='78200'#最大迭代次数
  sp['lr_policy']='“step”'#学习率变化规律
  sp['gamma']='0.1'#学习率变化指数
  sp['momentum']='0.9'#动量
  sp['weight_decay']='0.0005'#权值衰减
  sp['stepsize']='26067'#学习率变化频率
  sp['snapshot']='7820'#保存model间隔
  sp['snapshot_prefix']=‘"snapshot"'#保存的model前缀
  sp['solver_mode']='GPU'#是否使用gpu
  sp['solver_type']='SGD'#优化算法
  def write_solver():
  #写入文件
  with open(solver_file,'w')as f:
  for key,value in sorted(sp.items()):
  if not(type(value)is str):
  raise TypeError('All solver parameters must be strings')
  f.write('%s:%sn'%(key,value))
  if __name__=='__main__':
  write_solver()


  执行上面的文件,我们就会得到一个solver.prototxt文件,有了这个文件,我们下一步就可以进行训练了。


  当然,如果你觉得上面这种键值对的字典方式,写起来容易出错,我们也可以使用另外一种比较简便的方法,没有引号,不太容易出错,如下:


  简便的方法


  #-*-coding:utf-8-*-
  from caffe.proto import caffe_pb2
  s=caffe_pb2.SolverParameter()
  path='/home/xxx/data/'
  solver_file=path+'solver1.prototxt'
  s.train_net=path+'train.prototxt'
  s.test_net.append(path+'val.prototxt')
  s.test_interval=782
  s.test_iter.append(313)
  s.max_iter=78200
  s.base_lr=0.001
  s.momentum=0.9
  s.weight_decay=5e-4
  s.lr_policy='step'
  s.stepsize=26067
  s.gamma=0.1
  s.display=782
  s.snapshot=7820
  s.snapshot_prefix='shapshot'
  s.type=“SGD”
  s.solver_mode=caffe_pb2.SolverParameter.GPU
  with open(solver_file,'w')as f:
  f.write(str(s))
  训练模型(training)
  如果不进行可视化,只想得到一个最终的训练model,那么代码非常简单,如下:
  import caffe
  caffe.set_device(0)
  caffe.set_mode_gpu()
  solver=caffe.SGDSolver('/home/xxx/data/solver.prototxt')
  solver.solve()


  综上所述,这篇文章就给大家介绍完毕了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128776.html

相关文章

  • caffepython插口之手写数字识别mnist案例

      文中主要是给大家介绍了caffe的python插口之手写数字识别mnist案例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  论文引言  机器学习第一个案例一般都是是mnist,只需这个案例彻底搞懂了,其他的便是触类旁通的事了。因为字数缘故,文中不简单介绍环境变量里边每一个指标的具体函义,如果要搞明白的,请参考我之前的微博文章:  数据访问层及主...

    89542767 评论0 收藏0
  • caffepython插口制作loss和accuracy曲线图

      此篇文章主要是给大家介绍了caffe的python插口制作loss和accuracy曲线图实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  前言  使用python插口来运行caffe程序流程,根本原因是python很容易数据可视化。所以才建议大家在cmd下边运行python程序流程。如果一定要在cmd下边运作,不如直接用c++算了。  强烈推...

    89542767 评论0 收藏0
  • caffepython插口形成环境变量学习培训

      此篇文章主要是详细介绍了caffe的python插口形成环境变量学习培训,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  caffe是C++语言表达所写的,可能大家不太熟,所以想要更方便的编程语言来达到。caffe给予matlab接口和python插口,这几种语言表达就比较简单,并且很容易开展数据可视化,导致学习培训更为迅速,了解更加深刻。  一年前,我在...

    89542767 评论0 收藏0
  • caffepython接口deploy形成caffemodel归类新图片

      本文主要是给大家介绍了caffe的python插口生成deploy文件学习培训及其用练习好一点的实体模型(caffemodel)来归类新的图片实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  caffe的python插口生成deploy文件  假如要将练习好一点的实体模型用于检测新的图片,那必然必须得一个deploy.prototxt文件,这一...

    89542767 评论0 收藏0
  • Caffe神经网络solver及其配备详细说明

      文中关键给大家介绍了Caffe神经网络solver及其配备详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  前言  solver算是caffe的最核心的关键,它融洽着全部建模运行。caffe程序执行必带的另一个主要参数就是solver环境变量。运行代码一般为  #caffetrain--solver=*_slover.prototxt  在Deep...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<