caffe学习(3)接口

原创 2016年11月06日 14:23:22

接口Interfaces


Interfaces

Caffe提供丰富的接口,比如命令行,python,matlab。先说一下命令行

命令行


caffe命令及其参数解析,Single、Dog

Caffe的程序位于caffe / build / tools,运行时可以在根目录执行./build/tools/caffe <command><args>
其中<command>有四种:

  • train:训练或finetune模型(model)
  • test:测试模型
  • device_query:显示gpu信息
  • time:显示程序执行时间

其中的<args>参数有:

  • -solver
  • -gpu
  • -snapshot
  • -weights
  • -model
  • -sighup_effect
  • -sigint_effect

训练train

caffe train可以从头开始学习模型、从已保存的快照中恢复学习或添加新数据进行fine-tunes。具体来说,所有训练需要通过-solver solver.prototxt参数进行求解器配置;恢复需要使用-snapshot model_iter_1000.solverstate参数来加载求解程序快照;fine-tunes微调需要模型初始化的-weights model.caffemodel参数。

# train LeNet 训练LeNet
caffe train -solver examples/mnist/lenet_solver.prototxt
# train on GPU 2 在特定的GPU上
caffe train -solver examples/mnist/lenet_solver.prototxt -gpu 2
# resume training from the half-way point snapshot 从快照恢复
caffe train -solver examples/mnist/lenet_solver.prototxt -snapshot examples/mnist/lenet_iter_5000.solverstate
# fine-tune CaffeNet model weights for style recognition 完整例子参阅examples/finetuning_on_flickr_style,仅调用可使用:
caffe train -solver examples/finetuning_on_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel

对于train的参数,功能为:

  • -solver:必选,后跟一个protocol buffer类型(.prototxt)的文件,即模型的配置文件。
  • -gpu:可选,指定某一块GPU运行,-gpu all是所有运行:
# train on GPUs 0 & 1 (doubling the batch size)
caffe train -solver examples/mnist/lenet_solver.prototxt -gpu 0,1
# train on all GPUs (multiplying batch size by number of devices)
caffe train -solver examples/mnist/lenet_solver.prototxt -gpu all
  • -snapshot:可选,从快照中恢复,设置快照可从solver配置中进行,保存为solverstate。
  • -weights:可选参数。用预先训练好的权重来fine-tuning模型,需要一个caffemodel,不能和-snapshot同时使用。
  • -iterations: 可选参数,迭代次数,默认为50。 如果在配置文件文件中没有设定迭代次数,则默认迭代50次。
  • -model:可选参数,定义在protocol buffer文件中的模型。也可以在solver配置文件中指定。
  • -sighup_effect:可选参数。用来设定当程序发生挂起事件时,执行的操作,可以设置为snapshot, stop或none, 默认为snapshot。
  • -sigint_effect: 可选参数。用来设定当程序发生键盘中止事件时(ctrl+c), 执行的操作,可以设置为snapshot, stop或none, 默认为stop。

测试test

测试时输出每个batch得分,最后返回平均值。test参数用在测试阶段,用于最终结果的输出,要模型配置文件中我们可以设定需要输入accuracy还是loss. 假设我们要在验证集中验证已经训练好的模型,就可以这样写

# score the learned LeNet model on the validation set as defined in the
# model architeture lenet_train_test.prototxt
caffe test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -gpu 0 -iterations 100

意思是利用训练好了的权重(-weight),输入到测试模型中(-model),用编号为0的gpu(-gpu)测试100次(-iteration)。

时间time

time参数用来在屏幕上显示程序运行时间。如:

# (These example calls require you complete the LeNet / MNIST example first.)
# time LeNet training on CPU for 10 iterations
caffe time -model examples/mnist/lenet_train_test.prototxt -iterations 10

这个例子用来在屏幕上显示lenet模型迭代10次所使用的时间。包括每次迭代的forward和backward所用的时间,也包括每层forward和backward所用的平均时间。

版权声明:本文为博主原创文章,转载请标注出处。

深度学习Caffe实战(9)Windows 平台caffe用MATLAB接口实现训练网络和测试

上一篇介绍了网络协议中各个参数的作用,知道了各个参数的作用,想必应该可以尝试修改网络结构了。前几篇博客介绍的都是用命令行训练和测试网络,这篇博客介绍如何用MATLAB接口实现训练和测试网络,windo...
  • gybheroin
  • gybheroin
  • 2017年01月07日 19:40
  • 3241

caffe利用snapshot从断点恢复训练

训练网络时迭代次数往往需要数万次,需要训练几天,如果突发什么意外(断电)训练停止了岂不要从头训练。 其实借用snapshot机制,比如每隔1万次迭代保存一下网络参数,然后下次训练判断有无snapsho...
  • u014568921
  • u014568921
  • 2016年12月10日 21:51
  • 2295

Caffe学习笔记(1)--Python接口

前言使用caffe也有一小段时间了,但是对于caffe的python接口总是一知半解,最近终于能静下心来,仔细阅读了caffe官方例程,并写下此博客。博文主要对caffe自带的分类例程00-class...
  • Jesse_Mx
  • Jesse_Mx
  • 2017年02月28日 17:02
  • 5119

caffe for windows的python接口学习(3):生成以原始图片作为输入的配置文件

在caffe for windows的python接口学习(2)中,我们介绍了一种生成配置文件的方式。那种方式的前提是必须要先把原始图片转换成LMDB格式的文件才行。如果我们已经把原始图片做成了一个列...
  • Enjolras_fuu
  • Enjolras_fuu
  • 2016年12月01日 18:23
  • 454

【caffe源码研究】第二章:使用篇(3) : C++接口

在caffe提供的样例里有一个C++接口的范例,整理一下如下。 首先是预测的 Classifier 类,定义构造函数Classifier和预测函数Classify。#include #ifdef ...
  • fangjin_kl
  • fangjin_kl
  • 2016年12月22日 19:48
  • 587

caffe cpu版 Anaconda3 python 接口安装

安装之前请详细阅读官方的文档 caffer installationcaffer Ubuntu Installation由于官方的文档给出了各个版本的安装需求和 config 文件的部分参数含义,不够...
  • u012675539
  • u012675539
  • 2016年05月09日 11:02
  • 5298

caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片

原文链接:http://www.cnblogs.com/denny402/p/5685909.html 经过前面两篇博文的学习,我们已经训练好了一个caffemodel模型,并生成了一个dep...
  • lilai619
  • lilai619
  • 2017年01月07日 11:15
  • 514

深度学习(caffe+VS2013+WIN10)使用GPU编译——调用python接口并且成功运行mnist

本文主要介绍:经过一番欲哭无泪的折腾,终于在Windows10 64位系统下成功配置Caffe的GPU版,可惜的是我的电脑并没有掉cudnn,因为个GPU计算能力不够,我的GPU计算能力是2.1,而c...
  • u010029064
  • u010029064
  • 2016年12月06日 00:02
  • 654

caffe python接口 图片预处理 transformer 类 学习笔记

class Transformer: """ Transform input for feeding into a Net. Note: this is mostly...
  • zuqiutxy
  • zuqiutxy
  • 2016年10月28日 17:35
  • 209

caffe的python接口学习(4):mnist实例---手写数字识别

原文链接:http://www.cnblogs.com/denny402/p/5684431.html 深度学习的第一个实例一般都是mnist,只要这个例子完全弄懂了,其它的就是...
  • lilai619
  • lilai619
  • 2017年01月07日 11:12
  • 519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:caffe学习(3)接口
举报原因:
原因补充:

(最多只允许输入30个字)