This is an automated email from the ASF dual-hosted git repository. apeforest 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 99e69e6 [MXNET-1410]Adding Large Tensor Support for tensor transpose (#15059) 99e69e6 is described below commit 99e69e68258d832f9f866988c1f25e0a579ddd69 Author: Rohit Kumar Srivastava <srivastava....@osu.edu> AuthorDate: Sun Jun 2 15:06:33 2019 -0700 [MXNET-1410]Adding Large Tensor Support for tensor transpose (#15059) --- src/operator/tensor/matrix_op-inl.h | 8 ++++---- tests/nightly/test_large_array.py | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/operator/tensor/matrix_op-inl.h b/src/operator/tensor/matrix_op-inl.h index 50cb1ae..5cd7bf6 100644 --- a/src/operator/tensor/matrix_op-inl.h +++ b/src/operator/tensor/matrix_op-inl.h @@ -1950,10 +1950,10 @@ struct ReverseParam : public dmlc::Parameter<ReverseParam> { #define REVERSE_MAX_DIM 10U struct reverse { - MSHADOW_XINLINE static int ReverseIndex(index_t idx, - index_t nreversedim, - const index_t * stride_, - const index_t * trailing_) { + MSHADOW_XINLINE static index_t ReverseIndex(index_t idx, + index_t nreversedim, + const index_t * stride_, + const index_t * trailing_) { index_t outputIndex = idx; for (index_t i = 0; i < nreversedim; ++i) { const index_t low = outputIndex % trailing_[i]; diff --git a/tests/nightly/test_large_array.py b/tests/nightly/test_large_array.py index 286f2e4..8c80e9e 100644 --- a/tests/nightly/test_large_array.py +++ b/tests/nightly/test_large_array.py @@ -292,6 +292,33 @@ def test_unravel_index(): assert (indices_2d.asnumpy() == np.array(original_2d_indices)).all() +def create_2d_tensor(rows, columns): + a = np.arange(0, rows).reshape(rows, 1) + b = np.broadcast_to(a, shape=(a.shape[0], columns)) + return nd.array(b, dtype=np.int64) + + +def test_transpose(): + b = create_2d_tensor(rows=LARGE_X, columns=SMALL_Y) + t = b.T + assert t.shape == (SMALL_Y, LARGE_X) + assert np.sum(t[:, -1].asnumpy() == (LARGE_X - 1)) == b.shape[1] + + +def test_swapaxes(): + b = create_2d_tensor(rows=LARGE_X, columns=SMALL_Y) + t = nd.swapaxes(b, dim1=0, dim2=1) + assert t.shape == (SMALL_Y, LARGE_X) + assert np.sum(t[:, -1].asnumpy() == (LARGE_X - 1)) == b.shape[1] + + +def test_flip(): + b = create_2d_tensor(rows=LARGE_X, columns=SMALL_Y) + t = nd.flip(b, axis=0) + assert t.shape == (LARGE_X, SMALL_Y) + assert np.sum(t[-1, :].asnumpy() == 0) == b.shape[1] + + if __name__ == '__main__': import nose nose.runmodule()