街景字符编码识别项目学习笔记(四)

计算机视觉(一)-----街景字符识别简介及代码实例 目录1.简介1.1 思路1.2 运行环境及安装示例2.代码实例2.1. 导入常用的包:2.2. 定义好读取图像的Dataset2.3. 定义好训练数据和验证数据的Dataset2.4. 定义好字符分类模型,使用renset18的模型作为特征提取模块2.5. 定义好训练、验证和预测模块2.6. 迭代训练和验证模型2.7. 对测试集样本进行预测,生成提交文件2.8. 加载保存的最优模型 1.简介 数据集来源为Google街景图像中的门牌号数据集(The Street View House Numbers Dat 阅读详情

学习目标:理解验证集的作用,学会怎样构建验证集、学会使用训练集和验证集完成模型训练和验证,学会PyTorch下的模型保存与加载以及模型调参

1 构造验证集

在机器学习模型(特别是深度学习模型)的训练过程中,模型是非常容易过拟合的。深度学习模型在不断的训练过程中训练误差会逐渐降低,但测试误差的走势则不一定。

在模型的训练过程中,模型只能利用训练数据来进行训练,模型并不能接触到测试集上的样本。因此模型如果将训练集学的过好,模型就会记住训练样本的细节,导致模型在测试集的泛化效果较差,这种现象称为过拟合(Overfitting)。与过拟合相对应的是欠拟合(Underfitting),即模型在训练集上的拟合效果较差。

在这里插入图片描述

如图所示:随着模型复杂度和模型训练轮数的增加,CNN模型在训练集上的误差会降低,但在测试集上的误差会逐渐降低,然后逐渐升高,而我们为了追求的是模型在测试集上的精度越高越好。这种情况就属于过拟合。导致模型过拟合的情况有很多种原因,其中最为常见的情况是模型复杂度(Model Complexity )太高,导致模型学习到了训练数据的方方面面,学习到了一些细枝末节的规律。解决上述问题最好的解决方法:构建一个与测试集尽可能分布一致的样本集(可称为验证集),在训练过程中不断验证模型在验证集上的精度,并以此控制模型的训练。

在给定赛题后,赛题方会给定训练集和测试集两部分数据。参赛者需要在训练集上面构建模型,并在测试集上面验证模型的泛化能力。因此参赛者可以通过提交模型对测试集的预测结果,来验证自己模型的泛化能力。同时参赛方也会限制一些提交的次数限制,以此避免参赛选手“刷分”。

在一般情况下,参赛选手也可以自己在本地划分出一个验证集出来,进行本地验证。训练集、验证集和测试集分别有不同的作用:

  • 训练集(Train Set):模型用于训练和调整模型参数;

  • 验证集(Validation Set):用来验证模型精度和调整模型超参数;

  • 测试集(Test Set):验证模型的泛化能力。

因为训练集和验证集是分开的,所以模型在验证集上面的精度在一定程度上可以反映模型的泛化能力。在划分验证集的时候,需要注意验证集的分布应该与测试集尽量保持一致,不然模型在验证集上的精度就失去了指导意义。

构造验证集的方法

既然验证集这么重要,那么如何划分本地验证集呢。在一些比赛中,赛题方会给定验证集;如果赛题方没有给定验证集,那么参赛选手就需要从训练集中拆分一部分得到验证集。验证集的划分有如下几种方式:

(1) 留出法(Hold-Out)

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

(2) 交叉验证法(Cross Validation,CV)

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

(3) 自助采样法(BootStrap)

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

在本次赛题中已经划分为验证集,因此选手可以直接使用训练集进行训练,并使用验证集进行验证精度(当然你也可以合并训练集和验证集,自行划分验证集)。

当然这些划分方法是从数据划分方式的角度来讲的,在现有的数据比赛中一般采用的划分方法是留出法和交叉验证法。如果数据量比较大,留出法还是比较合适的。当然任何的验证集的划分得到的验证集都是要保证训练集-验证集-测试集的分布是一致的,所以如果不管划分何种的划分方式都是需要注意的。

这里的分布一般指的是与标签相关的统计分布,比如在分类任务中“分布”指的是标签的类别分布,训练集-验证集-测试集的类别分布情况应该大体一致;如果标签是带有时序信息,则验证集和测试集的时间间隔应该保持一致。

2 模型训练与验证

在本节我们目标使用Pytorch来完成CNN的训练和验证过程,CNN网络结构与之前的章节中保持一致。我们需要完成的逻辑结构如下:

  • 构造训练集和验证集;
  • 每轮进行训练和验证,并根据最优验证集精度保存模型。
train_loader = torch.utils.data.DataLoader(
    train_dataset,
    batch_size=10, 
    shuffle=True, 
    num_workers=10, 
)
    
val_loader = torch.utils.data.DataLoader(
    val_dataset,
    batch_size=10, 
    shuffle=False, 
    num_workers=10, 
)

model = SVHN_Model1()
criterion = nn.CrossEntropyLoss (size_average=False)
optimizer = torch.optim.Adam(model.parameters(), 0.001)
best_loss = 1000.0
for epoch in range(20):
    print('Epoch: ', epoch)

    train(train_loader, model, criterion, optimizer, epoch)
    val_loss = validate(val_loader, model, criterion)
    
    # 记录下验证集精度
    if val_loss < best_loss:
        best_loss = val_loss
        torch.save(model.state_dict(), './model.pt')

其中每个Epoch的训练代码如下:

    # 切换模型为训练模式
    model.train()

    for i, (input, target) in enumerate(train_loader):
        c0, c1, c2, c3, c4, c5 = model(data[0])
        loss = criterion(c0, data[1][:, 0]) + \
                criterion(c1, data[1][:, 1]) + \
                criterion(c2, data[1][:, 2]) + \
                criterion(c3, data[1][:, 3]) + \
                criterion(c4, data[1][:, 4]) + \
                criterion(c5, data[1][:, 5])
        loss /= 6
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

其中每个Epoch的验证代码如下:

def validate(val_loader, model, criterion):
    # 切换模型为预测模型
    model.eval()
    val_loss = []

    # 不记录模型梯度信息
    with torch.no_grad():
        for i, (input, target) in enumerate(val_loader):
            c0, c1, c2, c3, c4, c5 = model(data[0])
            loss = criterion(c0, data[1][:, 0]) + \
                    criterion(c1, data[1][:, 1]) + \
                    criterion(c2, data[1][:, 2]) + \
                    criterion(c3, data[1][:, 3]) + \
                    criterion(c4, data[1][:, 4]) + \
                    criterion(c5, data[1][:, 5])
            loss /= 6
            val_loss.append(loss.item())
    return np.mean(val_loss)

3 模型保存与加载

在Pytorch中模型的保存和加载非常简单,比较常见的做法是保存和加载模型参数:

//模型保存
torch.save(model_object.state_dict(), 'model.pt')

//模型加载
model.load_state_dict(torch.load(' model.pt'))

4 模型调参流程

深度学习原理少但实践性非常强,基本上很多的模型的验证只能通过训练来完成。同时深度学习有众多的网络结构和超参数,因此需要反复尝试。训练深度学习模型需要GPU的硬件支持,也需要较多的训练时间,如何有效的训练深度学习模型逐渐成为了一门学问。

深度学习有众多的训练技巧,比较推荐的阅读链接有:

下面翻译了上面第二个网站中的一部分技巧来分享给大家:

摒弃一些对神经网络错误的理解

(1) 神经网络训练并不是一个十全十美的抽象

据称,训练神经网络很容易上手。许多库和框架都以显示30行奇迹片段来解决您的数据问题为荣,给人以假的印象,即这些东西是即插即用的。

>>> your_data = # plug your awesome dataset here
>>> model = SuperCrossValidator(SuperDuper.fit, your_data, ResNet50, SGDOptimizer)
# conquer world here

比如说,以上代码给人一种假象,即只通过一行代码就可以完成对神经网络的训练。但事实上神经网络的训练是一件很复杂的事情。如果您坚持使用该技术而不了解其工作原理,则很可能会失败。

(2) 神经网络的训练不知道怎么的就失败了

当你破坏或错误配置代码时,您通常会遇到某种异常。你插入了一个整数,该整数应为字符串。该函数仅需要3个参数。导入失败。该密钥不存在。两个列表中的元素数量不相等。此外,通常可以为某些功能创建单元测试。

这只是训练神经网络的开始。可能在语法上,所有内容都是正确的,但还是会训练失败,而且也很难看出来到底哪里错了。例如,也许您在数据增强过程中左右翻转图像时忘记了翻转标签。您的网络仍然可以工作良好,因为您的网络可以在内部学习检测翻转的图像,然后左右翻转预测。也许由于一个错误,您的自回归模型意外地将它试图预测的东西作为输入。或者,您尝试修剪渐变,但修剪了损失,导致在训练过程中忽略了异常示例。或者,您从预先训练的检查点初始化了权重,但未使用原始均值。或者,您只是搞砸了正则化强度,学习率,其衰减率,模型大小等设置。在大多数情况下,它会训练,但默默地工作会更糟。

结果,训练神经网络的快速而暴力的方法行不通,这往往会令人感到难受。事实上,使得神经网络正常工作本身就是一件比较困难的事情,我们可以通过缜密的思考,提高警惕,坚持到底和利用可视化来帮助我们训练神经网络。

训练神经网络的流程

(1) 好好检查数据

训练神经网络的第一步是完全不接触任何神经网络代码,而是从彻底检查数据开始。此步骤至关重要。花时间去检查数据是一件比较重要的工作。因为数据中往往可能存在异常值,而且了解它们的分布可以有利于我们找到一个更好的模型。

(2) 设置端到端的培训/评估框架并得到一个并不完美的baseline

此阶段的提示和技巧:

  • 固定随机种子:始终使用固定的随机种子来确保两次运行代码时您将获得相同的结果。
  • 简化:在此阶段,请务必关闭任何数据扩充功能。数据扩充是我们稍后可能会采用的一种正则化策略,但是目前这只是引入一种错误的尝试。
  • 验证损失:验证您的损失是否从正确的损失值开始。
  • 设定一个好的初始化
  • 人类基线:监控除损失之外的指标,这些指标是人类可以解释和检查的(例如准确性)。尽可能评估自己(人类)的准确性并与之进行比较。
  • 可视化预测动态。我喜欢在培训过程中可视化固定测试批次上的模型预测。这些预测如何运动的“动力”将使您对培训的进行方式有非常好的直觉。如果网络以某种方式过度摆动,可能会感觉网络“努力”以适应您的数据,这表明不稳定。抖动量也很容易注意到非常低或非常高的学习率。
(3) 过度拟合

我想采用的找到一个好的模型的方法有两个阶段:首先获得一个足够大的模型以使其可以过度拟合(即专注于训练损失),然后适当地对其进行正则化(放弃一些训练损失以提高验证损失)。

此阶段的一些提示和技巧:

  • 选择模型:为了减少训练损失,您需要为数据选择合适的体系结构。

  • Adam是安全的。在设定基准的早期阶段,我喜欢以3e-4的学习率使用Adam 。以我的经验,亚当更宽容超参数,包括不良的学习速度。对于ConvNets,调整良好的SGD几乎总是比Adam稍胜一筹,但是最佳学习率区域要狭窄得多且针对特定问题。

  • 一次只使一个复杂化。如果您有多个信号要插入您的分类器,我建议您将它们一个接一个地插入,并每次确保获得预期的性能提升。

  • 不要相信学习率衰减的默认值。如果您要重新使用其他领域的代码,请务必小心学习率。

(4) 正则化

此阶段的一些提示和技巧:

  • 获取更多数据
  • 数据扩充
  • 创意增强:如果半假数据没有做到这一点,伪造数据也可能会有所作为。人们正在寻找扩展数据集的创新方法。例如,领域随机化,模拟的使用,巧妙的混合,例如将(潜在模拟的)数据插入场景,甚至GAN。
  • 使用预训练网络
  • 坚持监督学习
  • 减小输入维数
  • 减小模型尺寸
  • 减小批量大小
  • Dropout
  • 提早停止训练。根据您测得的验证损失提前停止训练,以在模型快要过拟合的时候捕获模型。
  • 尝试更大的模型。我最后提到这一点,只是在提早停止后才提到,但是过去我发现,大型模型当然最终会过拟合得多,但是它们的“早期停止”性能通常会比小型模型好得多。
(5) 微调

此阶段的一些提示和技巧:

  • 随机网格搜索
  • 超参数优化
(6) 进一步提高精确率
  • 模型集成

5 总结

本章以深度学习模型的训练和验证为基础,讲解了验证集划分方法、模型训练与验证、模型保存和加载以及模型调参流程。

需要注意的是模型复杂度是相对的,并不一定模型越复杂越好。在有限设备和有限时间下,需要选择能够快速迭代训练的模型。

街景字符编码识别项目学习笔记(四)CNN介绍及字符识别模型的pytorch实现 内容简介 本文主要介绍在项目应用中使用的卷积神经网络,及其在pytorch中的如何实现。 CNN介绍及其发展历程 CNN介绍 卷积神经网络(Convolutional Neural Network)是一类特殊的神经网络。同全连接神经网络等不同的是,卷积神经网络直接对二维数据乃至三维等高维数据进行处理,并且具有更高的计算精度和速度。尤其是在计算机视觉领域,CNN的应用非常广泛,使其成为了解决图像分类、图像检索、目标检测、语义分割的主流模型。 CNN当中应用的卷积操作和传统的图像处理及信号处理当中使用的卷积操作 阅读详情

相关推荐

用YOLOV4实现街景字符编码识别

这次

m0_46478164的博客 4032

Person re-identification行人重识别(二)——实战

基于行人局部特征融合的再识别实战

Alkaid2000的博客 2169

街景字符识别1-街景字符编码SVHN

The Street View House Numbers (SVHN) Dataset是街景字符的数据集。街景字符转录是字符序列识别问题。针对图片序列识别问题传统思路是定位、分割、识别,而Google2014年的论文《Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks》提出了基于深度卷积神经网络的方法。 问题描述: 图片中的字符串序列长度不定但不超过5个字符,可以将

charie411的博客 2918

阿里天池比赛——街景字符编码识别

文章目录前言一、街景字符编码识别1. 目标2. 数据集3. 指标总结 前言 之前参加阿里天池比赛,好久了,一直没有时间整理,现在临近毕业,趁论文外审期间,赶紧把东西整理了,5月底学校就要让我们滚蛋了,哭哭哭!!!大运会的牺牲品!!! 一、街景字符编码识别 先说一下比赛的基本情况吧,没有认真比赛,所以,你懂的,下面提供一下比赛连接和我的代码连接,感兴趣的小伙伴可以下载玩一玩哈。 比赛连接:https://tianchi.aliyun.com/competition/entrance/531795/intr

CharmsLUO的博客 3030

街景字符编码识别项目学习笔记(一)赛题理解

datawhalecv项目系列学习博客(一)赛题理解

weixin_42716570的博客 626

天池CV赛事-街景字符编码识别(四)—— 模型训练与验证

系列文章 天池CV赛事-街景字符编码识别(一) —— 赛题理解 天池CV赛事-街景字符编码识别(二) —— 数据读取与数据扩增 天池CV赛事-街景字符编码识别(三)—— 字符识别模型 天池CV赛事-街景字符编码识别(四)—— 模型训练与验证 目录四、模型训练与验证4.1 模型训练4.2 模型加载和保存4.3 模型调参流程 四、模型训练与验证 4.1 模型训练 构造训练集和验证集,每轮进行训练和验证,并根据最优验证集精度保存模型 train_loader = torch.utils.data.DataLo.

清崎教练 356

回顾经典天池CV赛题——街景字符识别

下面将分享一个天池竞赛的经典题目——**街景字符识别**,流畅地过一遍基于pytorch的深度学习项目实战全过程。

全栈O-Jay的博客 2523

街景字符编码识别项目学习笔记(三)torchvision中的数据增强方法

内容简介 本文介绍torchvision当中有关数据增强方法的使用以及其在街景字符编码识别项目起到的效果。 基本方法总结如下表 方法 效果 transforms.Resize((m,n)) 将原始图像进行resize transforms.RandomCrop((m,n)) 将原始图像进行随机剪裁 transforms.CenterCrop((m.n)) 取图像中心处进行一定大小的剪裁 transforms.ColorJitter(a,b,c,d) 调整原始图像有关颜色对比度等参

weixin_42716570的博客 653

阿里云天池-街景字符编码识别-基于ResNet-18

赛题来源自Google街景图像中的门牌号数据集(The Street View House Numbers Dataset, SVHN),并根据一定方式采样得到比赛数据集。训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置;为了保证比赛的公平性,测试集A包括4W张照片,测试集B包括4W张照片。所有的数据(训练集、验证集和测试集)的标注使用JSON格式,并使用文件名进行索引。如果一个文件中包括多个字符,则使用列表将字段进行组合。

m0_64799972的博客 1万+

零基础入门CV赛事—街景字符编码识别—task1赛题理解

Datawhale 零基础入门CV赛事—街景字符编码识别—赛题理解街景字符编码识别数据集数据来源数据标签评测标准标签数据读取解题思路简单入门思路:定长字符识别专业字符识别思路:不定长字符识别专业分类思路:检测再识别小节 街景字符编码识别 零基础入门CV赛事- 街景字符编码识别是Datawhale联合天池举办的CV入门学习赛,赛题以计算机视觉中字符识别为背景,要求选手预测真实场景下的字符识别,这是一个典型的字符识别问题。通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模

Libaididi的博客 895

天池学习赛——街景数字识别

天池学习赛——街景数字识别 数据集应该输入里面,输入里面csv文件有下载train,val,test的链接

天池学习赛——街景字符编码识别(得分上0.93)

目录1 比赛介绍2 解题思路3 数据集制作4 模型训练5 更改detect.py文件5 结果检测5 上传文件 1 比赛介绍 项目链接:零基础入门CV - 街景字符编码识别 一、赛题数据 赛题来源自Google街景图像中的门牌号数据集(The Street View House Numbers Dataset, SVHN),并根据一定方式采样得到比赛数据集。 数据集报名后可见并可下载,该数据来自真实场景的门牌号。训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置

小屋 9261

23.501中英对照(46):5QI到Qos特征的映射

注4:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为1毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注5:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为2毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注6:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为5毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注:建议为任何新的非GBR资源类型的标准化5QI分配小于64的值。

51学通信的博客 1294

街景字符编码识别项目学习笔记(一)

学习目标:理解赛题背景和赛题数据,完成赛题报名和数据下载,理解赛题的解题思路 首先贴出Datawhale开源项目链接和天池赛事报名链接: Datawhale开源项目:[https://github.com/datawhalechina/team-learning/tree/master/03%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89%E5%AE%9E%E8%B.

奉现的博客 1756

模拟CMOS集成电路设计入门学习(1)

模拟CMOS集成电路设计入门学习(1):二级效应

qq_61052827的博客 3084

高通开发系列 - Camera之摄像头调试记录

记录一些调试内容

fulinux的博客 1216

基于PaddleOCR2.4的天池街景字符编码识别Baseline

基于PaddleOCR2.4,使用CRNN算法,骨干MobileNetV3,加载预训练模型,对现实街景字符编码进行识别

m0_63642362的博客 910

基于卷积神经网络CNN实现电力负荷多变量时序预测(PyTorch版)

随着智能电网的发展,精准的电力负荷预测对能源调度和电网稳定具有重要意义。本文基于PyTorch框架,提出一种基于卷积神经网络(CNN)的多变量时间序列预测模型,用于电力负荷的短期预测。

时序笔记 988

天池学习赛:零基础入门CV - 街景字符编码识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、安装YOLOv51.拉取yolov5的代码2.下载模型3.配置环境4.测试二、动手实践街景字符编码识别1.查看数据2.读入数据总结 前言 阿里天池学习赛:街景字符编码识别 跟着官方的baseline走了一遍,准确率大概在0.48左右 现在想法是使用yolov5来提高精度.之前没咋接触过完整的完成一个项目,所以想记录下 一、安装YOLOv5 1.拉取yolov5的代码 git clone https://github.c.

weixin_42920869的博客 3105

第28节:cesium 加载高程数据(含源码+视频)

cesium 加载高程(地形)数据

qq_29384639的博客 1740

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

2251

零基础入门CV赛事- 街景字符编码识别-DataWhale

街景字符编码识别任务与目标安装PYTorch 任务与目标 赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。 为了简化赛题难度,赛题数据采用公开数据集SVHN,因此大家可以选择很多相应的paper作为思路参考。 理解赛题背景和赛题数据 安装PYTorch 我的电脑没有GPU所以安装CPU版本。在官网中配置自己需要的软件版本和机器型号。 在anaconda中新建环境选择‘Python3.7’版本,打开新建环境终端,键入第一步PYTorch官网生成的命令"c

qq_33346150的博客 1243

基于Python的异步爬虫实战:高效抓取同花顺概念板块数据

本文将详细介绍如何使用Python最新异步爬虫技术(requests-html+aiohttp+selenium)高效抓取同花顺概念板块数据。内容涵盖:反爬机制破解、动态页面渲染处理、数据解析存储等完整流程,并提供可复用的高性能爬虫代码实现。高性能:异步并发处理,QPS可达50+高可用:完善的异常处理机制可扩展:支持分布式部署增加历史数据回溯功能集成机器学习识别验证码构建实时数据推送系统。

2201_76125261的博客 1534

天池&Datawhale- 街景字符编码识别

天池&Datawhale- 街景字符编码识别 Task1 赛题理解 赛题背景 需要选手预测真实场景下的字符识别,这是一个典型的字符识别问题**(分类问题)** 数据集说明 数据集来源自Google街景图像中的门牌号数据集(The Street View House Numbers Dataset, SVHN),并根据一定方式采样得到比赛数据集。 训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括彩色图像、对应的编码类别和具体位置。 数据包组成 训练集图片文件夹(3W张,png格式),验

weixin_43905138的博客 422

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 390

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

天池零基础入门CV赛事- 街景字符编码识别

目录天池:零基础入门CV赛事- 街景字符编码识别赛题理解赛题数据字段表评测标准解题思路 天池:零基础入门CV赛事- 街景字符编码识别 赛题理解 赛题名称:零基础入门CV之街道字符识别 赛题目标:通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模能力。 赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。 赛题数据 赛题来源自Google街景图像中的门牌号数据集(The Street View House Numbers

christianzhang93的博客 656

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 街景字符编码识别项目学习笔记(三)
下一篇: 《深度学习框架:PyTorch入门与实践》学习笔记(一)
威士忌燕麦拿铁
博客等级 码龄10年 5442粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值