Wes*_*des 7 machine-learning neural-network deep-learning caffe
我正在使用Caffe在已知的图像数据库上训练AlexNet.我正在进行基准测试,并希望排除测试阶段.
这是solver.prototxtAlexNet:
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
Run Code Online (Sandbox Code Playgroud)
虽然我从未找到详细说明所有原型文本选项的权威文档,但Caffe教程中的注释表明此" test_interval"表示我们测试经过训练的网络之后的迭代次数.
我想我可以把它设置为零来关闭测试.不.
Run Code Online (Sandbox Code Playgroud)F1124 14:42:54.691428 18772 solver.cpp:140] Check failed: param_.test_interval() > 0 (0 vs. 0) *** Check failure stack trace: ***
所以我设置test_interval为100万,但当然,Caffe在迭代零测试网络.
Run Code Online (Sandbox Code Playgroud)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
如何在训练时关闭测试?
Wes*_*des 14
Caffe的文档在细节方面有些不足.我最后被告知的是这种违反直觉的解决方案:
在你solver.prototxt,采取线test_iter和test_interval
test_iter: 1000
test_interval: 1000
Run Code Online (Sandbox Code Playgroud)
并简单地省略它们.如果您想在开始时阻止测试,可以在@shai建议时添加一行:
test_initialization: false
Run Code Online (Sandbox Code Playgroud)
你也有一面旗帜.加
test_initialization: false
Run Code Online (Sandbox Code Playgroud)
对你而言'solver.prototxt'你已经完成了;)