training_extensions

training_extensions

OpenVINO框架助力快速训练和部署计算机视觉模型

OpenVINO Training Extensions是一个专注计算机视觉的低代码迁移学习框架。它基于PyTorch和OpenVINO工具包开发,提供简洁API和CLI命令,支持分类、检测、分割等多种任务的模型训练、推理和部署。该框架具备自动配置、分布式训练、混合精度等功能,可快速构建高效准确的视觉AI模型。

OpenVINO计算机视觉迁移学习深度学习模型训练Github开源项目
<div align="center">

OpenVINO™ 训练扩展


主要特性安装文档许可证

PyPI

python pytorch openvino

Codecov OpenSSF Scorecard Pre-Merge Test Build Docs License Downloads


</div>

简介

OpenVINO™ 训练扩展是一个用于计算机视觉的低代码迁移学习框架。该框架的API和CLI命令使用户能够轻松快速地训练、推理、优化和部署模型,即使在深度学习领域经验不足的情况下也能使用。OpenVINO™ 训练扩展基于PyTorchOpenVINO™ toolkit,提供了多种模型架构、学习方法和任务类型的组合。

OpenVINO™ 训练扩展为每种支持的任务类型提供了一个"配方",其中包含构建模型所需的全部信息。模型模板在各种数据集上经过验证,可作为获取最佳通用模型的一站式商店。如果您是经验丰富的用户,可以基于torchvisionmmcvOpenVINO Model Zoo (OMZ)配置自己的模型。

此外,OpenVINO™ 训练扩展还提供了自动配置功能,以提高易用性。框架将分析您的数据集,识别最适合的模型,并确定最佳输入尺寸设置和其他超参数。开发团队正在不断扩展这些自动配置功能,以使训练尽可能简单,使得单个CLI命令就能获得准确、高效且稳健的模型,可直接集成到您的项目中。

主要特性

OpenVINO™ 训练扩展支持以下计算机视觉任务:

  • 分类,包括多类、多标签和层次图像分类任务。
  • 目标检测,包括旋转边界框支持
  • 语义分割
  • 实例分割,包括分块算法支持
  • 动作识别,包括动作分类和检测
  • 异常识别任务,包括异常分类、检测和分割
  • 视觉提示任务,包括分割任意模型、零样本视觉提示

OpenVINO™ 训练扩展支持以下学习方法

  • 监督学习,增量训练,包括类增量场景。

OpenVINO™ 训练扩展提供以下易用性功能:

  • 自动配置。OpenVINO™ 训练扩展分析提供的数据集并选择合适的任务和模型,以提供最佳的精度/速度平衡。
  • Datumaro 数据前端:OpenVINO™ 训练扩展支持每个任务最常见的学术领域数据集格式。我们不断努力扩展支持的格式,以提供更多数据集格式选择的自由。
  • 分布式训练,当您拥有多个 GPU 时可加速训练过程
  • 混合精度训练,以节省 GPU 内存并使用更大的批量大小
  • 集成高效的超参数优化模块(HPO)。通过数据集代理和内置超参数优化器,与其他现成工具相比,您可以获得更快的超参数优化。超参数优化根据您的资源预算动态调度。

安装

请参阅安装指南。 如果您想对库进行修改,建议进行本地安装。

<details> <summary>从 PyPI 安装</summary> 使用 pip 安装库是开始使用 otx 最简单的方法。
pip install otx[base]

对于 zsh 用户,可以使用以下替代方法:

pip install 'otx[base]'
</details> <details> <summary>从源代码安装</summary> 要从源代码安装,您需要克隆存储库并使用 pip 通过可编辑模式安装库。
# 强烈建议使用虚拟环境 # 使用 conda yes | conda create -n otx_env python=3.10 conda activate otx_env # 或使用您喜欢的虚拟环境 # ... # 克隆存储库并以可编辑模式安装 git clone https://github.com/openvinotoolkit/training_extensions.git cd training_extensions pip install -e .[base] # 对于 zsh:pip install -e '.[base]'
</details>

快速入门

OpenVINO™ 训练扩展支持基于 API 和 CLI 的训练。API 更灵活,允许更多定制,而 CLI 训练利用命令行界面,对于那些希望直接使用 OpenVINO™ 训练扩展的人来说可能更容易。

对于 CLI,以下命令提供子命令、如何使用每个子命令以及更多信息:

# 查看可用的子命令 otx --help # 打印来自 train 子命令的帮助信息 otx train --help # 打印更多详细的帮助信息 otx train --help -v # 打印必需参数 otx train --help -vv # 打印所有可配置参数

您可以在 CLI 指南API 快速指南 中找到带有示例的详细信息。

以下是如何使用自动配置进行训练,这是为具有数据集和任务的用户提供的:

<details> <summary>通过 API 训练</summary>
# 通过 Engine 使用自动配置进行训练 from otx.engine import Engine engine = Engine(data_root="data/wgisd", task="DETECTION") engine.train()

更多示例,请参阅文档:CLI 指南

</details> <details> <summary>通过 CLI 训练</summary>
otx train --data_root data/wgisd --task DETECTION

