2016-07-26 36 views
0

Ich versuche, ein CNN mit meinen eigenen Daten zu trainieren, cifar10 Netzwerkschichten verwenden. aber, wenn ich diesen Befehl renne:Training CNN mit cifar10 Solver

[email protected]:~/Desktop/caffe/caffe$ /home/roishik/Desktop/caffe/caffe/build/tools/caffe train --solver /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_solver.prototxt 2>&1 | tee /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt 

Ich bekomme diese Fehlermeldung:

I0726 22:01:40.884320 6596 caffe.cpp:210] Use CPU. 
I0726 22:01:40.884771 6596 solver.cpp:48] Initializing solver from parameters: 
test_iter: 100 
test_interval: 500 
base_lr: 0.001 
display: 100 
max_iter: 4000 
lr_policy: "fixed" 
momentum: 0.9 
weight_decay: 0.004 
snapshot: 4000 
snapshot_prefix: "/home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar_10_fast" 
solver_mode: CPU 
net: "/home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt" 
train_state { 
    level: 0 
    stage: "" 
} 
snapshot_format: HDF5 
I0726 22:01:40.885051 6596 solver.cpp:91] Creating training net from net file: /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt 
[libprotobuf ERROR google/protobuf/text_format.cc:245] Error parsing text-format caffe.NetParameter: 1:7: Message type "caffe.NetParameter" has no field named "I0726". 
F0726 22:01:40.885253 6596 upgrade_proto.cpp:79] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt 
*** Check failure stack trace: *** 
    @  0x7f0f10ad5daa (unknown) 
    @  0x7f0f10ad5ce4 (unknown) 
    @  0x7f0f10ad56e6 (unknown) 
    @  0x7f0f10ad8687 (unknown) 
    @  0x7f0f10f614be caffe::ReadNetParamsFromTextFileOrDie() 
    @  0x7f0f10fc6acb caffe::Solver<>::InitTrainNet() 
    @  0x7f0f10fc7b9c caffe::Solver<>::Init() 
    @  0x7f0f10fc7eca caffe::Solver<>::Solver() 
    @  0x7f0f10fa2473 caffe::Creator_SGDSolver<>() 
    @   0x40eb6e caffe::SolverRegistry<>::CreateSolver() 
    @   0x407d4b train() 
    @   0x40589c main 
    @  0x7f0f0fae1f45 (unknown) 
    @   0x40610b (unknown) 
    @    (nil) (unknown) 

ich alle über Google gesucht und keine Antwort gefunden haben. Was bedeutet diese Zeile bedeutet ?:

Error parsing text-format caffe.NetParameter: 1:7: Message type "caffe.NetParameter" has no field named "I0726". 

Wirklich zu schätzen Ihre Hilfe!

+0

enthält Ihr train_val.prototxt oder solver.prototxt die Zeichenfolge "I0726"? –

+0

posten Sie bitte die ersten Zeilen von ''/ home/roishik/Desktop/Thesis/Code/cafe_cnn/erste/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt'', damit wir den Syntaxfehler sehen können, über den sich caffe beschweren kann. – Shai

+0

Oh, tnx für mich zu bemerken :) – roishik

Antwort

1

Es ist, weil Sie es falsch machen.

Die Dateien, die Sie verwenden:

Solver: /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_solver.prototxt 
Net: /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt 
Log output: /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_train_test.prototxt 

Es ist anzumerken, dass sowohl die Net-Datei und die Protokolldatei gleich sind, was bedeutet, dass Sie die Net-Datei mit den Protokolldaten ersetzen. Wenn also coffe solver die Net-Datei durchsucht, werden die Daten durch log und damit den Fehler ersetzt.

Dies sollte Ihr Problem lösen:

[email protected]:~/Desktop/caffe/caffe$ /home/roishik/Desktop/caffe/caffe/build/tools/caffe train --solver /home/roishik/Desktop/Thesis/Code/cafe_cnn/first/caffe_models/cifar_10_fast/cifar10_quick_solver.prototxt 2>&1 | tee ./log.txt 

Aber stellen Sie sicher, dass Sie die überschrieben Net Datei mit der richtigen Datei ersetzt haben.

+0

Oh, danke! du hattest Recht! Ich habe nur vergessen, .log anstelle von .prototxt zu schreiben – roishik