как добавить настраиваемый слой bn в caffe

Я загружаю проект deeplabV2 с GitHub и обнаруживаю, что в нем нет слоя "BN".
Я хотите добавить его в код кафе, но столкнулись с этой ошибкой:

src/caffe/layers/batch_norm_layer.cpp:250:31: 
error: macro "REGISTER_LAYER_CLASS" requires 2 arguments, but only 1 given REGISTER_LAYER_CLASS(BatchNorm);

Как решить пожалуйста?


person Lance6716    schedule 24.10.2017    source источник
comment
Откуда вы взяли реализацию слоя пакетной нормы?   -  person rkellerm    schedule 24.10.2017
comment
из pspnet, потому что я хочу применить pspnet к deeplab   -  person Lance6716    schedule 24.10.2017


Ответы (1)


Похоже, вы используете старую версию Caffe, которая принимает 2 параметра для макроса REGISTER_LAYER_CLASS, но слой BN подходит для более новой версии Caffe, где макрос был изменен, чтобы принимать только один параметр (который является типом слоя).
Вы можете либо проверить в других слоях, что является другим параметром для REGISTER_LAYER_CLASS, и добавить его соответствующим образом к вашему слою BN, либо взять обновленную версию Caffe и объединить в нее слои deeplab.
(В качестве альтернативы это выглядит как deeplab2 Репозиторий Caffe, обновленный, с поддержкой BN: https://github.com/xmyqsh/deeplab-v2 )

person rkellerm    schedule 24.10.2017