Resnet图像识别入门——池化层

前面的文章[Resnet图像识别入门——激活函数]介绍了3中常见的激活函数,以及激活函数在神经网络中的作用。

在CNN网络中,除了激活函数之外,还有一种算法也是很常见的,那就是池化层。在Resnet50中,就存在一个最大池化层和一个全局平均池化层。

那么,什么是池化层呢?在CNN网络中,池化层又能起到什么作用?

池化Pooling

池化一般接在卷积过程后。

池化,也叫Pooling,其本质其实就是采样,池化对于输入的图片,选择某种方式对其进行压缩,以加快神经网络的运算速度。这里说的某种方式,其实就是池化的算法,比如最大池化或平均池化。

 最大池化

池化过程类似于卷积过程。上图表示的就是对一个图片邻域内的值,用一个 2x2 的池化kernel,步长为2进行扫描,选择最大值输出,称为最大池化。

最大池化 MaxPool 常用的参数为 kernel = 2, stride = 2 ,这样的参数处理效果就是输出图片的高度、宽度减半,通道数不变。

还有一种叫平均池化,和最大池化类似,就是将取区域内最大值改为求这个区域的平均值。
在这里插入图片描述

和卷积类比

和卷积类比,池化操作也有一个核(kernel),但它不是卷积核。

池化的核只负责框定某次池化计算需要的图片的范围,核里面并没有数据参与计算,也就是说,在训练过程中,池化层不像卷积层那样,需要学习权重。

另一个与卷积不同的是,在卷积的计算中,需要channel维度的数据累加,而池化层的channel维度的数据不需要累加,每个channel中的数据是独立的,这也导致,池化的运算复杂度比卷积简单很多。

下图是卷积和池化的示意图,通过两张图,大致可以看出两者的不同。  卷积示意图

 池化示意图

神经网络中为什么需要池化层?

特征不变性

汇合操作使模型更关注是否存在某些特征而不是特征具体的位置,可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移。即池化层支持了一定的平移、旋转、拉伸不变性,这个特性就是有点抽丝剥茧的意思,不断用小特征对大特征进行精简。

如下图,通过池化操作,图片中的黑色特征在输出图片中,仍然被保留了下来,虽然有些许的误差。

池化的特征不变性

降维

如上的例子,图片经过池化的操作,可以减小图片的尺寸,同时又可以保留相应特征,所以主要用来降维。

防止过拟合

由于池化层没有需要学习的参数,因此,在训练的过程中,可以在一定程度上防止过拟合的发生。

降低模型计算量

池化的操作,会在保留原始图片特征不变的情况下,将图片尺寸缩小,从而减少整个模型的计算量。

在神经网络的训练和推理过程中,一个维度的计算量减倍,往往会带来一个数量级的性能提升,尤其是在训练过程动辄迭代成千上万次的训练场景中。

使用池化算法,在减少图片的宽和高尺寸的同时,也会给模型的训练和推理带来更优异的性能提升。

除了上述最大池化和平均池化外,池化还有很多变种。最常见的一种变体就是全局池化。

全局池化的kernel大小和图片大小一样,因此最终输出的图片大小就是一个点。这种全局池化操作,后面一般用来接全连接层,从而进行分类。如Resnet50最后一层全连接层前,就是一个全局平均池化层。

大模型资源分享

“最先掌握 AI 的人,相较于较晚掌握 AI 的人而言,将具备竞争优势。”这句话放在计算机、互联网以及移动互联网的开局时期,同样适用。

我在一线互联网企业工作长达十余年,期间指导过众多同行后辈,助力许多人实现了学习与成长。为此,我将重要的 AI 大模型资料,包括 AI 大模型入门学习思维导图、精品 AI 大模型学习书籍手册、视频教程以及实战学习等录播视频免费分享出来。
在这里插入图片描述

一、全套 AGI 大模型学习路线

AI 大模型时代的精彩学习之旅:从根基铸就到前沿探索,牢牢掌握人工智能核心技能!

在这里插入图片描述

二、640 套 AI 大模型报告合集

此套涵盖 640 份报告的精彩合集,全面涉及 AI 大模型的理论研究、技术实现以及行业应用等诸多方面。无论你是科研工作者、工程师,还是对 AI 大模型满怀热忱的爱好者,这套报告合集都将为你呈上宝贵的信息与深刻的启示。

在这里插入图片描述

三、AI 大模型经典 PDF 书籍

伴随人工智能技术的迅猛发展,AI 大模型已然成为当今科技领域的一大热点。这些大型预训练模型,诸如 GPT-3、BERT、XLNet 等,凭借其强大的语言理解与生成能力,正在重塑我们对人工智能的认知。而以下这些 PDF 书籍无疑是极为出色的学习资源。
在这里插入图片描述
在这里插入图片描述

