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>

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

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

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

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

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

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

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多