This is an automated email from the ASF dual-hosted git repository. jxie pushed a commit to branch vision in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
commit 9a7e3e6556d40ba441e3b26b282954291c9d76c2 Author: Eric Junyuan Xie <piiswr...@users.noreply.github.com> AuthorDate: Tue Nov 28 17:28:58 2017 -0800 fix (#8857) use macro for registration --- src/operator/image/image_random-inl.h | 22 +++++++ src/operator/image/image_random.cc | 111 ++++------------------------------ 2 files changed, 34 insertions(+), 99 deletions(-) diff --git a/src/operator/image/image_random-inl.h b/src/operator/image/image_random-inl.h index 9d10a30..cbc7f40 100644 --- a/src/operator/image/image_random-inl.h +++ b/src/operator/image/image_random-inl.h @@ -658,6 +658,28 @@ void RandomLighting(const nnvm::NodeAttrs &attrs, AdjustLightingImpl({alpha_r, alpha_g, alpha_b}, ctx, inputs, req, outputs); } + +#define MXNET_REGISTER_IMAGE_AUG_OP(name) \ + NNVM_REGISTER_OP(name) \ + .set_num_inputs(1) \ + .set_num_outputs(1) \ + .set_attr<nnvm::FInplaceOption>("FInplaceOption", \ + [](const NodeAttrs& attrs){ \ + return std::vector<std::pair<int, int> >{{0, 0}}; \ + }) \ + .set_attr<nnvm::FInferShape>("FInferShape", ImageShape) \ + .set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) \ + .set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) \ + .add_argument("data", "NDArray-or-Symbol", "The input.") + + +#define MXNET_REGISTER_IMAGE_RND_AUG_OP(name) \ + MXNET_REGISTER_IMAGE_AUG_OP(name) \ + .set_attr<FResourceRequest>("FResourceRequest", \ + [](const NodeAttrs& attrs) { \ + return std::vector<ResourceRequest>{ResourceRequest::kRandom}; \ + }) + } // namespace image } // namespace op } // namespace mxnet diff --git a/src/operator/image/image_random.cc b/src/operator/image/image_random.cc index 5a21bf8..481dfce 100644 --- a/src/operator/image/image_random.cc +++ b/src/operator/image/image_random.cc @@ -66,144 +66,57 @@ NNVM_REGISTER_OP(_image_normalize) .add_arguments(NormalizeParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_horizontal_flip) +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_horizontal_flip) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) -.set_attr<FCompute>("FCompute<cpu>", RandomHorizontalFlip) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input."); +.set_attr<FCompute>("FCompute<cpu>", RandomHorizontalFlip); -NNVM_REGISTER_OP(_image_random_brightness) +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_brightness) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomEnhanceParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) .set_attr<FCompute>("FCompute<cpu>", RandomBrightness) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomEnhanceParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_contrast) +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_contrast) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomEnhanceParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) .set_attr<FCompute>("FCompute<cpu>", RandomContrast) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomEnhanceParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_saturation) +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_saturation) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomEnhanceParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) .set_attr<FCompute>("FCompute<cpu>", RandomSaturation) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomEnhanceParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_hue) + +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_hue) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomEnhanceParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) .set_attr<FCompute>("FCompute<cpu>", RandomHue) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomEnhanceParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_color_jitter) + +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_color_jitter) .describe(R"code()code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomColorJitterParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) .set_attr<FCompute>("FCompute<cpu>", RandomColorJitter) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomColorJitterParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_adjust_lighting) + +MXNET_REGISTER_IMAGE_AUG_OP(_image_adjust_lighting) .describe(R"code(Adjust the lighting level of the input. Follow the AlexNet style.)code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<AdjustLightingParam>) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) .set_attr<FCompute>("FCompute<cpu>", AdjustLighting) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(AdjustLightingParam::__FIELDS__()); -NNVM_REGISTER_OP(_image_random_lighting) +MXNET_REGISTER_IMAGE_RND_AUG_OP(_image_random_lighting) .describe(R"code(Randomly add PCA noise. Follow the AlexNet style.)code" ADD_FILELINE) -.set_num_inputs(1) -.set_num_outputs(1) .set_attr_parser(ParamParser<RandomLightingParam>) -.set_attr<FResourceRequest>("FResourceRequest", [](const NodeAttrs& attrs) { - return std::vector<ResourceRequest>{ResourceRequest::kRandom}; -}) -.set_attr<nnvm::FInferShape>("FInferShape", ImageShape) -.set_attr<nnvm::FInferType>("FInferType", ElemwiseType<1, 1>) -.set_attr<nnvm::FInplaceOption>("FInplaceOption", - [](const NodeAttrs& attrs){ - return std::vector<std::pair<int, int> >{{0, 0}}; - }) .set_attr<FCompute>("FCompute<cpu>", RandomLighting) -.set_attr<nnvm::FGradient>("FGradient", ElemwiseGradUseNone{ "_copy" }) -.add_argument("data", "NDArray-or-Symbol", "The input.") .add_arguments(RandomLightingParam::__FIELDS__()); } // namespace image -- To stop receiving notification emails like this one, please contact "comm...@mxnet.apache.org" <comm...@mxnet.apache.org>.