无需测试的 Caffe 培训
Caffe training without testing
我正在使用 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
如何在训练时关闭测试?
你也有一个标志。添加
test_initialization: false
到你的 'solver.prototxt'
就完成了 ;)
Caffe 的文档在细节上有些欠缺。最后告诉我的是这个违反直觉的解决方案:
在您的 solver.prototxt 中,使用 test_iter
和 test_interval
的行
test_iter: 1000
test_interval: 1000
并简单地忽略它们。如果您想在开始时阻止测试,您可以添加一行 :
test_initialization: false
我正在使用 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
如何在训练时关闭测试?
你也有一个标志。添加
test_initialization: false
到你的 'solver.prototxt'
就完成了 ;)
Caffe 的文档在细节上有些欠缺。最后告诉我的是这个违反直觉的解决方案:
在您的 solver.prototxt 中,使用 test_iter
和 test_interval
test_iter: 1000
test_interval: 1000
并简单地忽略它们。如果您想在开始时阻止测试,您可以添加一行
test_initialization: false