1. 前言
在MXNet中处处都用到了registry,因此有必要了解一下它的实现和用法。
2. registry.h
class Registry
:类Registry
用于注册全局的单例类。在MXNet中,各种单例类都是通过一个宏来完成注册的。
-
entry_list_
:将注册的EntryType
保存在该向量中 -
const_list_
: -
fmap_
:名字到EntryType*
的映射 -
AddAlias
:将别名注册 -
__REGISTER__
:注册
FunctionRegEntryBase
是注册函数的基本类,它提供了几个函数
-
set_body
:设置函数体 -
description
:定义描述字符串 -
add_argument
:将一个参数加入arguments
-
add_arguments
:将一组参数加入到arguments
中
-
DMLC_REGISTRY_ENABLE:当我们需要一个单例模式的时候,就要将它使用该宏来初始化,该宏定义了实例化的
Registry
的Get()
方法,方法返回该注册单例的静态变量 -
DMLC_REGISTRY_REGISTER(EntryType, EntryTypeName, Name):将Name通过函数
__REGISTER__
函数来进行注册,