构造验证集
- 训练集(Train Set):模型用于训练和调整模型参数;
- 验证集(Validation Set):用来验证模型精度和调整模型超参数;
- 测试集(Test Set):验证模型的泛化能力
验证集划分法
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c70901e6f52912d8d0e1446f881bf1f5.png)
- 留出法(hold-out)
适用于数据集较大的情况。优点,直接简单;缺点,只得一份验证集,可能导致模型在验证集上过拟合。 - 交叉验证法(cross validation, CV)
优点,验证集精度可靠,训练k次得到k个有多样性差异的模型;缺点,需要k次训练,不适合数据量很大的情况。 - 自助采样法(bootstrap)
通过有放回的采样方式得到新的训练集和验证集。优点,每次的训练集和验证集都是有区别的;缺点,这种划分方式一般适用于数据量较小的情况。
模型训练与验证
def train(train_loader, model, criterion, optimizer, epoch):
model.train()
for i, (input, target) in enumerate(train_loader):
pass
def validate(val_loader, model, criterion):
model.eval()
val_loss = []
with torch.no_grad():
for i, (input, target) in enumerate(val_loader):
pass
模型保存与加载
torch.save(model_object.state_dict(), ’model.pt’)
model.load_state_dict(torch.load(’ model.pt’))