megengine

import megengine as mge  # NOT as torch - Even if we look like twins.

注解

MGEmgeMegEngine 的官方缩写,我们建议相关衍生库将其作为前缀。

警告

不要尝试 [ import megengine as torch ] 这是行不通的! ( /ω\)

  • MegEngine 的部分 API 设计借鉴了 PyTorch, 我们相信这对开发者而言会更加友好;

  • 但二者的底层设计完全不同,MegEngine is just MegEngine.

Tensor

from megengine import Tensor
from megengine import tensor  # tensor is an alias of Tensor

MegEngine 中提供了一种名为 “张量” (Tensor )的数据结构, 区别于物理学中的定义,其概念与 NumPy 中的 ndarray 更加相似, 即张量是一类多维数组,其中每个元素的数据类型和空间大小一致,而数据值可以不同。

Tensor

一个张量对象表示固定大小元素的多维同构数组。

Parameter

一类表示模块参数的张量。

上面 Parameter 可以被看作是一种特殊的 Tensor, 通常用来表示神经网络中的参数。

想要了解更多,请参考 深入理解 Tensor 数据结构

Core

megengine.core 子包中实现了 MegEngine 的核心功能,包括 Tensor 和 Operators 组成的计算图,自动求导机制等等。 MegEngine 用户在日常使用中无需直接调用它,因为里面的功能实现已经被其它面向用户的常用子包如进行了封装。 但出于方便 MegEngine 开发者检索的目的,我们也将 core 中的 API 列举在此处。

警告

我们不承诺 core 模块中 API 的兼容性和稳定性。

注解

任何 MegEngine 的用户都可以尝试成为我们的开发人员,就好像你理解了 Tensor 和 Core 之后, 便可以尝试去理解 NVIDIA 的 TensorCore 了。冷笑话 +1 ( ̄▽ ̄)”

注解

你可能在 MegEngine 源代码中经常会看到诸如 MegBrain, MGB 等字样。 不用担心,MegBrain 是 MegEngine 的内部代号,二者某种程度上是等价的。

模型保存与加载

save

把对象保存成磁盘文件。

load

从文件中加载用save()保存的对象。

设备相关

is_cuda_available

cuda设备是否在当前机器可用。

get_device_count

获取当前系统中的设备数量。

get_default_device

查询默认的计算结点。

set_default_device

设置默认的计算节点。

get_mem_status_bytes

以字节为单位获取计算设备上的总内存和可用内存。

set_prealloc_config

对原始设备的内存分配器指定预先分配的方案。

日志相关

enable_debug_log

设置日志记录级别(logging level)以调试所有组件。

get_logger

按照给定名称获取megengine日志。

set_log_file

设置日志的输出文件。

set_log_level

设置默认的日志记录级别。

查询版本信息

__version__ (MegEngine 版本号)