2017-01-06 1 views
1

Wenn ich versuche FCN32 für semantic segmentation auf meine eigenen Daten zu trainieren, erhalte ich diese Fehlermeldung:Fehler erhalten auf [base_conv_layer.cpp: 122] Überprüfung fehlgeschlagen: channels_% group_ == 0 (1 vs. 0), wie man es löst?

I0106 12:57:53.273977 19825 net.cpp:100] Creating Layer upscore_sign 
    I0106 12:57:53.273982 19825 net.cpp:434] upscore_sign <- score_fr_sign 
    I0106 12:57:53.274001 19825 net.cpp:408] upscore_sign -> upscore_sign 
    F0106 12:57:53.274119 19825 base_conv_layer.cpp:122] Check failed: channels_ % group_ == 0 (1 vs. 0) 
    *** Check failure stack trace: *** 
     @  0x7f2602e525cd google::LogMessage::Fail() 
     @  0x7f2602e54433 google::LogMessage::SendToLog() 
     @  0x7f2602e5215b google::LogMessage::Flush() 
     @  0x7f2602e54e1e google::LogMessageFatal::~LogMessageFatal() 
     @  0x7f260350701b caffe::BaseConvolutionLayer<>::LayerSetUp() 
     @  0x7f26033ee557 caffe::Net<>::Init() 
     @  0x7f26033efde1 caffe::Net<>::Net() 
     @  0x7f26033c5d4a caffe::Solver<>::InitTrainNet() 
     @  0x7f26033c7157 caffe::Solver<>::Init() 
     @  0x7f26033c74fa caffe::Solver<>::Solver() 
     @  0x7f2603400353 caffe::Creator_SGDSolver<>() 
     @   0x40c07a train() 
     @   0x408748 main 
     @  0x7f26014f3830 __libc_start_main 
     @   0x409019 _start 
     @    (nil) (unknown) 

Ich habe nicht die Schaffung von vorhergehenden Schichten enthalten. Aber es scheint net schafft vorherige Schichten erfolgreich, und es erreicht die Creating Layer upscore_sign, kommt der Fehler. Ich änderte solver wie folgt:

net: "train_val.prototxt" 
#test_net: "val.prototxt" 
test_iter: 200 #3000 #5105 
# make test net, but don't invoke it from the solver itself 
test_interval: 1000 
display: 20 
average_loss: 20 
lr_policy: "step" #"fixed" 
# lr for unnormalized softmax 
base_lr: 1e-10 
# high momentum 
momentum: 0.99 
# no gradient accumulation 
iter_size: 1 
max_iter: 300000 
weight_decay: 0.0005 
snapshot: 2000 #10000 
snapshot_prefix: "snapshot/FCN32s_train" 
test_initialization: false 
solver_mode: GPU #+ 

und ich änderte die Anzahl der Ausgänge 60-5 (bezogen auf die Anzahl der Klassen in meine Daten): convolution_param {num_output: 5 }

Kann jemand eine Lösung oder Idee dazu vorschlagen ? Was habe ich falsch gesetzt/verändert? Was/wo ist mein Fehler?

Ihre Hilfe wird geschätzt.

Antwort

2

Überprüfung fehlgeschlagen: channels_% group_ == 0 (1 vs. 0) Diese Zeile ist wirklich wichtig! Sie sollten Ihre num_output und Gruppe überprüfen und herausfinden, ob channels_% group_ = 0. 0.

+0

Vielen Dank für Ihre Hilfe –