This is an automated email from the ASF dual-hosted git repository.
dickjc123 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/master by this push:
new e972556 [BUGFIX] Fix mxnet.numpy.eye() handling of extreme k
parameter values (#20965)
e972556 is described below
commit e97255629c122b03383f4771479c90d912e73773
Author: Dick Carter <[email protected]>
AuthorDate: Thu Mar 17 16:15:53 2022 -0700
[BUGFIX] Fix mxnet.numpy.eye() handling of extreme k parameter values
(#20965)
* Fix mxnet.numpy.eye() handling of extreme k parameter values
* Fix broken web link
---
.github/workflows/os_x_staticbuild.yml | 4 ++--
ci/docker/runtime_functions.sh | 4 +---
python/mxnet/ndarray/numpy/_op.py | 5 ++++-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/os_x_staticbuild.yml
b/.github/workflows/os_x_staticbuild.yml
index 37b28f3..5502f93 100644
--- a/.github/workflows/os_x_staticbuild.yml
+++ b/.github/workflows/os_x_staticbuild.yml
@@ -49,7 +49,7 @@ jobs:
- name: Test project
env:
- MXNET_ENFORCE_CYTHON: 1
+ MXNET_ENABLE_CYTHON: 1
run: |
python3 -m pytest -n 4 --durations=50 --verbose
tests/python/unittest/ -k 'not test_operator and not (test_subgraph or
test_custom_op or test_external_op or
test_recordimage_dataset_with_data_loader_multiworker or test_multi_worker or
test_multi_worker_shape or test_multi_worker_forked_data_loader or
test_multi_worker_dataloader_release_pool)' -m 'not serial'
MXNET_ENGINE_TYPE=NaiveEngine python3 -m pytest -n 4 --durations=50
--verbose tests/python/unittest/ -k 'test_operator and not (test_subgraph or
test_custom_op or test_external_op or
test_recordimage_dataset_with_data_loader_multiworker or test_multi_worker or
test_multi_worker_shape or test_multi_worker_forked_data_loader or
test_multi_worker_dataloader_release_pool)' -m 'not serial'
@@ -57,7 +57,7 @@ jobs:
- name: Test Array API
env:
- MXNET_ENFORCE_CYTHON: 0
+ MXNET_ENABLE_CYTHON: 1
run: |
cd ..
git clone https://github.com/data-apis/array-api-tests.git
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index d68ce96..1859132 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -878,9 +878,7 @@ unittest_array_api_standardization() {
pushd /work/array-api-tests
git checkout c1dba80a196a03f880d2e0a998a272fb3867b720
export ARRAY_API_TESTS_MODULE=mxnet.numpy pytest
- # OverflowError: Python int too large to convert to C long
- # when cython is enabled
- export MXNET_ENABLE_CYTHON=0
+ export MXNET_ENABLE_CYTHON=1
export DMLC_LOG_STACK_TRACE_DEPTH=100
python3 -m pytest --reruns 3 --durations=50 --cov-report xml:tests_api.xml
--verbose array_api_tests/test_creation_functions.py
python3 -m pytest --reruns 3 --durations=50 --cov-report xml:tests_api.xml
--verbose array_api_tests/test_indexing.py
diff --git a/python/mxnet/ndarray/numpy/_op.py
b/python/mxnet/ndarray/numpy/_op.py
index cb7b451..e9bc358 100644
--- a/python/mxnet/ndarray/numpy/_op.py
+++ b/python/mxnet/ndarray/numpy/_op.py
@@ -1932,7 +1932,10 @@ def eye(N, M=None, k=0, dtype=float, **kwargs):
dtype = _np.float64 if is_np_default_dtype() else _np.float32
if dtype is not None and not isinstance(dtype, str):
dtype = _np.dtype(dtype).name
- k = minimum(k, N) if M is None else minimum(k, M)
+ # To avoid overflow errors, map large positive k values to the
just-out-of-range "num_columns" value
+ k = minimum(k, M if M is not None else N)
+ # Similarly, map large negative k values to the just-out-of-range
"-num_rows" value
+ k = maximum(k, -N)
return _api_internal.eye(N, M, int(k), device, dtype)