當訓練MXNet的Gluon網絡時,由服務器端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的版本一致。