SVHN数据集的验证与评估
训练集,测试集,验证集的不同作用
- 训练集:训练网络,调整网络参数,!不能提高模型泛化能力
- 验证集:验证模型精度,调整网络超参数
- 测试集:验证模型的泛化能力
验证集的选择
方法
- 1.留出法:划分训练集一部分作为训练集,一部分作为验证集【一般比例8:2】 &适用于数据量较大&
- 2.K折交叉验证法:划分训练集为K份,循环K次让每份都作为验证集,其他K-1份为训练集 &适用于数据量不大的情况&
- 3.bootstrap法:每次有放回的从训练集样本中抽取n个样本,共抽取sample次,得到的样本数量为sample*n,再用这些样本划分验证集
import torch import torch.nn as nn
# 定义训练函数
def train(train_dataloader,model,loss_func,optimizer):
model.train()
for i,(data,label) in enumerate(train_dataloader):
c1,c2,c3,c4,c5 = model(data)
# 定义损失函数 loss是个标量,且是float类型
loss = loss_func(c1,label[:,0]) + \