当训练MXNet网络时,由服务器端GPU训练出模型:
- 在本地Mac端CPU中,无法调用
load_params()
加载模型; - 在服务器端GPU中,可以调用成功;
错误如下:
AssertionError: Parameter conv0_weight is missing in file xxx.params
复制代码
Why?
尝试1
参考 关于使用load_params出现的错误 的解决方案,增加网络序列Sequential的前缀prefix参数:
net = nn.HybridSequential(prefix='net_')
with net.name_scope():
pretrained = vision.get_model('resnet18_v1', pretrained=True).features
net.add(pretrained)
复制代码
但是,仍然报错…
尝试2
检查服务器端和Max端的MXNet版本号:
pip show mxnet
pip show mxnet-cu80
复制代码
版本号果然不同!本地Mac是1.1.0版本,服务器是1.2.0版本。
将两个端的MXNet的版本都统一为1.1.0版本:
pip install mxnet==1.1.0
pip install mxnet-cu80==1.1.0
复制代码
重新在服务器中,训练模型,导出模型到本地Mac中,加载模型成功!
结论:在安装深度学习框架时,一定要指定包的版本,保证本地CPU和服务器GPU的版本一致。