更多示例,请参阅文档:API 快速指南

</details>

除了上述示例外,请参阅文档以获取有关使用自定义模型、训练参数覆盖以及每种任务类型的教程等内容。


更新

v2.1.0 (2024 年第三季度)

注意

OpenVINO™ 训练扩展 2.1.0 版本不包含最新的功能和安全更新。OpenVINO™ 训练扩展 2.2.0 版本计划于 2024 年 9 月发布,将包含额外的功能和安全更新。客户应在新版本可用时更新到最新版本。

新功能

  • 添加启用dGPU上OV推理的标志
  • 添加带预热的早停。移除语义分割任务中的强制背景标签
  • 为检测任务启用RTMDet-tiny
  • 添加OTXDataModule中的数据格式验证和更新
  • 添加torchvision.MaskRCNN
  • 为多类分类添加半监督学习(EfficientNet-B0)
  • 解耦动作分类的mmaction (MoviNet, X3D)
  • 为mv3-large、effnet-v2、deit-tiny、dino-v2添加半监督学习算法
  • 为检测任务启用RTMDet-tiny(导出/优化)
  • 在otx/algo/classification/backbones中启用ruff和ruff-format
  • 添加TV MaskRCNN Tile配方
  • 添加旋转检测OV配方

改进

  • 将load_stat_dict更改为on_load_checkpoint
  • 添加try-except以继续运行剩余测试
  • 更新instance_segmentation.py以解决与2.0.0的冲突
  • 更新XPU安装
  • 同步动作分类任务中torch和ov推理的rgb顺序
  • 使性能测试能够加载之前的性能测试以跳过训练阶段
  • 重新启用e2e分类XAI测试
  • 移除动作检测任务支持
  • 提高HPO期间pickle错误日志的可读性并修复小bug
  • 更新RTMDet检查点url
  • 重构分类半监督学习的Torchvision模型
  • 添加覆盖率忽略mm相关代码
  • 添加半监督学习部分文档
  • 重构文档设计并添加内容
  • 在文档中添加自动批量大小的执行示例
  • 为分类添加半监督学习基准测试
  • 在记录指标前将值移至设备
  • 添加.codecov.yaml
  • 更新otx2.1的基准工具
  • 在一处收集预训练权重二进制文件
  • 最小化编译依赖文件
  • 更新README和CODEOWNERS
  • 更新Engine的文档字符串和CLI --help输出
  • 将集成测试与发布分支的可导出代码接口更新对齐
  • 重构异常检测任务的导出器并修复可导出代码的bug
  • 更新pandas版本约束
  • 将更多模型的导出测试纳入test_otx_e2e
  • 将任务分配从Engine移至异常检测模型类
  • 重构检测模块

Bug修复

  • 修复develop和2.0.0之间的冲突
  • 修复多边形掩码
  • 修复vpm集成测试错误
  • 修复异常检测
  • 修复语义分割的bug并在ONNX中启用DINOV2导出
  • 修复一些导出问题。移除EXPORTABLE_CODE作为导出参数
  • 修复load_from_checkpoint以应用原始模型的超参数
  • 修复load_from_checkpoint参数以应用原始模型的超参数
  • 修复ov模型的零样本learn
  • 修复2.1中XAI的各种问题
  • 修复测试以在无mm环境中工作
  • 修复基准代码中的bug
  • 更新可导出代码依赖并修复bug
  • 修复调整大小时获取错误形状的问题
  • 修复检测预测输出
  • 修复RTMDet PTQ性能
  • 修复VPM PTQ上的分段错误
  • 修复NNCF MaskRCNN-Eff准确度下降
  • 修复带半监督学习数据管道的优化
  • 修复MaskRCNN SwinT NNCF准确度下降

已知问题

  • 应用于实例分割任务中maskrcnn_swint的训练后量化(PTQ)优化可能导致准确度显著降低。预计这个问题将在未来版本中通过升级OpenVINO和NNCF得到解决。

发布历史

请参阅CHANGELOG.md


分支

  • develop
    • 主要维护的分支,用于开发未来版本的新功能
  • misc
    • 可以在此分支找到先前开发的模型

许可证

OpenVINO™工具包根据Apache License Version 2.0许可。 通过为项目做出贡献,您同意其中的许可和版权条款,并根据这些条款发布您的贡献。


问题/讨论

请使用Issues标签报告bug、请求功能或提出任何问题。


已知限制

  • misc分支包含基于TensorFlow和PyTorch的模型的训练、评估和导出脚本。 这些脚本尚未准备好用于生产。它们是探索性的,尚未经过验证。

免责声明

英特尔致力于尊重人权并避免参与侵犯人权的行为。 请参阅英特尔的全球人权原则。 英特尔的产品和软件仅用于不会导致或促成违反国际公认人权的应用。


贡献

对于那些希望为该库做出贡献的人,请查看CONTRIBUTING.md以了解详细信息。

感谢您!我们非常感谢您的支持!

<a href="https://github.com/openvinotoolkit/training_extensions/graphs/contributors"> <img src="https://contrib.rocks/image?repo=openvinotoolkit/training_extensions" /> </a>

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多