OpenMMLab AI 实战营笔记4——MMPreTrain算法库:构建高效、灵活、可扩展的深度学习模型

news2024/12/28 2:12:49

文章目录

  • 摘要
  • 一、工具箱介绍
  • 二、丰富的模型
  • 三、推理API
  • 四、环境搭建——OpenMMLab软件栈
  • 五、OpenMMLab重要概念——配置文件
  • 六、代码框架
  • 七、配置及运作方式
  • 经典主干网络
  • 残差网络
  • Vison Transformer(VIT)
  • 注意力机制
  • 自监督学习
    • 常见类型
    • SimCLR
    • MAE
    • 自监督学习
  • 多模态
    • CLIP
    • BLIP
    • Others
  • 总结

摘要

MMPreTrain算法库:构建高效、灵活、可扩展的深度学习模型

随着深度学习技术的不断发展,越来越多的算法库被开发出来,其中MMPreTrain算法库就是其中之一。MMPreTrain算法库是一个强大的工具箱,提供了丰富的模型、推理API、环境搭建软件栈、代码框架、数据流、配置及运作方式等功能,使得用户可以快速构建高效、灵活、可扩展的深度学习模型。

一、工具箱介绍

MMPreTrain算法库是一个轻量级的深度学习框架,支持多种计算加速器,包括CPU、GPU、TPU等。它提供了大量的算法模型,可以帮助用户快速搭建深度学习模型,同时还提供了一系列的工具,如数据增强、数据读取、模型评估等,使得用户能够更加方便地进行模型训练和优化。

在这里插入图片描述

二、丰富的模型

MMPreTrain算法库提供了多种经典的深度学习模型,包括卷积神经网络、循环神经网络、Transformer等,同时还提供了一些先进的模型,如EfficientNet、MobileNetV3以及VIT等。这些模型都经过了严格的测试和优化,可以满足不同场景下的需求。同时支持数据增强和可视化分析等。

在这里插入图片描述

三、推理API

MMPreTrain算法库提供了多种推理API,包括TensorFlow Serving、ONNX Runtime等。这些API可以帮助用户将训练好的模型部署到生产环境中,以提供高效的推理服务。

支持多种开箱即用的推理任务:

  • 图像分类
  • 图像描述(Image Caption)
  • 视觉问答(Visual Question Answering)
  • 视觉定位(Visual Grounding)
  • 检索(图搜图,图搜文,文搜图)在这里插入图片描述

四、环境搭建——OpenMMLab软件栈

MMPreTrain算法库提供了完整的环境搭建软件栈,包括操作系统、CUDA、cuDNN、TensorFlow等。用户只需要按照文档的说明进行安装,即可快速搭建深度学习环境。

在这里插入图片描述

五、OpenMMLab重要概念——配置文件

使用配置文件就可以完成深度学习模型的训练、预测等。配置文件主要包括以下几个方面:
在这里插入图片描述

六、代码框架

MMPreTrain算法库提供了完整的代码框架,包括数据读取、数据结构的定义、模型定义、训练、评估等。用户可以根据自己的需求进行修改和扩展。

在这里插入图片描述

六、数据流

MMPreTrain算法库提了多种数据流处理方式,包括数据增强、数据预处理、数据读取等。这些功能可以帮助用户更加方便地进行数据处理和训练。

在这里插入图片描述

七、配置及运作方式

MMPreTrain算法库提供了多种配置方式,包括命令行参数、配置文件等。用户可以根据自己的需求进行配置,以满足不同场景下的需求。

在这里插入图片描述

经典主干网络

Alexnet、VGG、GooleNet,关于这部分,可以看我的专栏:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/category_12157249.html?spm=1001.2014.3001.5482,我对模型作了详细的解释。
在这里插入图片描述

残差网络

残差网络的思想:
在这里插入图片描述
残差网络的两种结构:
在这里插入图片描述

残差网络和VGG 对比:
在这里插入图片描述
ResNet34在ImageNet Top5的准确率为94.4%
在这里插入图片描述
ResNet是CNN网络中影响力最大的网络。

Vison Transformer(VIT)

在nlp中,输入transformer中的是一个序列,而在视觉领域,模型训练中图片的大小是224*224=50176,而正常的bert的序列长度是512,所以展开成1d的序列是bert的100倍,这个的复杂度太高了。

ViT的总体想法是基于纯Transformer结构来做图像分类任务。其核心流程包括图像分块处理 (make patches)、图像块嵌入 (patch embedding)与位置编码、Transformer编码器和MLP分类处理等4个主要部分。
在这里插入图片描述

