DataWhale 零基础入门语义分割-地表建筑物识别-Task5

本文介绍了DataWhale零基础语义分割课程中的地表建筑物识别Task5,主要内容包括模型训练与验证的三个方法:留出法、交叉验证法和自助采样法,以及模型训练、验证集划分、模型参数设置、模型保存和加载的详细步骤。调参部分推荐了深度学习训练技巧的阅读资源。
摘要由CSDN通过智能技术生成

DataWhale 零基础入门语义分割-地表建筑物识别-Task5


模型训练与验证

本章将从构建验证集、模型训练和验证、模型保存与加载和模型调参几个部分讲解,在部分小节中将会结合Pytorch 代码进行讲解。 一个成熟合格所需要具备的功能是: • 在训练集上进行训练,并在验证集上进行验证; • 模型可以保存最优的权重,并读取权重; • 记录下训练集和验证集的精度,便于调参。

一、验证集构造

在这里插入图片描述
在训练自己的模型的时候需要注意的就是欠拟合和过拟合:
欠拟合:自己的模型在训练集上面的拟合效果就是较差的;
过拟合:自己的模型在训练集上面的效果很好,但是在测试集上面的性能就是直线下降,这个时候就是模型训练过拟合,导致模型的泛化能力较差;

从图中可以看出,随着模型复杂的上升,模型在训练上面的误差是在下降的,但是在某个节点过后,模型在测试集上面的误差上升,也就是模型的复杂度过高导致模型记住了训练集中很多细枝末节不是很重要的规律,那么构建一个训练集防止模型出现这种现象是十分有必要的。

验证集的划分方式:

1、留出法(Hold-out)

在这里插入图片描述
对于数据直接划分成训练集和验证集,这样的划分方式十分简单,同时也有效。缺点就是验证集只有一份,模型在训练的过程中也会出现在验证上面过拟合的情况。
适用场景:数据量较大的情况。

2、交叉验证法(Cross validation)

在这里插入图片描述
图中将整个数据集化分成了K份,取其中的一份数据作为验证集,那么剩下的k-1份数据作为训练集。那么k个子集可以轮流充当验证集,最终模型的验证的精度是k份验证集的结果平均得到的。
适用场景:这样得到的验证精度是可靠的,但是训练次数会随着划分的子集的个数增加而增加,从而导致效率下降时间过长,所以不适用于数据量大的场景。

3、自助采样法(Bootstrap)

在这里插入图片描述
通过有放回的采样方式得到新的训练集和验证集,每次的训练集和验证集都是有区别的。
适用场景:这种划分方式一般适用于数据量较小的情况。

二、模型训练和验证

1.验证集的划分

valid_idx, train_idx = [], []
for i in range(len(dataset)):
    if i % 7 == 0:
        valid_idx.append(i)
    else:
#     elif i % 7 == 1:
        train_idx.append(i)
        
train_ds = D.Subset(dataset, train_idx)
valid_ds = D.Subset(dataset, valid_idx)

# define training and validation data loaders
loader = D.DataLoader(
    train_ds, batch_size=BATCH_SIZE, shuffle=True, num_workers=0)

vloader = D.DataLoader(
    valid_ds, batch_size=BATCH_SIZE, shuffle=False, num_workers=0)

使用的方法是留出法,直接将编号是7的倍数的数据划分到验证集中,由于训练集的数量是十分充足的,这样做的是可行的。

2、模型的获取

def get_model():
    model = torchvision.models
天池赛事的零基础入门语义分割-地表建筑物识别任务是一个面向初学者的语义分割竞赛。任务的目标是利用机器学习和计算机视觉技术,对卫星图像中的地表建筑物进行标记和识别。 在这个任务中,参赛者需要使用给定的训练数据集进行模型的训练和优化。训练数据集包含了一系列卫星图像和相应的像素级标注,标注了地表建筑物的位置。参赛者需要通过分析训练数据集中的图像和标注信息,来构建一个能够准确地识别地表建筑物的模型。 参赛者需要注意的是,语义分割是指将图像中的每个像素进行分类,使得同一类别的像素具有相同的标签。因此,在地表建筑物识别任务中,参赛者需要将地表建筑物区域与其他区域进行区分,并正确地进行标记。这对于初学者来说可能是一个挑战,因此需要掌握基本的图像处理和机器学习知识。 参赛者可以根据自己的理解,选择合适的算法和模型来完成这个任务。常见的方法包括卷积神经网络(CNN),通过设计适当的网络结构和训练方式,提高模型的准确性和泛化能力。同时,数据预处理和数据增强技术也是提高模型性能的关键。参赛者可以通过对数据进行增强和扩充,提高模型的鲁棒性和识别能力。 最后,参赛者需要使用训练好的模型对测试数据集进行预测,并生成预测结果。这些预测结果将用于评估参赛者模型的性能和准确度。评估指标通常包括像素级准确度(Pixel Accuracy)和平均交并比(Mean Intersection over Union),参赛者需要根据这些指标来评估和改进自己的模型。 总之,通过参加这个任务,初学者可以通过实践和挑战来提高自己的图像处理和机器学习技能,并掌握语义分割的基本概念和方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值