使用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代码手动设置解算器的参数而不仅仅是加载原型文件?
答案 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;
使错误更容易识别。