This is caffe implementation of shuffleNet V2, For details, you can read the original paper:
"ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design"
This model's shuffle_channel cuda file for acceleration is based on farmingyard/ShuffleNet. conv_dw_layer cuda file is based on farmingyard/caffe-mobilenet
Note: If you want to train Shufflenet V2 on caffe, firstly, you
should add all of *.cu and *.cpp to src/caffe/layers, and add all of
*.hpp to include/caffe/layers . Then, you need change the caffe.proto
:
message LayerParameter { ... optional ShuffleChannelParameter shuffle_channel_param = 164; ... } ... message ShuffleChannelParameter { optional uint32 group = 1[default = 1]; // The number of group }
If you have no clue about how to add the ShuffleChannel layer and ConvolutionDepthwise layer, take this blog"ShuffleNet在Caffe框架下的实现" as a reference.