Получение ошибки на [base_conv_layer.cpp:122] Проверка не удалась: каналы_% группа_ == 0 (1 против 0), как решить?

Когда я пытаюсь обучить FCN32 семантической сегментации на своих собственных данных, я получаю эта ошибка:

    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)

Я не включил создание предыдущих слоев. Но вроде net успешно создает предыдущие слои, и доходит до Creating Layer upscore_sign, выходит ошибка. Я изменил solver следующим образом:

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   #+

и я изменил количество выходов с 60 на 5 (исходя из количества классов в моих данных): convolution_param {num_output: 5 }

Может ли кто-нибудь предложить какое-либо решение или идею по этому поводу? Что я установил/изменил неправильно? В чем/где моя ошибка?

Ваша помощь приветствуется.


person S.EB    schedule 06.01.2017    source источник


Ответы (1)


Проверка не удалась: каналы_ % группа_ == 0 (1 против 0) Эта строка действительно имеет значение! Вы должны проверить свой num_output и группу и выяснить, имеют ли каналы_% группа_ == 0.

person Amose.Y    schedule 16.04.2017
comment
Большое спасибо за вашу помощь - person S.EB; 17.04.2017