欢迎使用 MegEngine

MegEngine 简介

MegEngine 是旷视完全自主研发的深度学习框架,中文名为“天元”,是旷视 AI 战略的重要组成部分,负责 AI 三要素(算法,算力,数据)中的“算法”。MegEngine 的研发始于 2014 年,旷视内部全员使用。如今,旷视的所有算法均基于 MegEngine 进行训练和推理。

MegEngine 是工业级的深度学习框架,架构先进,性能优异,移植性强。MegEngine 强调产品化能力,在此基础上保证研发过程的快捷便利。

MegEngine 具有几个特点。一是“训练推理一体”。MegEngine 支持多种硬件平台( CPU,GPU,ARM )。不同硬件上的推理框架和 MegEngine 的训练框架无缝衔接。部署时无需做额外的模型转换,速度/精度和训练保持一致,有效解决了 AI 落地中“部署环境和训练环境不同,部署难”的问题。

二是“动静合一”。动态图易调试,静态图好部署。鱼和熊掌如何兼得,是现代深度学习框架的核心诉求。MegEngine 在静态图的基础上,逐渐加入支持完整动态图的功能。在动态模式下加速研发过程,无需改变模型代码一键切换至静态模式下的部署,为科研和算法工程师同时提供便利。

三是“兼容并包”。MegEngine 的顶层 API 基于 Python,采取了类似于 PyTorch 的风格。简单直接,易于上手,便于现有项目进行移植或整合。为更好地帮助学习实践,MegEngine 同时提供了“开箱即用”的在线深度学习工具 MegStudio ,和汇聚了顶尖算法和模型的预训练模型集合 Model Hub

四是“灵活高效”。MegEngine 底层的高性能算子库对于不同的硬件架构进行了深度适配和优化,并提供高效的亚线性内存优化策略,对于生产环境繁多的计算设备提供了极致的性能保证。高效易用的分布式训练实现能有效支持富有弹性的大规模训练。

MegEngine 的上述特点使其成为了最适合工业级研发的框架之一。更多特性还在持续开发中,也欢迎更多的开发者加入。

学习 MegEngine

官方文档分为 基础学习进阶学习 两大部分。

基础部分循序渐进地介绍 MegEngine 中的基本概念和用法,从计算图、张量和算子开始,介绍网络的搭建,数据的加载和处理,网络训练和测试,动态图和静态图。读者只需要了解 Python 就能顺利学习这部分内容。对于有其它深度学习框架(如 PyTorch )使用经验的读者,学习这部分内容会非常轻松。

进阶部分介绍了 MegEngine 中各种高级用法和话题,内容相对独立,供有经验的开发者参考。目前包括分布式训练,C++ 环境中的模型部署等。更多的进阶内容后续会陆续补充。

详细的编程接口说明请参见 API Reference

推荐读者通过在线深度学习工具 MegStudio 进行更为便捷的学习。

安装说明

您可以通过包管理器 pip 安装 MegEngine:

  1. pip3 install megengine -f https://megengine.org.cn/whl/mge.html

再在 python 中导入 megengine 验证安装成功:

  1. import megengine as mge

目前 MegEngine 安装包集成了使用 GPU 运行代码所需的 CUDA 10.1 环境,不区分 CPU 版本和 GPU 版本。如果您想运行 GPU 程序,请保证机器本身配有 NVIDIA 显卡,并且 驱动 版本高于 418.x 。

对于大部分用户,通过包管理器安装打包完毕的 MegEngine 足够应对所有使用需求了,但是如果需要使用最近更新还未发布的特性,则可能需要从源码编译安装。另外如果对 模型部署 有需求或者希望参与到 MegEngine 的核心开发工作中,也需要了解从源码进行安装。详细内容请参考 README

Note

MegEngine 目前仅支持 Linux 环境下安装,以及 Python3.5 及以上的版本(不支持 Python2 )。

对于 Windows 10 用户,可以通过安装 WSL(Windows Subsystem for Linux) 进行体验,但是由于 WSL 还不支持访问 GPU,所以目前只能使用 CPU 运行 MegEngine 程序。