2015-11-24 157 views
7

我使用Caffe在已知的图像数据库上训练AlexNet。我是基准测试并希望排除测试阶段。没有测试的咖啡培训

这里是AlexNet的solver.prototxt

net: "models/bvlc_alexnet/train_val.prototxt" 
test_iter: 1000 
test_interval: 1000 
base_lr: 0.01 
lr_policy: "step" 
gamma: 0.1 
stepsize: 100000 
display: 20 
max_iter: 450000 
momentum: 0.9 
weight_decay: 0.0005 
snapshot: 10000 
snapshot_prefix: "models/bvlc_alexnet/caffe_alexnet_train" 
solver_mode: GPU 

虽然我从来没有发现,列举了所有的prototxt选择一个明确的文档,来自Caffe教程中的注释表明这个“test_interval”代表迭代次数之后,我们测试训练有素的网络。

我想我可能会将它设置为零来关闭测试。不。

F1124 14:42:54.691428 18772 solver.cpp:140] Check failed: param_.test_interval() > 0 (0 vs. 0) 
*** Check failure stack trace: *** 

所以我设置test_interval到一百万,但仍当然,来自Caffe在迭代零测试网络。

I1124 14:59:12.787899 18905 solver.cpp:340] Iteration 0, Testing net (#0) 
I1124 14:59:15.698724 18905 solver.cpp:408]  Test net output #0: accuracy = 0.003 

怎样开启测试关闭,而培训?

回答

11

来自Caffe的文档细节上有所欠缺。我终于说这是违反直觉的解决方案:

在你solver.prototxt,走线test_itertest_interval

test_iter: 1000 
test_interval: 1000 

,并简单地忽略他们。如果你想防止在开始测试,您将添加一个行@shai suggested

test_initialization: false 
+2

'对于细节有点缺乏' - 这是一个巨大的轻描淡写) – Alex

6

你也有这样的标志。添加

test_initialization: false 

要将'solver.prototxt'和你做;)

+0

不幸的是,这并不妨碍traiing期间测试。 –

+1

@WesModes如果你另外设置otest_interval大于max_iter,你应该没问题 – Shai