深度学习实战1-CNN模型

本文提供了一个详细的深度学习实战教程,基于Fashion-MNIST数据集使用CNN进行图像分类。内容包括数据集介绍、数据获取与加载、图像可视化、网络模型构建、训练与验证函数的实现,以及模型测试。
摘要由CSDN通过智能技术生成

深度学习实战1



前言

题主发现目前网络上关于深度学习入门的一些实战项目给的十分散乱,基本是是从github上直接copy过来,代码部分也没有详细的说明,特别不适合新手学习,因此想详细的列举几个常用的入门深度学习入门实战,方便大家对深度学习的理解和掌握。第一个实战是依据FashionMNIST数据集,利用经典的CNN进行分类。这是题主发布的第一个视频,过程可能包含一些问题,希望友友们多多提出宝贵意见。


一、Fashion-MNIST数据集

Fashion-MNIST是Zalando的研究论文中提出的一个数据集,由包含60000个实例的训练集和包含10000个实例的测试集组成。每个实例包含一张28x28的灰度服饰图像和对应的类别标记(共有10类服饰,分别是:t-shirt(T恤),trouser(牛仔裤),pullover(套衫),dress(裙子),coat(外套),sandal(凉鞋),shirt(衬衫),sneaker(运动鞋),bag(包),ankle boot(短靴))。

二、获取数据集

torchvision.datasets库中有封装好的数据集FashionMNIST,可直接import获取内置数据集

代码如下(示例):

import torchvision
from torchvision import transforms
# 将内置数据集的图片大小转为1*28*28后转化为tensor
# 这里Compose是将图像预处理的多个步骤整合在一起
train_transform = transforms.Compose([
    transforms.Resize(28),
    transforms.ToTensor()
])
# 读取FashionMNIST图片库,参数root是下载到本地的文件目录,train是数据是否为训练集,download默认True为下载,transform对图像预处理
train_data = torchvision.datasets.FashionMNIST(
                                 root='/data/FashionMNIST',                       
                                 train=True, 
                                 download=True, 
                                 transform=train_transform)
test_data=torchvision.datasets.FashionMNIST(
                                 root='/data/FashionMNIST', 
                                 train=False,
                                 download=True,
                                 transform=train_transform)

三、加载(迭代)数据集

在这里,使用了Dataload包对之前的数据集进行迭代,num_works是针对批量获取速度的,在小数据集中一般不需要考虑。训练集在迭代时需要打乱,测试集不需要打乱,batch_size是对数据做批量处理。

代码如下(示例):

from torch.utils.data import DataLoader
 
batch_size = 256  # 批量大小,指迭代一批的大小
num_workers = 0  # windows设置为0
train_iter = DataLoader(train_data, batch_size=batch_size, shuffle=True, num_workers=num_workers)
test_iter = DataLoader(test_data, batch_size=batch_size, shuffle=False, num_workers=num_workers)

四、图像可视化

代码如下(示例):

import matplotlib as plt
# 这里figsize指整张图片的尺寸大小

def show_images(imgs, num_rows, num_cols, targets, scale=1.5):
    figsize = (num_cols * scale, num_rows * scale)
    _, axes = plt.subplots(num_rows, num_cols, figsize=figsize)
    axes = axes.flatten()
    for ax, img, target in zip(axes, imgs,
Faster R-CNN是一种经典的深度学习目标检测模型,由RPN(Region Proposal Network)和Fast R-CNN两部分组成。通过使用RPN网络,模型可以在目标检测前自动生产多个预选框,从而降低计算复杂度和提高模型的表现。本文主要介绍如何使用TensorFlow2构建Faster R-CNN模型,并在COCO数据集上进行训练和测试。 首先,在搭建Faster R-CNN模型前,需要安装必要的库和环境。包括TensorFlow2、NumPy、Pillow等。接着,下载COCO数据集并进行数据预处理。使用COCO API将图像数据和标注文件解析成可读取的格式,并进行数据增强,包括随机水平翻转、改变亮度和对比度等。 然后,是Faster R-CNN的网络结构。首先搭建RPN网络,通过一个基础网络(如VGG16或Resnet50)提取图像特征,将特征图传入RPN网络,生成多个预选框。接着,将预选框传入Fast R-CNN网络,通过ROI pooling将ROI区域转换为统一尺寸的特征图,最终输出目标类别和位置信息。 接下来,是模型的训练。定义损失函数,包括分类损失和回归损失,并使用优化器进行模型的迭代。同时,使用学习率调度和正则化等技术提高模型的表现,并进行批量归一化处理,加快收敛速度。 最后,进行模型的测试。使用COCO评测指标计算模型的AP值和mAP值,并对模型的结果进行可视化展示,包括预测框、真实框和标注信息等。 总体来说,使用TensorFlow2实现Faster R-CNN目标检测模型是一个复杂而有挑战性的任务,需要掌握深度学习和计算机视觉相关的知识和技术,同时还需要具备较强的编程能力和实战经验。但是,通过不断学习和实践,可以逐步提升模型的表现和应用价值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值