【OpenMMLab AI实战营第二期】深度学习预训练与MMPretrain

深度学习预训练与MMPretrain

MMPreTrain 算法库介绍

MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发了许多令人兴奋的新功能。 目前,预训练阶段对于视觉识别至关重要,凭借丰富而强大的预训练模型,我们能够改进各种下游视觉任务。

我们的代码库旨在成为一个易于使用和用户友好的代码库库,并简化学术研究活动和工程任务。 我们在以下不同部分中详细介绍了 MMPretrain 的特性和设计。

代码仓库:https://github.com/open-mmlab/mmpretrain
文档教程:https://mmpretrain.readthedocs.io/en/latest/

支持开箱即用的推理API和模型,包含丰富的相关任务

  • 图像分类
  • 图像描述
  • 视觉问答
  • 视觉定位
  • 检索

安装

pip install openmim
git clone https://github.com/open-mmlab/mmpretrain.git
cd mmpretrain
pip install -U openmim && mim install -e .

多模态安装

# 从源码安装
mim install -e ".[multimodal]"

# 作为 Python 包安装
mim install "mmpretrain[multimodal]>=1.0.0rc8"

验证安装

from mmpretrain import get_model, inference_model

model = get_model('resnet18_8xb32_in1k', device='cpu')  # 或者 device='cuda:0'
inference_model(model, 'demo/demo.JPEG')

代码框架

在这里插入图片描述

经典主干网络

残差学习基本思路

在这里插入图片描述

两种残差网络

在这里插入图片描述

ResNet(2015)

以VGG为基础

保持多级机构、增加层数

增加跨层连接

ResNet-34 34层ImageNet Top-5 准确率:94.4

扫描二维码关注公众号,回复: 15459147 查看本文章

5级,每级包含若干残差模块,不同残差模块个数不同ResNet结构

每级输出分辨率减半,通信倍增

全局平均池化压缩空间维度

单层全连接层产生类别概率

ResNet的成就和影响力

深度学习领域影响力最大、使用最广泛的模型机构之一,获得CVPR 2016最佳论文奖

残差结构也一直被广泛应用至今,不论计算机视觉如今的各种视觉TransFormer或者是ConvNeXt这类卷积神经网络,亦或是近期大火的GPT及各类大语言模型中都有着残差网络的身影

Vision Transformer

将图像切分成若干16*16的小块,所有块排列成词向量,先经过线性层映射,一张[H,W,C]维度的图片变为[L,C],再经多层Transformer Encoder的计算产生相应的特征向量

图块之外加入额外的token,用于query其他patch的特征并给出最后分类

注意力模块基于全剧感受野,复杂度为尺度的4次方

自监督学习的常见类型

  • 基于各种代理任务
  • 基于对比学习
  • 基于掩码学习

SimCLR

基本假设:如果模型能很好地提取图片内容的本质,那么无论图片经过什么样的数据增强操作,提取出来的特征都极为相似

Masked Autencoders

基本假设:模型只有理解图片内容、掌握图片的上下文信息,才能恢复出图片中被随机遮挡的内容

猜你喜欢

转载自blog.csdn.net/yichao_ding/article/details/131050199