ocean::AbstractModule
ocean::AbstractModule
抽象模块,抽象模块为模型的组织提供灵活的管理及扩展能力 More...
#include <AbstractModule.hpp>
Inherits from ocean::Node, std::enable_shared_from_this< Node >
Public Functions
Name | |
---|---|
AbstractModule(const std::string & name, const std::string & description) 构建抽象模型 | |
virtual | ~AbstractModule() 释放抽象模型 |
virtual bool | build() =0 模型构造抽象接口, 在该模块中完成对模型的创建 |
size_t | size() 获取字模型的数量 |
PNode | get(const std::string & name) 根据名称获取子模型的实例 |
bool | add(const PNode & child) 添加子模型 |
bool | remove(const PNode & child) 移除子模型 |
bool | remove(const std::string & name) 移除子模型 |
PProxyInput | in(const std::string & name) 获取模块的代理输入端口 |
PProxyOutput | out(const std::string & name) 获取模块的代理输出端口 |
bool | saveProto(const std::string & filePath) 保存模型描述到Json文件 |
bool | saveStatus(const std::string & filePath) 保存模型结构和参数信息到二进制文件中 |
bool | loadStatus(const std::string & filePath, CompileOption option =CompileOption::cpu()) 从文件中加载模型参数及状态 |
PExecutor | getExecutor() 获取模型执行器 |
PIModule | getAbstractModel() 获取内部抽象模型指针 |
PExecutionModel | getExecutionModel() 获取执行模型 |
template <class Model ,class ... Args> std::shared_ptr< Model > | make(Args ... args) 创建独立模块接口,可单独使用 |
Protected Functions
Name | |
---|---|
void | setExecutionModel(PExecutionModel pExecutionModel) 设置执行模型 |
bool | checkName(const std::string & name) 检查名字是否已经存在 |
std::string | generateName(const std::string & name) 获取当前有效名称 |
PModel | makeModel(const std::string & operation, Arguments & args, const std::string & name ="") 构建基础模型,模型将自动加入模块中 |
PNeuronGroup | makeNeuronGroup(const std::string & operation, Arguments & args, const std::string & name ="") 构建神经元组模型,模型自动加入模块中 |
PSynapseGroup | makeSynapseGroup(const std::string & operation, Arguments & args, const std::string & name ="") 构建突触组模型,模型自动加入模块中 |
PDendriteGroup | makeDendriteGroup(const std::string & operation, Arguments & args, const std::string & name ="") 构建树突组模型,构建自动加入到模块中 |
PProxyInput | makeInput(const std::string & name) 构建代理输入端口,端口自动加入模块中 |
PProxyOutput | makeOutput(const std::string & name) 构建代理输出端口,端口自动加入模块中 |
template <class Module ,class ... Args> std::shared_ptr< Module > | makeModule(const std::string & name, Args... args) 构建内部模块,模块自动加入模块中 |
Protected Attributes
Name | |
---|---|
PExecutionModel | executionModel 执行模块指针 |
Friends
Name | |
---|---|
class | PublicSession Friend class list |
class | PublicAbstractModule |
Additional inherited members
Public Functions inherited from ocean::Node
Name | |
---|---|
Node(PModelBase model) 构造节点 | |
virtual | ~Node() 节点析构函数 |
const std::string & | getName() const 获取节点名称 |
const std::string & | getDescription() const 获取节点描述 |
void | setDescription(const std::string & description) 设置节点描述 |
PModelBase | getModelBase() 获取内部基类指针 |
Protected Attributes inherited from ocean::Node
Name | |
---|---|
PModelBase | model 内部模块指针 |
Detailed Description
class ocean::AbstractModule;
抽象模块,抽象模块为模型的组织提供灵活的管理及扩展能力
- 可以容纳基础模型或其它模块;
- 本身作为一个模块被应用,可以将内部的输入输出添加代理端口进行封装;
- 需要运行的基础模型由内部及外部的关联性确定,淡化了网络的概念;
Public Functions Documentation
function AbstractModule
AbstractModule(
const std::string & name,
const std::string & description
)
构建抽象模型
Parameters:
- name 名称
- description 描述
function ~AbstractModule
virtual ~AbstractModule()
释放抽象模型
function build
virtual bool build() =0
模型构造抽象接口, 在该模块中完成对模型的创建
Return: 创建释放成功
function size
size_t size()
获取字模型的数量
Return:
function get
PNode get(
const std::string & name
)
根据名称获取子模型的实例
Parameters:
- name 名称
Return: 子模型
function add
bool add(
const PNode & child
)
添加子模型
Parameters:
- child 待添加模型
Return: 添加是否成功
function remove
bool remove(
const PNode & child
)
移除子模型
Parameters:
- child 子模型
Return: 移除是否成功
function remove
bool remove(
const std::string & name
)
移除子模型
Parameters:
- name 模型名称
Return: 移除是否成功
function in
PProxyInput in(
const std::string & name
)
获取模块的代理输入端口
Parameters:
- name 端口名称
Return: 代理端口
function out
PProxyOutput out(
const std::string & name
)
获取模块的代理输出端口
Parameters:
- name 端口名称
Return: 代理端口
function saveProto
bool saveProto(
const std::string & filePath
)
保存模型描述到Json文件
Parameters:
- filePath 保存路径
Return: 是否保存成功
function saveStatus
bool saveStatus(
const std::string & filePath
)
保存模型结构和参数信息到二进制文件中
Parameters:
- filePath 保存路径
Return: 是否保存成功
function loadStatus
bool loadStatus(
const std::string & filePath,
CompileOption option =CompileOption::cpu()
)
从文件中加载模型参数及状态
Parameters:
- filePath 文件路径
- option 模型编译选项
Return: 加载是否成功
function getExecutor
PExecutor getExecutor()
获取模型执行器
Return: 执行器
function getAbstractModel
PIModule getAbstractModel()
获取内部抽象模型指针
Return: 内部抽象模型指针
function getExecutionModel
PExecutionModel getExecutionModel()
获取执行模型
Return: 执行模型
function make
template <class Model ,
class ... Args>
static std::shared_ptr< Model > make(
Args ... args
)
创建独立模块接口,可单独使用
Template Parameters:
- Model 模型类型
- Args 参数列表
Return: 模块实例
Protected Functions Documentation
function setExecutionModel
void setExecutionModel(
PExecutionModel pExecutionModel
)
设置执行模型
Parameters:
- pExecutionModel 执行模型
function checkName
bool checkName(
const std::string & name
)
检查名字是否已经存在
Parameters:
- name 名称
Return: 是否存在
function generateName
std::string generateName(
const std::string & name
)
获取当前有效名称
Parameters:
- name 名称
Return: 有效名称
function makeModel
PModel makeModel(
const std::string & operation,
Arguments & args,
const std::string & name =""
)
构建基础模型,模型将自动加入模块中
Parameters:
- operation 操作名称
- args 参数列表
- name 实例名称
Return: 模型
function makeNeuronGroup
PNeuronGroup makeNeuronGroup(
const std::string & operation,
Arguments & args,
const std::string & name =""
)
构建神经元组模型,模型自动加入模块中
Parameters:
- operation 操作名称
- args 参数列表
- name 实例名称
Return: 神经元组模型
function makeSynapseGroup
PSynapseGroup makeSynapseGroup(
const std::string & operation,
Arguments & args,
const std::string & name =""
)
构建突触组模型,模型自动加入模块中
Parameters:
- operation 操作名称
- args 参数列表
- name 实例名称
Return: 突触组模型
function makeDendriteGroup
PDendriteGroup makeDendriteGroup(
const std::string & operation,
Arguments & args,
const std::string & name =""
)
构建树突组模型,构建自动加入到模块中
Parameters:
- operation 操作名称
- args 参数列表
- name 实例名称
Return: 树突组模型
function makeInput
PProxyInput makeInput(
const std::string & name
)
构建代理输入端口,端口自动加入模块中
Parameters:
- name 端口名称
Return: 输入端口
function makeOutput
PProxyOutput makeOutput(
const std::string & name
)
构建代理输出端口,端口自动加入模块中
Parameters:
- name 端口名称
Return: 输出端口
function makeModule
template <class Module ,
class ... Args>
std::shared_ptr< Module > makeModule(
const std::string & name,
Args... args
)
构建内部模块,模块自动加入模块中
Parameters:
- name 模块实例名称
- args 参数列表
Template Parameters:
- Module 模块类型
- Args 参数类型列表
Return: 模块指针
Protected Attributes Documentation
variable executionModel
PExecutionModel executionModel;
执行模块指针
Friends
friend PublicSession
friend class PublicSession(
PublicSession
);
Friend class list
friend PublicAbstractModule
friend class PublicAbstractModule(
PublicAbstractModule
);
Updated on 2022-08-19 at 17:14:26 +0800