AI实战营第二期 笔记5——MMPretrain代码课

2023-11-18

摘要

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

【课程链接】https://www.bilibili.com/video/BV1Ju4y1Z7ZE
【讲师介绍】马泽润 OpenMMLab算法工程师
在这里插入图片描述

MMPreTrain实战

安装

git clone https://github.com/open-mmlab/mmpretrain.git
cd mmpretrain
pip install -U openmim
mim install -e ".[multimodal]"

在这里插入图片描述
multimodal:代表安装额外安装多模态的模型
在这里插入图片描述

推理

调用脚本实现推理,代码如下:

python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE}

OR 使用API

get_model 通过模型名称或模型配置文件获取模型
list_models 列举 MMPretrain 中所有可用模型名称
inference_model 使用与模型相对应任务的推理器进行推理
调用ResNet实例代码:

import mmpretrain
print(mmpretrain.__version__)

from mmpretrain import get_model, list_models, inference_model
print(list_models(task='Image Classification', pattern  = 'resnet18'))

print(list_models(task='Image Caption', pattern='blip'))
model = get_model('resnet18_8xb16_cifar10')
print(type(model))

model  =  get_model( 'resnet18_8xb32_in1k')
print(type(model.backbone))

在这里插入图片描述
加载预训练模型推理

inference_model('blip-base_3rdparty_caption','demo/cat-dog.png',show=True)

在这里插入图片描述

数据集

CustomDataset OR ImageNet

子文件夹方式
标注文件方式
#配置文件
举例:resnet18_8xb32_in1k.py

_base_ = [
    '../_base_/models/resnet18.py',           # 模型配置
    '../_base_/datasets/imagenet_bs32.py',    # 数据配置
    '../_base_/schedules/imagenet_bs256.py',  # 训练策略配置
    '../_base_/default_runtime.py'            # 默认运行设置
]

训练与测试

训练

python tools/train.py ${CONFIG_FILE} [ARGS]

测试

python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [ARGS]

微调

数据集地址:https://download.openmmlab.com/mmclassification/dataset/cats_dogs_dataset.tar
在MMpretrain下面新建data文件夹,然后将数据集解压后,放进去。
查看模型,输入命令:

ls configs

在这里插入图片描述
查看具体模型的配置文件,ResNet为例:

ls configs/resnet

在这里插入图片描述
打开文件resnet18_8xb32_in1k.py,查看具体的内容:

_base_ = [
    '../_base_/models/resnet18.py', '../_base_/datasets/imagenet_bs32.py',
    '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
]

../_base_/models/resnet18.py:模型文件,通过配置的方式,实现模型。
../_base_/datasets/imagenet_bs32.py:数据集配置。
../_base_/schedules/imagenet_bs256.py:规划配置
../_base_/default_runtime.py:运行配置
default_runtime的配置修改:

   # save checkpoint per epoch.
    checkpoint=dict(type='CheckpointHook', interval=1,max_keep_ckpts=5,sava_best="auto"),

保存最好的5个模型,自动保存最好的模型。

设置类别,和预训练权重路径。
在这里插入图片描述
设置成自定义数据集格式
在这里插入图片描述
配置数据集路径
在这里插入图片描述
训练

mim train mmpretrain configs/resnet/resnet50.py --work-dir=./exp

在这里插入图片描述
测试

mim test mmpretrain configs/resnet/resnet50.py --checkpoint exp/epoch_41.pth

在这里插入图片描述

分析结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI实战营第二期 笔记5——MMPretrain代码课 的相关文章

