leezu opened a new issue #16828: Missing imports in python/mxnet/contrib/__init__.py URL: https://github.com/apache/incubator-mxnet/issues/16828 ## Description `python/mxnet/contrib/__init__.py` does not `import amp`. Thus users can't access `mxnet.contrib.amp` without running an additional `import mxnet.contrib.amp`. ## To Reproduce `import mxnet; print(mxnet.contrib.amp)`. ## What have you tried to solve it? Add the missing imports to `__init__.py`. (Like https://github.com/apache/incubator-mxnet/pull/16826/files). Observe the first error when trying to import MXNet. Try to fix it by changing the order of imports in `python/__init__.py`. Observe the second error message. Naive fix of adding the imports does not work due to dependency between amp and ndarray. ``` --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-2-265f02e9c062> in <module> ----> 1 import mxnet as mx ~/src/mxnet-master/python/mxnet/__init__.py in <module> 29 from . import base 30 from . import library ---> 31 from . import contrib 32 from . import ndarray 33 from . import ndarray as nd ~/src/mxnet-master/python/mxnet/contrib/__init__.py in <module> 28 from . import tensorboard 29 ---> 30 from . import amp 31 from . import text 32 from . import onnx ~/src/mxnet-master/python/mxnet/contrib/amp/__init__.py in <module> 20 """Automatic mixed precision module.""" 21 ---> 22 from .amp import * ~/src/mxnet-master/python/mxnet/contrib/amp/amp.py in <module> 38 from ...ndarray import NDArray, _DTYPE_NP_TO_MX, _DTYPE_MX_TO_NP 39 from . import lists ---> 40 from ...gluon import trainer 41 from ... import base 42 from ...base import c_str_array, SymbolHandle, check_call, _LIB, mx_uint, c_array_buf ~/src/mxnet-master/python/mxnet/gluon/__init__.py in <module> 24 from .block import * 25 ---> 26 from . import nn 27 28 from . import rnn ~/src/mxnet-master/python/mxnet/gluon/nn/__init__.py in <module> 22 from ..block import * 23 ---> 24 from .basic_layers import * 25 26 from .conv_layers import * ~/src/mxnet-master/python/mxnet/gluon/nn/basic_layers.py in <module> 28 from ..block import Block, HybridBlock 29 from ..utils import _indent ---> 30 from ... import nd, sym 31 from ...util import is_np_array 32 ImportError: cannot import name 'nd' from 'mxnet' (/home/ANT.AMAZON.COM/lausen/src/mxnet-master/python/mxnet/__init__.py) ``` Resolving the conflict by importing ndarray prior to contrib is not possible due to some hacks in ndarray: ``` KeyError Traceback (most recent call last) <ipython-input-1-265f02e9c062> in <module> ----> 1 import mxnet as mx ~/src/mxnet-master/python/mxnet/__init__.py in <module> 29 from . import base 30 from . import library ---> 31 from . import ndarray 32 from . import ndarray as nd 33 from . import numpy ~/src/mxnet-master/python/mxnet/ndarray/__init__.py in <module> 18 """NDArray API of MXNet.""" 19 ---> 20 from . import _internal, contrib, linalg, op, random, sparse, utils, image, ndarray, numpy 21 # pylint: disable=wildcard-import, redefined-builtin 22 try: ~/src/mxnet-master/python/mxnet/ndarray/numpy/__init__.py in <module> 21 from . import linalg 22 from . import _op, _internal ---> 23 from . import _register 24 from ._op import * # pylint: disable=wildcard-import 25 ~/src/mxnet-master/python/mxnet/ndarray/numpy/_register.py in <module> 19 20 from ...base import _init_np_op_module ---> 21 from ..register import _make_ndarray_function 22 23 ~/src/mxnet-master/python/mxnet/ndarray/register.py in <module> 268 return ndarray_function 269 --> 270 _init_op_module('mxnet', 'ndarray', _make_ndarray_function) 271 272 # Update operator documentation with added float support ~/src/mxnet-master/python/mxnet/base.py in _init_op_module(root_namespace, module_name, make_op_func) 611 # use mx.nd.contrib or mx.sym.contrib from now on 612 contrib_module_name_old = "%s.contrib.%s" % (root_namespace, module_name) --> 613 contrib_module_old = sys.modules[contrib_module_name_old] 614 submodule_dict = {} 615 for op_name_prefix in _OP_NAME_PREFIX_LIST: KeyError: 'mxnet.contrib.ndarray' ```
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services