IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> mmcv急速上手 -> 正文阅读

[人工智能]mmcv急速上手

官方学习文档地址:https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/registry.html
注意args是mmcv的核心就行

1.环境搭建

mmcv需要基cuda否则会报错:connot import* form mmcv.*

pip install mmcv-full
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

2.注册器Registry

2.1定义

注册器是由字符串到类的映射,或者或是字典到类映射。
注册器类似一个参数列表,基于一个注册器我们可以继承出很多转换器

2.2参数列表

Registry(name, build_func=None, parent=None, scope=None)
第一个参数那么是默认注册器的名字,和我们在实例化的时候的名字不是同一个
第二个参数构建函数,一般需要我们自己编写,使用默认的。

2.3实例

通过 @CONVERTERS.register_module() 装饰所实现的模块,字符串和类之间的映射就可以由 CONVERTERS 构建和维护

from mmcv.utils import Registry
# 创建转换器(converter)的注册器(registry)
CONVERTERS = Registry('converter')
from .builder import CONVERTERS

# 使用注册器管理模块
@CONVERTERS.register_module()
class Converter1(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b

3.执行器

有两种执行器,一种是以epoch为单位,一种是以是以iter为单位训练。以EpochBasedRunner为例做介绍

3.1定义

相当于epoch_fit的for循环,和torch一样只支持训练和验证。

3.1实例

(1) dataloader、model 和优化器等类初始化

# 模型类初始化
model=...
# 优化器类初始化,典型值 cfg.optimizer = dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001)
optimizer = build_optimizer(model, cfg.optimizer)
# 工作流对应的 dataloader 初始化
data_loaders = [
        build_dataloader(
            ds,
            cfg.data.samples_per_gpu,
            cfg.data.workers_per_gpu,
            ...) for ds in dataset
    ]
``
(2) runner 类(训练器)初始化

```python
runner = build_runner(
    # cfg.runner 典型配置为
    # runner = dict(type='EpochBasedRunner', max_epochs=200)
    cfg.runner,
    default_args=dict(
        model=model,
        batch_processor=None,
        optimizer=optimizer,
        logger=logger))

(3)规定一些训练参数

# 注册定制必需的 hook
runner.register_training_hooks(
    # lr相关配置,典型为
    # lr_config = dict(policy='step', step=[100, 150])
    cfg.lr_config,
    # 优化相关配置,例如 grad_clip 等
    optimizer_config,
    # 权重保存相关配置,典型为
    # checkpoint_config = dict(interval=1),每个单位都保存权重
    cfg.checkpoint_config,
    # 日志相关配置
    cfg.log_config,
    ...)

# 注册用户自定义 hook
# 例如想使用 ema 功能,则可以设置 custom_hooks=[dict(type='EMAHook')]
if cfg.get('custom_hooks', None):
    custom_hooks = cfg.custom_hooks
    for hook_cfg in cfg.custom_hooks:
        hook_cfg = hook_cfg.copy()
        priority = hook_cfg.pop('priority', 'NORMAL')
        hook = build_from_cfg(hook_cfg, HOOKS)
        runner.register_hook(hook, priority=priority)

(4)开启训练流
之前的工作都是定义训练内容,此时才是真正开启了训练

runner.run(data_loaders, cfg.workflow)

4.label文件输入输出

mmcv不支持xml格式的label文件,目前只支持 json、yaml、txt 和 pickle。

import mmcv

# 从文件中读取数据
data = mmcv.load('test1.json')
data = mmcv.load('test.yaml')
data = mmcv.load('test.pkl')
# 从文件对象中读取数据
print(data)
with open('test1.json', 'r' ,encoding='utf-8') as f:
    data = mmcv.load(f, file_format='json')
    print(data)

5.图片文件输入输出

语法和opencv很像:

import mmcv

img = mmcv.imread('./test.png')
mmcv.imshow(img)
img = mmcv.imread('./test.png', flag='grayscale')
mmcv.imshow(img)
mmcv.imwrite(img, 'out.jpg')
import cv2
img = cv2.imread("test.png")
imgGrey = cv2.imread("test.png", 0)
cv2.imshow("img", img)
cv2.imshow("imgGrey", imgGrey)
cv2.waitKey()
cv2.imwrite("Copy.jpg", imgGrey)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:41:49  更:2022-04-26 11:43:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:01:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码