随机推荐

  • APK反编译之一:基础知识

    APK反编译之一 基础知识 本人接触不久 有错误望请各位神牛不吝赐教 仅仅希望把自己这段时间研究的东西分享一下 如果可以帮助到有需要的童鞋万感荣幸 欢迎评论转载 但请加上转载来源谢谢 请尊重开发者劳动成果 请勿用于非法用途 作者 lpohv
  • 自学Java没学历可以找到工作吗?

    除非技术真的diao 炸 天 否则大概率是找不到的 低学历能自学编程的人大有人在 你在搜索引擎上一查 低学历自学编程改变自身命运的不胜枚举 但无一不例外的 每个求学者的叙述都透漏着心酸 艰难困苦 披荆斩棘 这些词 说来容易 听来简单 但真正
  • ctfshow web由一道题的思路实现通杀

    ctfshow萌新计划 根据web1的几个解法思路我实现了对后面几道题的通杀 仔细想想感觉对于我这样的新手来说这几题还不错 题目一 web1 代码很安全 没有漏洞 打开题目很显然这一题考察的是代码审计 我们把代码粘贴下来审计一波
  • C#IList与List区别[转]

    首先IList 泛型接口是 ICollection 泛型接口的子代 并且是所有泛型列表的基接口 它仅仅是所有泛型类型的接口 并没有太多方法可以方便实用 如果仅仅是作为集合数据的承载体 确实 IList
  • pg_stat_statement如何安装部署使用

    pg stat statements模块提供一种跟踪执行统计服务器执行的所有SQL语句的手段 该模块默认是不开启的 如果需要开启需要我们手动对其进进行编译安装 修改配置文件并重启数据库 并在使用前手动载入该模块 1 手动对pg stat s
  • 离线强化学习(Offline RL)系列3: (算法篇)策略约束-BCQ算法详解与实现

    更新日志 论文信息 Off Policy Deep Reinforcement Learning without Exploration Github 本文主要介绍的是连续空间状态下的策略约束的BCQ算法 作者首先就offline RL中容
  • 软件质量属性

    质量特性 质量子特性 功能性 适宜性 准确性 互用性 依从性 安全性 可靠性 成熟型 容错性 可恢复性 可用性 可理解性 易学性 可操作性 效率 时间特性 资源特性 可维护性 可分析性 可修改性 稳定性 可测试性 可移植性 适应性 易安装性
  • Backtrader量化&回测10——取消预加载,读取自定义的可迭代数据

    文章目录 各模块解释 1 获取K线数据 2 可迭代数据类 3 策略模块 示例代码 从这一部分开始 我们将不会再聚焦于基本的操作细节上 而是更多的做一些有特点的修改 or 魔改 这篇博客记录了 不进行预加载数据 而是实时加载数据的操作 各模块
  • 靠着“反转”设计,这些短视频火了

    不知从何时开始 在那些爆火的短视频中 出现了这样一类作品 开头看似平平无奇 一切正常 突然惊现神转折 给了观众一个措手不及 而这种措手不及也大大提升了观众对此类视频的强烈兴趣 在短短15s到60s的体量内 反转 设计凭借出人意料的戏剧化特性
  • 华为云鲲鹏云服务器系列的规格,鲲鹏云服务器系列规格

    鲲鹏云服务器系列规格 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 介绍在执行扩容操作有一定的限制 用户需要在扩容前充分
  • C# Newtonsoft.Json object 转 json 为空

    问题 使用 Newtonsoft Json 框架 object 转 json 发现用 internal 修饰的属性 不能被转json JsonConvert SerializeObject obj 例如 internal sealed cl
  • 07Vue3-Vuex中计算数学getters应用

    getters Home vue
  • java动漫_求java做动画代码

    展开全部 import java awt Canvas import java awt Color import java awt Dimension import java awt EventQueue import java awt F
  • VMware无法连接网络

    运行VMware之后 使用 ip addr 指令查看ip地址的时候发现没有ip地址 打开任务管理器 gt 服务 找到 VMnetDHCP 和 VMware NAT Service 右击运行 配置完之后重启网络
  • 中国C-V2X通讯标准应用层标准介绍

    前言 2017年9月18日 中国智能网联汽车产业创新联盟携手重庆长安汽车 通用汽车 清华大学等单位发布了我国第一部V2X应用层团体标准 合作式智能运输系统 车用通信系统应用层及应用数据交互标准 T CSAE 53 2017 该标准的发布填补
  • Unity C# OnTriggerEnter()理解

    网上看了不少文档 但是实在是看不太明白 所以就索性花了一个晚上 终于算是弄明白了OnTriggerEnter 函数 自认为我理解的没错 如果有错误的地方 还烦请指正 举例说明 ColliderTest cs代码 void OnTrigger
  • JQuery扩展 — div大小改变触发事件

    以下为js代码 function window undefined var elems jq resize resize extend resize timeout id str setTimeout setTimeout str resi
  • mySql查看和修改字符编码

    http blog sina com cn s blog 70e79b050101dhnx html MySQL的默认编码是Latin1 不支持中文 要支持中午需要把数据库的默认编码修改为gbk或者utf8 1 需要以root用户身份登陆才
  • Inno Setup 如何让生成的setup.exe文件有管理员权限

    首先 在 Setup 段 PrivilegesRequired admin 然后 找到INNO安装目录下的SetupLdr e32文件 将程序中的Manifest更改一下 用reshacker这类工具改 这样运行程序的时候 Windows
  • AI实战营第二期 笔记5——MMPretrain代码课

    文章目录 摘要 MMPreTrain实战 安装 推理 OR 使用API 数据集 训练与测试 微调 摘要 MMPretrain 是一个全新升级的预训练开源算法框架 旨在提供各种强大的预训练主干网络 并支持了不同的预训练策略 MMPretrai