mxnet import nd 或 np 以使用数组
mxnet import nd or np to use arrays
我开始研究 mxnet 和 gluon,但我对 np/nd 数组的用法有些困惑。
按照 gluon 网站上的建议,我通过 运行:
安装了 mxnet 和 gluon
pip install --upgrade mxnet gluoncv
安装 mxnet 版本 1.5.1.post0。在这种情况下,要使用我需要的数组:
from mxnet import ndarray as nd
另一方面,我找到了一本基于mxnet的深度学习书籍,他们让你安装更高版本的mxnet:
pip install mxnet==1.6.0b20190915
在这种情况下,您可以导入 ndarray 或直接导入 np,因此:
from mxnet import ndarray as nd
from mxnet import np
两者都有效(而对于 mxnet 1.5.1,from mxnet import np 失败)。
如果我们已经有 nd,为什么可以在新版本中导入 np?从 nd 或 np 创建的数组之间有什么区别吗?
似乎我可以在这两种情况下使用 mxnet 功能(例如 attach_grad())...例如,以下作品:
from mxnet import np
array = np.array([1,2,3)
array.attach_grad()
谢谢!
这里RFC解释引入mx.np
模块的动机。给出 mx.np
和 mx.nd
模块之间的一些突出差异:
mx.np
模块采用了NumPy官方算子API,已经进化了将近二十年,为从NumPy世界到深度学习的用户提供轻松的过渡体验,同时开发mx.nd
模块没有遵循完善的规范来定义运算符签名,这有时会引起混淆,例如 dim
vs axis
.
- 在
mx.np
中注册的运算符与官方 NumPy 运算符具有高度兼容的行为,而 mx.nd
运算符不具有这些方面。例如,zero-dim/scalar、零大小、布尔张量和布尔索引在 mx.np
中受支持,但在 mx.nd
中不受支持。
您可以将 mx.np
视为 mx.nd
在可用性、功能和性能方面的增强版本。 mx.nd
将在未来的版本中逐渐弃用。
我开始研究 mxnet 和 gluon,但我对 np/nd 数组的用法有些困惑。
按照 gluon 网站上的建议,我通过 运行:
安装了 mxnet 和 gluonpip install --upgrade mxnet gluoncv
安装 mxnet 版本 1.5.1.post0。在这种情况下,要使用我需要的数组:
from mxnet import ndarray as nd
另一方面,我找到了一本基于mxnet的深度学习书籍,他们让你安装更高版本的mxnet:
pip install mxnet==1.6.0b20190915
在这种情况下,您可以导入 ndarray 或直接导入 np,因此:
from mxnet import ndarray as nd from mxnet import np
两者都有效(而对于 mxnet 1.5.1,from mxnet import np 失败)。
如果我们已经有 nd,为什么可以在新版本中导入 np?从 nd 或 np 创建的数组之间有什么区别吗?
似乎我可以在这两种情况下使用 mxnet 功能(例如 attach_grad())...例如,以下作品:
from mxnet import np
array = np.array([1,2,3)
array.attach_grad()
谢谢!
这里RFC解释引入mx.np
模块的动机。给出 mx.np
和 mx.nd
模块之间的一些突出差异:
mx.np
模块采用了NumPy官方算子API,已经进化了将近二十年,为从NumPy世界到深度学习的用户提供轻松的过渡体验,同时开发mx.nd
模块没有遵循完善的规范来定义运算符签名,这有时会引起混淆,例如dim
vsaxis
.- 在
mx.np
中注册的运算符与官方 NumPy 运算符具有高度兼容的行为,而mx.nd
运算符不具有这些方面。例如,zero-dim/scalar、零大小、布尔张量和布尔索引在mx.np
中受支持,但在mx.nd
中不受支持。
您可以将 mx.np
视为 mx.nd
在可用性、功能和性能方面的增强版本。 mx.nd
将在未来的版本中逐渐弃用。