欢迎使用 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:

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

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

import megengine as mge

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

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

Note

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

对于 Windows 10 用户,建议通过安装 WSL(Windows Subsystem for Linux) 进行体验。