PyTorch-知识总结
model.train() and model.eval()
- 定义了模型的训练和测试两种模式, 对部分层有影响, 如Dropout和BatchNormal
- Dropout: 为了增加模型的泛化能力(防止过拟合),训练过程中可以随机屏蔽掉一些神经元,测试时恢复。
- BatchNormal: 训练过程中有BatchSize个数据并行化训练,可以通过BN批量化进行归一化处理, 测试时候只输入单个数据,model.eval()防止BN出错。
- train()模式: 设置训练模型,进行统一配置
- eval()模式: 设置测试模型,进行统一配置
PyTorch模型保存文件类型.pt,.pth,.pkl
文件后缀名不同,保存文件内容一样, 序列化与反序列化作用来保存和加载模型
reference
PyTorch模型保存与加载
- 保存模型参与与加载
torch.save(model.state_dict(), "model_dict.pt")
model=Net()
model.load_state_dict(torch.load(model_dict.pt))
model.eval()
- 保存整个模型与加载
torch.save(model,"model.pt")
model=torch.load("model.pt")