megengine.hub package

megengine.hub.const

megengine.hub.exceptions

exception megengine.hub.exceptions.FetcherError[源代码]

基类:Exception

获取相关错误的基类。

exception megengine.hub.exceptions.GitCheckoutError[源代码]

基类:megengine.hub.exceptions.FetcherError

git checkout产生异常。

exception megengine.hub.exceptions.GitPullError[源代码]

基类:megengine.hub.exceptions.FetcherError

git pull产生异常。

exception megengine.hub.exceptions.InvalidGitHost[源代码]

基类:megengine.hub.exceptions.FetcherError

由于某些原因,提供的git host无效。

exception megengine.hub.exceptions.InvalidProtocol[源代码]

基类:megengine.hub.exceptions.FetcherError

由于某些原因,提供的协议无效。

exception megengine.hub.exceptions.InvalidRepo[源代码]

基类:megengine.hub.exceptions.FetcherError

由于某些原因,所提供的代码仓库无效。

megengine.hub.fetcher

class megengine.hub.fetcher.GitHTTPSFetcher[源代码]

基类:megengine.hub.fetcher.RepoFetcherBase

classmethod fetch(cls, git_host, repo_info, use_cache=False, commit=None, silent=True)[源代码]

使用SSH协议拉取远端git代码仓库。

参数
  • git_host (str) – git repo的主机地址。例如:github.com

  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • silent (bool) – 是否通过Linux “管道” PIPE接受subprocess的stdout和stderr,而不是在屏幕上显示它们。

返回类型

str

返回

repo代码的存储路径。

class megengine.hub.fetcher.GitSSHFetcher[源代码]

基类:megengine.hub.fetcher.RepoFetcherBase

classmethod fetch(cls, git_host, repo_info, use_cache=False, commit=None, silent=True)[源代码]

使用SSH协议拉取远端git代码仓库

参数
  • git_host (str) – git repo的主机地址。例如:github.com

  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • silent (bool) – 是否通过Linux “管道” PIPE接受subprocess的stdout和stderr,而不是在屏幕上显示它们。

返回类型

str

返回

repo代码的存储路径。

class megengine.hub.fetcher.RepoFetcherBase[源代码]

基类:object

classmethod fetch(git_host, repo_info, use_cache=False, commit=None, silent=True)[源代码]
返回类型

str

megengine.hub.hub

megengine.hub.hub.help(repo_info, entry, git_host='github.com', use_cache=True, commit=None, protocol='HTTPS')[源代码]

通过以下步骤,该函数返回入口点 entry 的docstring :

  1. 拉取下来git和repo_info指定的仓库代码。

  2. 加载仓库中hubconf.py所定义的条目

  3. 返回函数入口的docstring(文档字符串)。

参数
  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • entry (str) – 一个在hubconf.py中定义的入口点

  • git_host (str) – git repo的主机地址。例如:github.com

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • protocol (str) – 获得代码仓库所使用的协议,其中,HTTPS协议只支持github公共仓库。该参数值可为HTTPS 或 SSH。

返回类型

str

返回

入口点 entry 的文档字符串。

megengine.hub.hub.import_module(repo_info, git_host, use_cache=True, commit=None, protocol='HTTPS')[源代码]

以类似python import的方式 import hubmodule。

参数
  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • git_host (str) – git repo的主机地址。例如:github.com

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • protocol (str) – 获得代码仓库所使用的协议,其中,HTTPS协议只支持github公共仓库。该参数值可为HTTPS 或 SSH。

返回

一个python模块。

megengine.hub.hub.list(repo_info, git_host='github.com', use_cache=True, commit=None, protocol='HTTPS')[源代码]

列出仓库 hubconf 中指定的所有可用的入口点。

参数
  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • git_host (str) – git repo的主机地址。例如:github.com

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • protocol (str) – 获得代码仓库所使用的协议,其中,HTTPS协议只支持github公共仓库。该参数值可为HTTPS 或 SSH。

返回类型

List[str]

返回

该模型的所有入口点(entrypoint)名称。

megengine.hub.hub.load(repo_info, entry, *args, git_host='github.com', use_cache=True, commit=None, protocol='HTTPS', **kwargs)[源代码]

从GitHub或GitLab中加载具有预训练权重的模型。

参数
  • repo_info (str) – 格式为 "repo_owner/repo_name[:tag_name/:branch_name]" 的字符串,其中tag/branch是可选的。 若不指明,则默认分支是 master 。 例如: "brain_sdk/MegBrain[:hub]"

  • entry (str) – 一个在hubconf中定义的入口点。

  • git_host (str) – git repo的主机地址。例如:github.com

  • use_cache (bool) – 选择使用本地缓存的代码或完全重新拉取代码。

  • commit (Optional[str]) – GitHub或GitLab的commit id。

  • protocol (str) – 获得代码仓库所使用的协议,其中,HTTPS协议只支持github公共仓库。该参数值可为HTTPS 或 SSH。

返回类型

Any

返回

单个模型,具有对应的预训练的权重。

megengine.hub.hub.load_serialized_obj_from_url(url, model_dir=None)[源代码]

加载给定URL中的MegEngine序列化对象。

如果对象已经在 model_dir 中,它会被反序列化并返回。如果没有指定 model_dir 时, 会被默认为 MGE_HOME / serialized

参数
  • url (str) – 序列化对象所在的url地址。

  • model_dir – 缓存目标序列文件的路径。

返回类型

Any

返回

被加载入的对象。

class megengine.hub.hub.pretrained(url)[源代码]

基类:object

装饰器,用来标识预训练权重的 url,以便于载入时自动下载权重。

例如,我们可以按以下方式装饰一个resnet18函数

@hub.pretrained("https://url/to/pretrained_resnet18.pkl")
def resnet18(**kwargs):
    return ResNet(BasicBlock, [2, 2, 2, 2], **kwargs)

当被装饰的函数具有参数 pretrained=True 时,M​​egEngine则自动下载并对返回的模型填入预训练的权重。

megengine.hub.tools

megengine.hub.tools.cd(target)[源代码]

将当前路径改为目标路径。

参数

target (str) – 目标路径。

返回类型

Iterator[None]

megengine.hub.tools.check_module_exists(module)[源代码]

检查Python模块是否存在。

参数

module (str) – 模块的名称。

返回类型

bool

megengine.hub.tools.load_module(name, path)[源代码]

加载由 namepath 指定的模块。

参数
  • name (str) – 模块名称。

  • path (str) – 模块路径。

返回类型

module