介绍caffe的python插口形成solver文件
本文主要是介绍了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
这些参数需要根据实际情况进行设置,其中test_interval设为782,即每完成一次训练数据的迭代就进行一次测试。max_iter设为78200,表示要迭代训练100代。test_iter设为313,表示进行10000个检测样版的检测需要迭代313次。学习率变化规律一般设置为随着迭代次数的增加而慢慢变低,我们可以将lr_rate变化三次,因此stepsize应设为78200/3=26067,即每迭代26067次,变化一次学习率。
生成solver文件
下面是生成solver文件的python代码:
path='/home/xxx/data/'
solver_file=path+'solver.prototxt'
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'
sp['snapshot_prefix']='“snapshot”'
sp['solver_mode']='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文件,这样我们就可以进行训练了。如果你不喜欢用字典来表示参数下标,可以用另一种更为简便的方法,这里就不再细述了。
训练模型(training)
如果你不需要进行可视化,只是想得到一个最终的训练model,那么下面的代码就可以实现这个功能:
import caffe
caffe.set_device(0)
caffe.set_mode_gpu()
solver=caffe.SGDSolver('/home/xxx/data/solver.prototxt')
solver.solve()
总结
本文主要为大家介绍了caffe的python插口形成solver文件的详细知识和实例,希望能够对大家的学习和工作有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6859.html
