Title
Fork me on GitHub

opennmmlab实战营二期-mmpretrain理论课(四)

opennmmlab实战营二期-mmpretrain理论课(四)

今早抽空花点时间学习了mmpretrain理论课视频,mmpretrain也是本次实战营我所感兴趣的一个算法库,因为之前的mmcls被合并到mmpretrain算法库来,所以想对mmpretrain有一个全新的认识。理论课视频地址:点我:视频地址

本次课程主要分为介绍、经典主干网络、子监督学习、多模态算法四部分,具体内容见下:

mmpretrain算法库介绍

算法库与任务组成

  • 介绍:mmpretrain算法库是一个全新升级的预训练开源算法框架,旨在提供各种预训练主干网络,并支持了不同的预训练策略。mmpretrain是mmcls和mmselfsup合并而来的,具有丰富的预训练模型。

  • mmpretrain的强大功能:

    • 丰富的模型:主干网络(VGG、ResNet、DesnseNet、MobileNet、ShuffleNet、Vit、SwinTransformer...)、自监督学习(MoCo v1/v2/v3、SimCLR、MAE...)、多模态学习(CLIP、BLIP...)
    • 丰富的数据集支持:MNIST/CIFAR、ImageNet、COCO、ScienceQA、自定义数据集...
    • 代码的易用性:大量预配置文件、模型、推理api、模型训练工具、模型参数计算、cam可解释分析、可视化工具、mmdeploy部署...
    • 训练技巧与策略:优化器与学习率策略、数据增强策略
  • mmpretrain支持多种任务:支持API和模型,包含以下任务:图像分类(image cls)、图像描述(image caption)、视觉定位(visual grounding)、视觉问答(visual question answering)、检索,如下图:
    image

  • mmpretrain的环境搭建:

    • mmpretrain算法库依托于openmmlab的软件栈,如图:image
    • 安装步骤:
      基础安装:
      conda acreate -n open-mmlab python=3.8 pytorch==1.10.1 torchvision==0.12.2 cudatoolkit=11.3 -c pytorch -y
      conda activate open-mmlab
      pip install openmim
      git clone https://github.com/openmmlab/mmpretrain.git
      cd mmpretrain
      mim install -e .
      
      多模态依赖:
      mim install -e ".[multimodal]"
      
      可使用mim配置mmcv、mmengine、mmpretrain
  • 配置文件
    配置文件涉及模型结构(几层、通道数)、数据(数据集划分、路径、批大小、数据增强)、训练优化(学习率、epoch、学习率策略)、运行(gpu)、辅助功能(训练日志、保存checkpoint)

框架概览

  • mmpretrain的代码框架如下:
    image

  • 数据流介绍,如图:
    image
    训练:数据——>数据读取、增强——>模型输入——>计算loss——>反向传播
    预测:数据——>数据读取、增强——>模型输入——>模型输出预测结果

  • 配置文件的运作方式,如图:
    image

经典主干网络

  • 早期深度学习发现只要加深网络层数,效果会更好,于是就出现了alexnet、vgg、googlenet,但网络层数增加到一定数量后,正确率反倒开始下降(物极必反)。
  • 为什么呢???
  • 猜想:虽深层网络有潜力达到更高的精度、但常规的优化算法难以找到这个更优的模型。
  • 于是便有了残差:让新增加的层拟合浅层网络与深层网络之间的差异。
    image

resnet

  • 残差思路便出现了resnet,resnet0在加深网络的基础上,也保证了精度。

  • resnet中有两种残差块:basic block(resnet18、34)、bottleneck block(resnet50、101、152:
    image

  • 并介绍了resnet-34网络结构,点我

  • resnet的影响:深度学习邻域影响力最大、使用最广泛的模型结构之一,在其他任务中也会被广泛使用。

vision transformer

自监督学习

模型训练依靠的数据,但是有标注的数据少,于是想要依靠数据且不需要依赖人工标注来进行模型的训练,这就是自监督学习,无需标注的数据让神经网路进行学习。
早期基于各种代理任务,如image colorizationsloving jisaw puzzles
19、20年基于对比学习(SimCLR)
之后基于掩码学习(MAE)

SimCLR

image

MAE

image

对比学习和掩码学习结合:iBOTDINOv2

多模态算法

CLIP

CLIP全称:Contrastive Language-Image Pre-training,根据字面意思,就是对比文本-图像预训练模型,只需要提供图像类别的文本描述,就能将图像进行分类。
image

BLIP

简单说下个人感受,前部分mmpretrain介绍还好,后面介绍一些算法还比较浅层、基本没有深究(可能考虑到大众),但是介绍了各种各样的算法,收获颇多,可以了解到以前没有听过的一些算法,开阔视野也挺好!有点期待接下去mmpretrain的代码课!


主页:https://www.cnblogs.com/xielaoban/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利

posted @ 2023-06-05 16:33  新西兰蟹老板  阅读(403)  评论(0编辑  收藏  举报