Mxnet version 1.0.0 gluon KeyError: 'shape'

Mxnet version 1.0.0 gluon KeyError: 'shape'

我已经从 pip 安装了最新的 mxnet 版本 1.0.0。 当我打印层的重量时,它断言一个 KeyError:"Shape"。我是 mxnet 的新手,我遵循了 mxnet 官方教程。

import mxnet
from mxnet import nd,gluon,autograd

net=gluon.nn.Dense(10,in_units=30)
print (net.weight)

错误是:

Traceback (most recent call last):
  File "/home/user/docs/mxnet/mtcnn/tmp/learn_mxnet.py", line 5, in <module>
    print (net.weight)
  File "/usr/local/lib/python2.7/dist-packages/mxnet/gluon/parameter.py", line 120, in __repr__
    return s.format(**self.__dict__)
KeyError: 'shape'

我觉得可能是1.0.0版本的问题

要检查权重,首先需要按如下方式初始化它们: net.collect_params().initialize(mx.init.Xavier(), ctx=mx.cpu())

在你的例子中,因为你没有在 Net 的构造函数中指定层的输入大小,所以此时无法确定参数的形状。因此,如果您现在访问 net.weight.data(),将引发异常:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/mxnet-0.12.1-py2.7.egg/mxnet/gluon/parameter.py", line 389, in data return self._check_and_get(self._data, ctx) File "/usr/local/lib/python2.7/dist-packages/mxnet-0.12.1-py2.7.egg/mxnet/gluon/parameter.py", line 189, in _check_and_get "nested child Blocks"%(self.name)) RuntimeError: Parameter dense0_weight has not been initialized. Note that you should initialize parameters and create Trainer with Block.collect_params() instead of Block.params because the later does not include Parameters of nested child Blocks

您可以按如下方式初始化权重: net.collect_params().initialize(mxnet.init.Xavier(), ctx=mxnet.cpu()) print (net.weight.data())

您对 MXNet 1.0.0 上的回归是正确的。它已经 fixed,您现在可以安装最新的 MXNet 测试版,直到下一个正式版本。要安装最新的预发布(测试版)版本:pip install -U --pre mxnet.