Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Numpy hsplit #15358

Closed
wants to merge 1 commit into from
Closed

Numpy hsplit #15358

wants to merge 1 commit into from

Conversation

gyshi
Copy link
Contributor

@gyshi gyshi commented Jun 25, 2019

Description

numpy hsplit

Checklist

Essentials

Please feel free to remove inapplicable items for your PR.

  • The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage:
  • Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
  • Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
  • Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
  • Code is well-documented:
  • For user-facing API changes, API doc string has been updated.
  • For new C++ functions in header files, their functionalities and arguments are documented.
  • For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
  • Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
  • To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

  • Feature1, tests, (and when applicable, API doc)
  • Feature2, tests, (and when applicable, API doc)

Comments

  • not support indices_or_sections == 1
    @haojin2

@gyshi gyshi requested a review from szha as a code owner June 25, 2019 14:56
@gyshi
Copy link
Contributor Author

gyshi commented Jun 25, 2019

Thank @haojin2 for guidance and reviewing!

@@ -59,6 +59,222 @@ void NumpyTranspose(const nnvm::NodeAttrs& attrs,
}
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like you're re-using most of the existing SplitOpForward and SplitOpBackward, maybe you could refactor the existing code to expose common SplitOpForwardImpl and SplitOpBackwardImpl and call these functions from here instead of copying the code over.

@@ -464,5 +464,44 @@ NNVM_REGISTER_OP(_np_squeeze)
.add_argument("a", "NDArray-or-Symbol[]", "data to squeeze")
.add_arguments(SqueezeParam::__FIELDS__());

NNVM_REGISTER_OP(_npi_hsplit)
.add_alias("_npi_hsplit")
Copy link
Contributor

@haojin2 haojin2 Aug 15, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you already registered it as _npi_hsplit then you do not need an extra _npi_hsplit alias

.add_alias("_npi_hsplit")
.describe(R"code(Splits an array along a particular axis= 1 into multiple sub-arrays.

`squeeze_axis=True` removes the axis with length 1 from the shapes of the output arrays.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for .describe() here as this is an internal operator.

@gyshi gyshi closed this Aug 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants