2015-11-24 12 views
7

Sto usando Caffe per addestrare AlexNet su un database di immagini noto. Sono un benchmark e voglio escludere una fase di test.Caffe training senza test

Ecco la solver.prototxt per 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 

Mentre non ho mai trovato un documento definitivo che dettagliato tutte le opzioni prototxt, commenti all'interno tutorial Caffe indicano questa "test_interval" rappresenta il numero di iterazioni dopo di che testiamo la rete addestrata.

Ho pensato che avrei potuto azzerarlo per disattivare i test. No.

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

Così ho impostato il test_interval a un milione, ma ancora ovviamente, Caffe mette alla prova la rete al di iterazione zero.

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 

Come faccio a testare off, mentre la formazione?

risposta

11

documentazione del Caffe è un po 'scarsa sui dettagli. Quello che stavo finalmente detto è questa soluzione controintuitivo:

Nella tua solver.prototxt, prendere le linee per test_iter e test_interval

test_iter: 1000 
test_interval: 1000 

e semplicemente omettere. Se si desidera evitare che il test all'inizio, si dovrebbe aggiungere una riga come @shai suggested:

test_initialization: false 
+2

'un po' scarso sui dettagli '- questo è un grande eufemismo) – Alex

6

Hai una bandiera anche per questo. Aggiungi

test_initialization: false 

Per vostra 'solver.prototxt' e si è fatto;)

+0

Purtroppo, ciò non impedisce test durante traiing. –

+1

@WesModes se si imposta anche otest_interval per essere più grande di max_iter, si dovrebbe andare bene – Shai