如何在caffe python编程中为求解器手动设置net和其他参数?

时间:2017-06-21 12:16:18

标签: python caffe

使用solver.prototxt的内容如下:

test_iter: 2
test_interval: 50
base_lr: 0.001
lr_policy: "step"
gamma: 0.1
stepsize: 100
display: 20
max_iter: 500
momentum: 0.9
weight_decay: 0.005
solver_mode: CPU

我在caffe中尝试了以下代码:

solver = caffe.SGDSolver('< some long path >/solver.prototxt')
solver.net = < some code created net >
solver.solve()

我收到以下错误:

... [... solver.cpp:67]检查失败:num_train_nets&gt; = 1(0对1)SolverParameter必须使用以下字段之一指定火车网:net,net_param,train_net,train_net_param *检查故障堆栈跟踪:*

我想知道是否有可能通过python代码手动设置解算器的参数而不仅仅是加载原型文件?

1 个答案:

答案 0 :(得分:0)

我不熟悉pycaffe,但根据你的错误,我认为你在solver.prototxt中错过了一个火车网。添加如下这样的一行:

train_net: "path/to/your/train.prototxt"

它应该没问题。

我不知道你有什么版本的caffe,但在当前版本中,错误应该是(solver.cpp中的相同行,关闭内容):

CHECK_GE(num_train_nets, 1) << "SolverParameter must specify a train net "
<< "using one of these fields: " << field_names;

使错误更容易识别。