diff --git a/src/layer/shufflechannel.cpp b/src/layer/shufflechannel.cpp index 47fea242604..b6167ec48a5 100644 --- a/src/layer/shufflechannel.cpp +++ b/src/layer/shufflechannel.cpp @@ -18,6 +18,19 @@ namespace ncnn { DEFINE_LAYER_CREATOR(ShuffleChannel) +ShuffleChannel::ShuffleChannel() +{ + one_blob_only = true; + support_inplace = false; +} + +int ShuffleChannel::load_param(const ParamDict& pd) +{ + group = pd.get(0, 1); + + return 0; +} + int ShuffleChannel::forward(const Mat &bottom_blob, Mat &top_blob) const { int c = bottom_blob.c; @@ -31,6 +44,7 @@ int ShuffleChannel::forward(const Mat &bottom_blob, Mat &top_blob) const // reject invalid group return -100; } + top_blob.create(w, h, c); if (top_blob.empty()) return -100; diff --git a/src/layer/shufflechannel.h b/src/layer/shufflechannel.h index b5723fa402f..bcc3cee4452 100644 --- a/src/layer/shufflechannel.h +++ b/src/layer/shufflechannel.h @@ -22,14 +22,10 @@ namespace ncnn { class ShuffleChannel : public Layer { public: - ShuffleChannel() { - one_blob_only = true; - support_inplace = false; - } - virtual int load_param(const ParamDict& pd) { - group = pd.get(0, 1); - return 0; - } + ShuffleChannel(); + + virtual int load_param(const ParamDict& pd); + virtual int forward(const Mat& bottom_blob, Mat& top_blob) const; public: