You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by jx...@apache.org on 2018/01/22 20:43:48 UTC

[incubator-mxnet] 17/20: fix (#8857)

This is an automated email from the ASF dual-hosted git repository.

jxie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git

commit f74f6e7c6a91b4d0ad6bd4377e16480f943ff54e
Author: Eric Junyuan Xie <pi...@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
jxie@apache.org.