您对MXNet 1.0.0上的此回归是正确的。从那时起一直如此 固定 并且您可以安装最新的MXNet测试版,直到下一个正式版。要安装最新的预发布(测试版)版本: pip install -U --pre mxnet 。
pip install -U --pre mxnet
要检查权重,首先需要按如下方式初始化它们: net.collect_params().initialize(mx.init.Xavier(), ctx=mx.cpu())
net.collect_params().initialize(mx.init.Xavier(), ctx=mx.cpu())
在您的情况下,因为您没有在Net的构造函数中指定图层的输入大小,所以此时无法确定参数的形状。所以,如果你访问 net.weight.data() 现在,将引发一个例外:
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())
net.collect_params().initialize(mxnet.init.Xavier(), ctx=mxnet.cpu()) print (net.weight.data())