This repository was archived by the owner on Nov 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
[Feature] MXNet NumPy Standard APIs Implementation Checklist #20579
Copy link
Copy link
Open
Labels
Description
As proposed in #20501, MXNet will support standardized Python Array APIs and I have collected most of unimplemented operators or methods to be tracked in this issue.
These operators or methods are splited into three parts. The part1 is the basic element-wise functions, which are prerequistes to implement the operators and methods in part2. Functions in part3 are some Linear Algebra Functions.
Part1: Element-wise Functions
- bitwise_left_shift ([API] Add bitwise_left/right_shift #20587)
- bitwise_invert : mx.np.invert ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- bitwise_right_shift ([API] Add bitwise_left/right_shift #20587)
- floor_divide ([API] Add floor_divide #20620)
- logaddexp ([API] Add logaddexp #20673)
- positive : (mx.np.copy [API] Add positive #20667)
- pow : mx.np.power ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
Part2:
Operators:
- __pos__ : (positive(x) [API] Add positive #20667)
- __floordiv__ : floor_divide(x1, x2) ([API] Add floor_divide #20620)
- __lshift__ : bitwise_left_shift(x1, x2) ([API] Add bitwise_left/right_shift #20587)
- __rshift__ : bitwise_right_shift(x1, x2) ([API] Add bitwise_left/right_shift #20587)
In-place Operators:
- __ifloordiv__ : floor_divide(self, other, out=self) ([API] Add floor_divide #20620)
- __ipow__ : pow(self, other, out=self) ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- __ilshift__ : bitwise_left_shift(self, other, out=self) ([API] Add bitwise_left/right_shift #20587)
- __irshift__ : bitwise_right_shift(self, other, out=self) ([API] Add bitwise_left/right_shift #20587)
Reflected Operators:
- __radd__ : add(other, self) ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- __rfloordiv__ : floor_divide(other, self) ([API] Add floor_divide #20620)
- __rand__ : bitwise_and(self, other) ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- __ror__ : bitwise_or(self, other) ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- __rxor__ : bitwise_xor(self, other) ([API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- __rlshift__ : bitwise_left_shift(other, self) ([API] Add bitwise_left/right_shift #20587)
- __rrshift__ : bitwise_right_shift(other, self) ([API] Add bitwise_left/right_shift #20587)
Part3:
Linear Algebra Functions:
To be implemented:
- linalg.cross : (mx.np.cross [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
- linalg.diagonal : (mx.np.diagonal [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
- linalg.matrix_power : (fallback to onp.linalg.matrix_power)
- linalg.outer : (mx.np.outer [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
- linalg.tensordot : (mx.np.tensordot [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
- linalg.svdvals ([API] Add linalg.svdvals #20696)
- linalg.trace : (mx.np.trace [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
- linalg.vecdot : (mx.np.vdot [API Standardization]Standardize MXNet NumPy Statistical & Linalg Functions #20592)
- linalg.vector_norm : (mx.np.linalg.norm [API NEW][LINALG] Add vector_norm, matrix_norm #20703)
- linalg.matrix_norm : (mx.np.linalg.norm [API NEW][LINALG] Add vector_norm, matrix_norm #20703)
- linalg.matrix_transpose : (mx.np.transpose [API Standardization] Add Linalg kernels: (diagonal, outer, tensordot, cross, trace, matrix_transpose) #20638)
To be standardized
- linalg.cholesky ([API STD][LINALG] Standardize sort & linalg operators #20694)
- linalg.matrix_rank ([API STD][LINALG] Standardize sort & linalg operators #20694)
- linalg.pinv ([API STD][LINALG] Standardize sort & linalg operators #20694)
- linalg.svd
Part4 (TODOs):
To be implemented:
- array.mT : ([API NEW][METHOD] Add mT, permute_dims #20688)
- permute_dims : ([API NEW][METHOD] Add mT, permute_dims #20688)
- __index__ ([API NEW][ARRAY METHOD] Add __Index__() and __array_namespace__() #20689)
- __array_namespace__ ([API NEW][ARRAY METHOD] Add __Index__() and __array_namespace__() #20689)
- can_cast ([WIP][API] Add data type functions #20690)
- finfo ([WIP][API] Add data type functions #20690)
- iinfo ([WIP][API] Add data type functions #20690)
- result_type ([WIP][API] Add data type functions #20690)
- unique_all ([API NEW][SET FUNC] Add set functions #20693)
- unique_inverse ([API NEW][SET FUNC] Add set functions #20693)
- unique_values ([API NEW][SET FUNC] Add set functions #20693)
To be standardized
szha, anko-intel and honno