'BatchNorm2d' object has no attribute 'track_running_stats'
还不知道什么原因:
后来发现是老版本训练的权重,用0.4.0以后版本打开,这个变量没有,不能兼容。
我的解决方法:
load模型后,报存pth,再新建网络,加载模型,理论上能用了。
import pickle
pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
self.net = torch.load(graph_path, map_location=lambda storage, loc: storage, pickle_module=pickle)
try:
torch.save(self.net.state_dict(), '111.pth')
except Exception as e:
print(e)
torch.save(self.net.module.features.state_dict(), '111.pth')
# self.net = torch.load(graph_path, map_location=lambda storage, loc: storage)
self.net.eval()
用pytorch加载训练好的模型的时候遇到了如下的问题:
AttributeError: 'module' object has no attribute '_