【C++接口命令行参数解析】
caffe的运行提供三种接口:C++接口(命令行)、Python接口和Matlab接口。
caffe的C++主程序(caffe.cpp)放在caffe-master\tools文件夹内,如下图所示:
在这个文件夹内,经过编译后,这些文件都被编译成了exe可执行文件,放在了.\Build\x64\Release\文件夹下,如下图所示:
因此,我们要执行caffe程序,都需要加.\Build\x64\Release\前缀
caffe程序的命令行执行格式如下:
caffe <command> <args>
其中的<command>有这样四种:
trian:训练或finetune模型
test :测试模型
device_query :显示gpu信息
time:显示程序执行时间
其中的<args>参数有:
-solver:必选参数。模型的配置文件。如:
.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
-gpu:可选参数。该参数指定用哪一块gpu运行,根据gpu的id进行选择。如:
.\Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt -gpu 1
pause
-snapshot:可选参数。该参数用来从快照中恢复训练。可以在solver配置文件中设置快照,保存为solverstate。
-weights:可选参数。用预先训练好的权重来fine-tuning模型,需要一个生成caffemodel。不能和-snapshot同时使用。
-iterations:可选参数。迭代次数。如果在配置文件中没有设定迭代次数,则默认为50次
-model:可选参数。定义在protocol buffer 文件中的模型,也可以在solver配置文件中指定。
test参数用在测试阶段,用于最终结果的输出,如果要在验证集中验证已经训练好的模型,可以写:
.\Build\x64\Release\caffe.exe test --model examples\mnist\lenet_train_test.prototxt -weight examples\mnist\lenet_iter_1000.caffemodel