注意力机制

加入注意力机制后,实现层次化特征,后层特征是空间邻域内的前层特征的加权求和,权重越大,对应位置的特征月重要。
在这里插入图片描述
注意力机制的计算方式
在这里插入图片描述
多头注意力机制的计算方式在这里插入图片描述

自监督学习

常见类型

  • 基于代理任务
  • 基于对比学习
  • 基于掩码学习在这里插入图片描述

SimCLR

推远副样本的距离,拉近正样本之间的特征距离

在这里插入图片描述

MAE

基于掩码的自监督学习。
在这里插入图片描述

自监督学习

DINOV2在iBOT上作了改进

在这里插入图片描述

多模态

CLIP

论文翻译:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/125452516,出自OpenAI,论文比较长。文本图像对。

在这里插入图片描述
CLIP,零样本迁移,几乎超越了ResNet50
在这里插入图片描述

BLIP

BLIP包含三个Loss,第一个是 Image-Text
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Others

在这里插入图片描述

总结

首先,学习了MMPreTrain,MMPreTrain算法库是一个非常强大的工具箱,可以帮助用户快速构建高效、灵活、可扩展的深度学习模型。如果您想要学习深度学习或者构建深度学习模型,那么MMPreTrain算法库绝对是一个不错的选择。
然后,学习了经典的主干网络,比如AlexNet、VGGNet以及Reset。
接下来,学习了自监督学习,自监督学习有三种方式,包含基于代理任务、基于对比学习、基于掩码学习。
最后,讲解了多模态任务,常用的有CLIP和BLIP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jvm 命令和工具

目录 堆内存分析工具 MAT ZProfiler - 线上的mat EagleEye-MProf - 命令行 命令行 线程池排查 jstack jmap -dump jmap -heap jstat 堆内存分析工具 MAT eclipse官方推出的本地内存分析工具,运行需要大量内存,从使用角度来讲,并不…

Mysql查询优化

Mysql查询优化器 在多种情况下,可能会导致查询结果从缓存中清除,例如:. 数据可能已被修改 您可能运行了一条语句,其文本与缓存的语句略有不同(小写/大写,换行符,...) 缓存可能已达到其大小限制之一(内存,查询计数,块等),并决定逐出您的特定查询 高速缓存碎片过多…

DatenLord前沿技术分享 No.26

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。达坦科…

SpringBoot+MyBatisplus搭建校园新闻平台——已开源

概述 开发背景 校园新闻平台是以新闻宣传机构的在线信息发布需求为基础,随着数字化和信息化的快速发展,校园新闻在校园内的传播和沟通中变得越来越重要。学校需要一个有效的管理系统来整合、发布和传播校园新闻,以满足师生、校友和其他利益…

我对测试行业发展和自我价值诉求的思考

测试圈子生态的思考 其实测试的生态,说起来蛮简单的,一个词语概括就是两极分化。有个梗:hand hands,load loads,太贴切了。 两极分化这个词,可以从下面三个维度来看: 薪资 我认识的测试也算不少…

搜索插入位置 力扣 Python

题目描述: 解题代码: class Solution:def searchInsert(self, nums: List[int], target: int) -> int:if target in nums:return nums.index(target)else:nums.append(target)nums.sort()return nums.index(target)题目分析: 时间复杂度…

0804空间直线及其方程-向量代数与空间解析几何

文章目录 1 空间直线方程1.1 空间直线的一般方程1.2 空间直线的对称式方程1.3 空间直线的参数方程1.4 空间直线的两点式方程 3 两直线的夹角4 直线与平面的夹角4.1 定义4.2 夹角的正弦公式 5 例题6 平面束方程结语 1 空间直线方程 1.1 空间直线的一般方程 空间直线L可以看做是…

【3DsMAX】从零开始建房(4)

目录 1. 制作二层主体 2. 制作二楼顶层栏杆 1. 制作二层主体 将二层的长方体转换为可编辑多边形,将左半部分的点向左移动一点距离 选中左右边线进行连接 移动连接线 选中如下的面挤出 选中一条边线,再点击环形 再点击连接 挤出 选中如下一条边线向上移…

【Windows安装】Windows详细安装nginx部署教程

1、先下载直接去官网nginx.org 点击后就会下载,下载完成后开始安装,其实官网已经告诉了如何安装,右侧“documentation -> nginx windows”就有详细的说明,只是英文而已 2、下载完成后,解压缩,运行cmd&a…

