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
.
我已经从 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
.