torch.load 加载预训练模型时出现报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 6: ordinal not in range(128)
经过查找发现,model是在python2.7上进行训练,现在在python3.6上进行infer,因为版本的原因出错.
解决办法:
在加载模型前加入
from functools import partial
import pickle
pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
model = torch.load(path, map_location=lambda storage, loc: storage, pickle_module=pickle)