阶段 1:AI 大模型时代的基础认知

  • 目标:深入洞悉 AI 大模型的基本概念、发展历程以及核心原理。

  • 内容

    • L1.1 人工智能概述与大模型起源探寻。
    • L1.2 大模型与通用人工智能的紧密关联。
    • L1.3 GPT 模型的辉煌发展历程。
    • L1.4 模型工程解析。
    • L1.4.1 知识大模型阐释。
    • L1.4.2 生产大模型剖析。
    • L1.4.3 模型工程方法论阐述。
    • L1.4.4 模型工程实践展示。
    • L1.5 GPT 应用案例分享。

阶段 2:AI 大模型 API 应用开发工程

  • 目标:熟练掌握 AI 大模型 API 的运用与开发,以及相关编程技能。

  • 内容

    • L2.1 API 接口详解。
    • L2.1.1 OpenAI API 接口解读。
    • L2.1.2 Python 接口接入指南。
    • L2.1.3 BOT 工具类框架介绍。
    • L2.1.4 代码示例呈现。
    • L2.2 Prompt 框架阐释。
    • L2.2.1 何为 Prompt。
    • L2.2.2 Prompt 框架应用现状分析。
    • L2.2.3 基于 GPTAS 的 Prompt 框架剖析。
    • L2.2.4 Prompt 框架与 Thought 的关联探讨。
    • L2.2.5 Prompt 框架与提示词的深入解读。
    • L2.3 流水线工程阐述。
    • L2.3.1 流水线工程的概念解析。
    • L2.3.2 流水线工程的优势展现。
    • L2.3.3 流水线工程的应用场景探索。
    • L2.4 总结与展望。

阶段 3:AI 大模型应用架构实践

  • 目标:深刻理解 AI 大模型的应用架构,并能够实现私有化部署。

  • 内容

    • L3.1 Agent 模型框架解读。
    • L3.1.1 Agent 模型框架的设计理念阐述。
    • L3.1.2 Agent 模型框架的核心组件剖析。
    • L3.1.3 Agent 模型框架的实现细节展示。
    • L3.2 MetaGPT 详解。
    • L3.2.1 MetaGPT 的基本概念阐释。
    • L3.2.2 MetaGPT 的工作原理剖析。
    • L3.2.3 MetaGPT 的应用场景探讨。
    • L3.3 ChatGLM 解析。
    • L3.3.1 ChatGLM 的特色呈现。
    • L3.3.2 ChatGLM 的开发环境介绍。
    • L3.3.3 ChatGLM 的使用示例展示。
    • L3.4 LLAMA 阐释。
    • L3.4.1 LLAMA 的特点剖析。
    • L3.4.2 LLAMA 的开发环境说明。
    • L3.4.3 LLAMA 的使用示例呈现。
    • L3.5 其他大模型介绍。

阶段 4:AI 大模型私有化部署

  • 目标:熟练掌握多种 AI 大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述。
    • L4.2 模型私有化部署的关键技术解析。
    • L4.3 模型私有化部署的实施步骤详解。
    • L4.4 模型私有化部署的应用场景探讨。

学习计划:

  • 阶段 1:历时 1 至 2 个月,构建起 AI 大模型的基础知识体系。
  • 阶段 2:花费 2 至 3 个月,专注于提升 API 应用开发能力。
  • 阶段 3:用 3 至 4 个月,深入实践 AI 大模型的应用架构与私有化部署。
  • 阶段 4:历经 4 至 5 个月,专注于高级模型的应用与部署。
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ResNet(Residual Network)是一种非常流行的深度学习模型,用于图像识别任务。下面是一个简单的ResNet图像识别代码的示例: ```python import torch import torch.nn as nn import torch.optim as optim import torchvision.models as models # 加载预训练的ResNet模型 resnet = models.resnet50(pretrained=True) # 替换最后一层全连接层 num_classes = 10 # 假设有10个类别 resnet.fc = nn.Linear(resnet.fc.in_features, num_classes) # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(resnet.parameters(), lr=0.001, momentum=0.9) # 加载数据集并进行训练 train_loader = ... test_loader = ... num_epochs = 10 for epoch in range(num_epochs): for images, labels in train_loader: optimizer.zero_grad() outputs = resnet(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() # 在测试集上进行验证 correct = 0 total = 0 with torch.no_grad(): for images, labels in test_loader: outputs = resnet(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() accuracy = 100 * correct / total print(f'Epoch {epoch+1}/{num_epochs}, Test Accuracy: {accuracy:.2f}%') ``` 这段代码使用PyTorch框架实现了一个基于ResNet图像识别模型。首先,我们加载预训练的ResNet模型,并替换最后一层全连接层以适应特定的类别数量。然后,定义损失函数和优化器。接下来,通过加载训练集和测试集的数据进行训练和验证。在每个训练周期中,我们计算损失并进行反向传播优化模型参数。最后,在测试集上计算准确率并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值