街景字符编码识别项目学习笔记(五)模型训练与验证

本文详细记录了街景字符编码识别项目的模型训练与验证过程,探讨了模型训练方法,包括留出法、交叉验证法和自助采样法,并提供了Pytorch实现的模型训练与验证代码示例,以及模型的保存和加载方法。同时,文章还强调了模型调参的重要性。
摘要由CSDN通过智能技术生成

内容简介

学习笔记(四)中,初步介绍了以AlexNet为实例用pytorch实现卷积神经网络的方式,并对赛题所应用的baseline定长字符识别模型进行了建立。本节中,我们主要关注模型建立之后的训练以及验证过程。

模型训练与验证

神经网络的训练过程实际上就是网络对输入数据进行特征提取的过程。通过模型预测输出和给定输出之间误差的损失函数的梯度反作用于网络,以更新网络当中的参数值,从而提高模型对给定任务的解决能力。

可以想象,在实际训练过程当中,模型会倾向于增强对输入数据的特征提取能力,因为同样的数据往往会输入到网络很多次以达到训练的效果,这样的数据也被称之为训练数据、训练集。不过我们理想当中的网络模型,不仅仅能够对这样反复输入的数据有足够强的表示能力,还需要对其他同类型的数据有着同样的表示能力,更准确地说,是对理想中同分布的数据有着同等能力地表示。

因此,我们需要从原始的数据集当中划分出来一批,来进行对网络泛化能力的测试,称之为测试集。训练集上的误差被称之为训练误差,测试集上的误差被称之为测试误差(泛化误差)。实际网络训练的训练误差与测试误差(泛化误差)之间的关系大概如下图所示:
测试误差和泛化误差之间的关系
随着模型复杂度的上升,我们可以得到一个对训练集数据表征更强的模型,但是这样的模型的测试误差会逐渐增加,这违背了我们的初衷,这样的问题也被称之为过拟合

在工程实践当中,我们需要利用各种各样的技巧来减少过拟合的现象。以下介绍在不改变模型的基础上如何尽可能得减小模型的过拟合程度。

模型训练方法技巧总结

留出法(Hold-Out)
直接将训练集划分成两部分,新的训练集和验证集。这种划分方式的优点是最为直接简单;缺点是只得到了一份验证集,有可能导致模型在验证集上过拟合。留出法应用场景是数据量比较大的情况。

交叉验证法(Cross Validation,CV)
将训练集划分成K份,将其中的K-1份作为训练集,剩余的1份作为验证集,循环K训练。这种划分方式是所有的训练集都是验证集,最终模型验证精度是K份平均得到。这种方式的优点是验证集精度比较可靠,训练K次可以得到K个有多样性差异的模型;CV验证的缺点是需要训练K次,不适合数据量很大的情况。

自助采样法(BootStrap)
通过有放回的采样方式得到新的训练集和验证集,每次的训练集和验证集都是有区别的。这种划分方式一般适用于数据量较小的情况。

这三种方法的总结如下图所示:
数据集分割

模型训练与验证 by pytorch

学习笔记(二)中有traning by pytorch style的部分,以及一套关于神经网络的全流程描述,在此援引神经网络训练部分以供读者理解模型训练过程的大致逻辑。
定义神经网络基本架构,其中包含两层全连接层 输入为32*32的三通道图像

模型构建与训练逻辑流程

import torch
import torch.nn
import torch.nn.functional as F #取pytorch当中已经定义好的函数

#定义神经网络的基本架构
class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.fc1 = nn.Linear(32*32*3,500)
        self.fc2 = nn.Linear(500,10)
        
    def forward(self,x):
        x = F.relu(self.fc1(x))
        return self.fc2(x)

net = Net() #实例化神经网络
criterion = nn.CrossEntropyLoss() 
天池是一个著名的数据科学竞赛平台,而datawhale是一家致力于数据科学教育和社群建设的组织。街景字符编码识别是指通过计算机视觉技术,对街道场景中的字符进行自动识别和分类。 街景字符编码识别是一项重要的研究领域,对于提高交通安全、城市管理和智能驾驶技术都具有重要意义。街道场景中的字符包括道路标志、车牌号码、店铺招牌等。通过对这些字符进行准确的识别,可以辅助交通管理人员进行交通监管、道路规划和交通流量分析。同时,在智能驾驶领域,街景字符编码识别也是一项关键技术,可以帮助自动驾驶系统准确地识别和理解道路上的各种标志和标识,为自动驾驶提供可靠的环境感知能力。 天池和datawhale联合举办街景字符编码识别竞赛,旨在吸引全球数据科学和计算机视觉领域的优秀人才,集思广益,共同推动该领域的研究和发展。通过这个竞赛,参赛选手可以使用各种机器学习深度学习算法,基于提供的街景字符数据集,设计和训练模型,实现准确的字符编码识别。这个竞赛不仅有助于促进算法研发和技术创新,也为各参赛选手提供了一个学习、交流和展示自己技能的平台。 总之,天池datawhale街景字符编码识别是一个具有挑战性和实际应用需求的竞赛项目,旨在推动计算机视觉和智能交通领域的技术发展,同时也为数据科学爱好者提供了一个学习和展示自己能力的机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值