KeyKy / mobilenet-mxnet

mobilenet-mxnet
145 stars 28 forks source link

Whatz the difference between ChannelwiseConvolution and Convolution Group #1

Closed douzsh closed 7 years ago

douzsh commented 7 years ago

I did not installed the channelwiseconvolution mxnet in your reference. I convert the model to use convolution group in dmlc/mxnet . With this I can't get the result accuracy ..

I can't find any paper for the difference.

Can you help me? Thanks a lot!

KeyKy commented 7 years ago

@douzsh https://github.com/cypw/CRU-Net/issues/6 . Do you mean convert model from caffe? The provided model in this repository can be used in convolution group mobilenet. I have tested channelwiseconvolution and convolution group have the same output.

douzsh commented 7 years ago

Sorry, I did not convert model from caffe. I only convert the mxnet channelwiseconvlolution in symbol.json to convolution .... Is this right? I didnot read the inside of channelwiseconvolultion...

KeyKy commented 7 years ago

@douzsh I test my params again and can reproduce the accuracy. If you do not want to use channelwiseconvlolution, you can check the mobilenet-faster.py.

douzsh commented 7 years ago

Thanks I fixed the problem.

Shiro-LK commented 7 years ago

hello, I have the same problem. How did you solve the problem ? In the mobilenet-faster.py there is also the channelwiseconvolution

KeyKy commented 7 years ago

@Shiro-mx you can replace all channelwiseconvolution with conv+group and the provided param still works.

Shiro-LK commented 7 years ago

so conv2_1_dw = mx.symbol.ChannelwiseConvolution(name='conv2_1_dw', data=relu1 , num_filter=32, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True, num_group=32) change to conv2_1_dw = mx.symbol.Convolution(name='conv2_1_dw', data=relu1 , num_filter=32, pad=(1, 1), kernel=(3,3), stride=(1,1), no_bias=True, num_group=32) But when you say to replace by group, is it symbol.group or num_group args in symbol.Convolution ?

KeyKy commented 7 years ago

@Shiro-mx yes