machine-learning - software - pytorch
Entrenamiento de Caffe sin pruebas (2)
La documentación de Caffe es algo escasa en detalles. Lo que finalmente me dijeron es esta solución contraintuitiva:
En su solver.prototxt, tome las líneas para test_iter
y test_interval
test_iter: 1000
test_interval: 1000
y simplemente omítales. Si desea evitar la prueba al principio, debe agregar una línea como @shai sugirió :
test_initialization: false
Estoy usando Caffe para entrenar a AlexNet en una base de datos de imágenes conocida. Estoy evaluando y quiero excluir una fase de prueba.
Aquí está el solver.prototxt
para AlexNet:
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
Aunque nunca encontré un documento definitivo que detallara todas las opciones de prototxt, los comentarios dentro de los tutoriales de Caffe indican que este " test_interval
" representa el número de iteraciones después del cual probamos la red entrenada.
Pensé que podría establecerlo en cero para desactivar las pruebas. Nop.
F1124 14:42:54.691428 18772 solver.cpp:140] Check failed: param_.test_interval() > 0 (0 vs. 0) *** Check failure stack trace: ***
Así que establecí el test_interval
en un millón, pero aún así, por supuesto, Caffe prueba la red en la iteración cero.
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
¿Cómo desactivo las pruebas durante el entrenamiento?
Usted tiene una bandera para eso también. Añadir
test_initialization: false
Para su ''solver.prototxt''
y ha terminado;)