【OpenMMLab】深度学习预训练与 MMPreTrain

系列文章目录

第一课:【OpenMMLab】OpenMMLab概述
第二课:【OpenMMLab】人体姿态估计、关键点检测与MMPose

一、MMPreTrain 算法库介绍

MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络,并支持不同的预训练策略。
MMPretrain 源自 MMClassification 和MMSelfSup,并开发了许多新功能。预训练阶段对于视觉识别至关重要,凭借丰富而强大的预训练模型,能够用于改进各种下游视觉任务。 代码库旨在成为一个易于使用和用户友好的代码库,并简化学术研究活动和工程任务。
博客视频:https://www.bilibili.com/video/BV1PN411y7C1
代码仓库:https://github.com/open-mmlab/mmpretrain
文档教程:https://mmpretrain.readthedocs.io/en/latest
在这里插入图片描述

安装步骤

conda create -n your_env_name python=3.8
conda activate your_env_name
pip install -U openmim
# 此处省略配置pytorch环境,具体可参考 《【OpenMMLab】人体姿态估计、关键点检测与MMPose》
git clone https://github.com/openmmlab/mmpretrain.git
cd mmpretrain
mm install -e .

# 多模态依赖
mim install -e ".[multimodal]"

配置文件

配置文件涉及一下几个方面:

  • 模型结构 模型几层,每层的通道数等
  • 数据 数据集划分、数据文件路径、批大小、数据增强策略等
  • 训练优化 优化器的选择、学习率参数、训练总轮次、学习率调整策略等
  • 运行时 GPU、分布式环境配置等
  • 辅助功能 打印日志、保存 checkpoints 等

代码框架

  1. apis: 顶层 api 接口,支持各类推理任务
  2. datasets:支持了各类数据集,数据变换等
  3. engine: 支持各类钩子,优化器等训练相关组件
  4. evaluation:各类评测相关函数和指标计算
  5. models:各类算法模型的定义
  • backbones 图像的特征提取器,各类主千网络的定义
  • necks 承接 backbone 和 head 之间的其它计算 (例如高维特征解码,多尺度特征融合等)
  • heads 主要为相关 loss 计算和推理结果的预测classifier,selfsup,multimodal 则为模型高阶抽象定义
  1. structures: DataSample 数据结构的定义
  2. utils: 相关工具
  3. visualization:可视化的支持

配置文件的运作方式

在这里插入图片描述

二、经典主干网络

AlexNet VGG GoogLeNet

在这里插入图片描述

ResNet

在这里插入图片描述

ViT

  • 将图像切分成若干 16x16 的小块,所有块排列成“词向量”,先经过线性层映射,一张[H,W,C]维度的图片变为[L, C],再经多层 Transformer Encoder 的计算产生相应的特征向量
  • 图块之外加入额外的 token,用于 query 其他 patch 的特征并给出最后分类
  • 注意力模块基于全局感受野,复杂度为尺寸的4次方(像素数量的2次方)
    在这里插入图片描述

三、自监督学习

在这里插入图片描述

SimCLR (ICML 2020)

基本假设:如果模型能很好地提取图片内容的本质,那么无论图片经过什么样的数据增强操作,提取出来的特征都应该极为相似。
对于某种图片 x x x,分别对它进行两次数据增强,得到 x 1 x_1 x1 x 2 x_2 x2

  • x 1 x_1 x1 x 2 x_2 x2互为正样本
  • 其他图片的增强结果都是 x 1 x_1 x1 x 2 x_2 x2的负样本
    InfoNCE Loss
    ℓ i , j = − l o g e x p ( s i m ( z i , z j ) / τ ) ∑ k = 1 2 N 1 [ k ≠ 1 ] e x p ( s i m ( z i , z k ) / τ ) \ell_{i, j}=-log\frac{exp(sim(z_i, z_j)/\tau)}{\sum_{k=1}^{2N}\mathbb{1}_{[k \neq1]}exp(sim(z_i, z_k)/\tau)} i,j=logk=12N1[k=1]exp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)
    在这里插入图片描述

MAE

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

四、多模态算法

CLIP

在这里插入图片描述

BLIP

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值