MXNet 网络的 load_params 错误

711 阅读1分钟

当训练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的版本一致。