【网络工程师必备知识点】从头认识IPv6!

1. IPv6 的背景 IPv4 地址空间已经消耗殆尽,近乎无限的地址空间是 IPv6 的最大优势 2. IPv6 基本报头 在 IPv4 的基础上增加了流标签,去掉了一些冗余字段,使报文头部的处理更 为简单、高效 3. IPv6 扩展报头 是跟在 IPv6 基本报头后面的可…

自定义类型作为map或者unordered_map的key需要额外做哪些事情

文章目录 1、自定义类型作为map的key2、自定义类型作为unordered_map的key 1、自定义类型作为map的key map中有4个参数&#xff0c;前两个参数是key和val的类型&#xff0c;第三个参数表示比较的仿函数&#xff0c;用于对键值进行比较&#xff0c;默认情况下采用less<Key>…

Shell脚本攻略:shell实现pxe无人值守安装

目录 一、实验 1.shell实现pxe无人值守安装 一、实验 1.shell实现pxe无人值守安装 &#xff08;1&#xff09;脚本截图 1 echo set nu > ~/.vimrc2 systemctl stop firewalld3 setenforce 04 umount /dev/sr0 /mnt5 mount /dev/sr0 /mnt6 cd /etc/yum.repos.d/7 mkdir b…

汇编学习教程:bp 寄存器

引言 我们在此前的学习中已经了解了CPU中众多的寄存器&#xff0c;比如通用寄存器 AX、BX、CX、DX&#xff0c;还有段寄存器 CS、DS、SS、ES。在内存访问和灵活寻址的学习中&#xff0c;我们重点学习了 BX 寄存器和 CX 寄存器。BX 寄存器通常配合 DS段寄存器来实现内存访问&am…

做完瑞吉外卖项目的一点笔记和源码

源码在 https://gitee.com/pluto8/take-out 一、软件开发整体介绍 1、软件开发流程 需求分析 &#xff1a;产品原型&#xff0c;需求规格说明书&#xff08;文档形式&#xff09;设计&#xff1a;产品文档、UI界面设计、概要设计、详细设计、数据库设计编码&#xff1a;项目…

STM32 实现简单定时任务调度器,支持动态添加临时任务

代码实现和硬件没关系&#xff0c;所以并不限于STM32&#xff0c;Arduino 之类的其他地方也能用&#xff0c;只要有一个能获取时间的函数就行&#xff0c;或者说&#xff0c;只要有一个会随着时间自动增加的变量就行&#xff0c;时间单位无所谓&#xff0c;所以确实想的话&…

菜单权限验证和分页功能

权限验证 1.创建数据库&#xff0c;然后测试菜单权限的联合查询语句&#xff1b; 2.创建项目&#xff0c;导入jar包&#xff0c;配置实体类和工具类 3.完成登录功能&#xff0c;当输入用户名和密码正确后跳转到框架页面 编写导航页&#xff08;top.jsp&#xff09;和内容页…

Vscode +Msys2配置C/C++环境

目录 前期准备&#xff1a;Step1: 安装Msys2Step2: 安装编译器Step3: 安装VScodeStep4: 配置VScodec_cpp_properties.jsonlaunch.jsontasks.json Step5: 创建C/C项目 前期准备&#xff1a; 首先&#xff0c;你需要下载并安装以下软件&#xff1a; VsCode&#xff1a;https://c…

软件需求分析-复习指南

这里写自定义目录标题 下面是一段用例的描述&#xff0c;针对一个汽车保险系统中“将一辆新车加入一个已有保单中”的用例。请你为其设计&#xff1a; (1) 领域模型&#xff08;要求给出建立过程&#xff09;(20分)&#xff1b; (2) 活动图 (14分)&#xff1b; (3) 顺序图 (14分…

linux内核open文件流程

打开文件流程 本文基本Linux5.15 当应用层通过open api打开一个文件&#xff0c;内核中究竟如何处理&#xff1f; 本身用来描述内核中对应open 系统调用的处理流程。 数据结构 fdtable 一个进程可以打开很多文件&#xff0c; 内核用fdtable来管理这些文件。 include/linu…

为项目添加 HibernateValidator

HibernateValidatorhttps://hibernate.org/validator/ 引入依赖项 首先&#xff0c;确保已将Hibernate Validator添加到Maven或Gradle依赖项中&#xff1a; <!-- Maven 依赖 --> <dependency><groupId>org.hibernate.validator</groupId><artifa…