分类网站建设多少钱,深圳微信网站,营业推广是什么,做网站的公司叫什么名字好一、state_dict方式#xff08;推荐#xff09;
torch.save(model.state_dict(), PATH)model YourModel()
model.load_state_dict(torch.load(PATH))
model.eval()记住一定要使用model.eval()来固定dropout和归一化层#xff0c;否则每次推理会生成不同的结果。
二、整个…一、state_dict方式推荐
torch.save(model.state_dict(), PATH)model YourModel()
model.load_state_dict(torch.load(PATH))
model.eval()记住一定要使用model.eval()来固定dropout和归一化层否则每次推理会生成不同的结果。
二、整个模型结构state_dict方式
torch.save(model, PATH)model torch.load(PATH)
model.eval()这种保存/加载模型的过程使用了最直观的语法所用代码量少。这使用Python的pickle保存所有模块。这种方法的缺点是保存模型的时候序列化的数据被绑定到了特定的类和确切的目录。这是因为pickle不保存模型类本身而是保存这个类的路径并且在加载的时候会使用。因此当在其他项目里使用或者重构的时候加载模型的时候会出错。 记住一定要使用model.eval()来固定dropout和归一化层否则每次推理会生成不同的结果。
三、cptk方式
当我们在训练的时候因为一些原因导致训练终止了这个时候如果我们不想再浪费时间从头开始训练就可以使用cptk的方式。这种方式不仅可以保存模型的state_dict还可以保存训练中断时的训练的epochloss优化器的state_dict等信息。
torch.save({epoch: epoch,model_state_dict: model.state_dict(),optimizer_state_dict: optimizer.state_dict(),loss: loss,...}, PATH)model yourModel()
optimizer yourOptimizer()checkpoint torch.load(PATH)
model.load_state_dict(checkpoint[model_state_dict])
optimizer.load_state_dict(checkpoint[optimizer_state_dict])
epoch checkpoint[epoch]
loss checkpoint[loss]model.eval()
# - 或者 -
model.train()示例