- 
                Notifications
    
You must be signed in to change notification settings  - Fork 2.1k
 
Module
class Module构造函数
Module() == default;创建一个空Module
参数:无
返回:Module对象
析构函数
virtual ~Module() == default;virtual std::vector<Express::VARP> onForward(const std::vector<Express::VARP>& inputs) = 0;模块前向传播,返回多个结果变量
参数:
- 
inputs前向传播输入变量 
返回:前向传播输出变量
Express::VARP forward(Express::VARP input);模块前向传播,返回一个结果变量
参数:
- 
input前向传播输入变量 
返回:前向传播输出变量
std::vector<Express::VARP> parameters() const;获取Module的参数
参数:无
返回:Module的参数
bool loadParameters(const std::vector<Express::VARP>& parameters);加载现有的参数
参数:
- 
parameters参数值 
返回:是否成功加载参数
void setIsTraining(const bool isTraining);设置Module的训练状态
参数:
- 
isTraining是否为训练模式 
返回:void
bool getIsTraining();获取_Module的是否为训练模式
参数:无
返回:Module是否为训练模式,是则返回true,不是返回false
void clearCache();清除Module的缓存,并递归清除子模块的缓存
参数:无
返回:void
const std::string& name() const {
    return mName;
};获取Module的名称
参数:无
返回:Module的名称
void setName(std::string name) {
    mName = std::move(name);
};设置Module的名称
参数:
- 
name模块的名称 
返回:void
const std::string type() const {
    return mType;
};获取Module的类型
参数:无
返回:Module的类型
void setType(std::string type) {
    mType = std::move(type);
};设置Module的类型
参数:
- 
type模块的类型 
返回:void
int addParameter(Express::VARP parameter);添加参数
参数:
- 
parameter参数值 
返回:添加前的参数数量
void setParameter(Express::VARP parameter, int index);设置参数
参数:
- 
type参数值 - 
index参数的位置索引 
返回:void
static Module* createEmpty(const std::vector<Express::VARP>& parameters);根据参数创建一个空的Module对象
参数:
- 
parameters参数值 
返回:创建的空的Module对象
static Module* load(const std::vector<std::string>& inputs, const std::vector<std::string>& outputs, const uint8_t* buffer, size_t length, const Config* config = nullptr);加载module对象
参数:
- 
inputsmodule输入信息 - 
outputsmodule输出信息 - 
buffer缓冲信息 - 
length信息长度 - 
config其他配置项 
返回:module对象
static Module* load(const std::vector<std::string>& inputs, const std::vector<std::string>& outputs, const char* fileName, const Config* config = nullptr);加载module对象
参数:
- 
inputsmodule输入信息 - 
outputsmodule输出信息 - 
fileName文件名 - 
config其他配置项 
返回:module对象
static Module* load(const std::vector<std::string>& inputs, const std::vector<std::string>& outputs, const char* fileName, const std::shared_ptr<MNN::Express::Executor::RuntimeManager> rtMgr, const Config* config = nullptr);加载module对象
参数:
- 
inputsmodule输入信息 - 
outputsmodule输出信息 - 
fileName文件名 - 
rtMgr运行时资源 - 
config其他配置项 
返回:module对象
static Module* load(const std::vector<std::string>& inputs, const std::vector<std::string>& outputs, const uint8_t* buffer, size_t length, const std::shared_ptr<MNN::Express::Executor::RuntimeManager> rtMgr, const Config* config = nullptr);加载module对象
参数:
- 
inputsmodule输入信息 - 
outputsmodule输出信息 - 
buffer缓冲信息 - 
length信息长度 - 
rtMgr运行时资源 - 
config其他配置项 
返回:module对象
static Module* extract(std::vector<Express::VARP> inputs, std::vector<Express::VARP> outputs, bool fortrain, const std::map<std::string, SubGraph>& subGraph = {});加载module对象
参数:
- 
inputsmodule输入信息 - 
outputsmodule输出信息 fortrain- 
subGraph子图 
返回:module对象
static Module* clone(const Module* module, const bool shareParams = false);克隆Module对象
参数:
- 
modulemodule对象实例 - 
shareParams是否共享参数,默认为false 
返回:Module对象实例
const Info* getInfo() const;获取Module的信息
参数:无
返回:Module的信息
CloneContext() = default;克隆Module的内容
参数:无
返回:Module的内容
explicit CloneContext(const bool shareParams)
        : mShareParams(shareParams) {};克隆Module的内容
参数:
- 
shareParams是否共享参数 
返回:Module的内容
析构函数
virtual ~CloneContext() = default;const bool shareParams() const { return mShareParams; };是否共享参数
参数:无
返回:共享返回true,反之则为false
EXPRP getOrClone(const EXPRP expr);获取克隆的EXPRP对象
参数:
- 
exprEXPRP对象值 
返回:EXPRP对象
VARP getOrClone(const VARP var);获取克隆的VARP对象
参数:
- 
exprVARP对象值 
返回:VARP对象
virtual Module* clone(CloneContext* ctx) const {
    return nullptr;
};克隆Module对象
参数:
- 
ctx克隆的上下文 
返回:Module对象
void registerModel(const std::vector<std::shared_ptr<Module>>& children);注册子模块
参数:
- 
children子模块列表 
返回:void
static void destroy(Module* m);销毁Module对象
参数:
- 
mModule对象 
返回:void