ocean::AbstractModule

Neurocean大约 6 分钟

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 boolbuild() =0
模型构造抽象接口, 在该模块中完成对模型的创建
size_tsize()
获取字模型的数量
PNodeget(const std::string & name)
根据名称获取子模型的实例
booladd(const PNode & child)
添加子模型
boolremove(const PNode & child)
移除子模型
boolremove(const std::string & name)
移除子模型
PProxyInputin(const std::string & name)
获取模块的代理输入端口
PProxyOutputout(const std::string & name)
获取模块的代理输出端口
boolsaveProto(const std::string & filePath)
保存模型描述到Json文件
boolsaveStatus(const std::string & filePath)
保存模型结构和参数信息到二进制文件中
boolloadStatus(const std::string & filePath, CompileOption option =CompileOption::cpu())
从文件中加载模型参数及状态
PExecutorgetExecutor()
获取模型执行器
PIModulegetAbstractModel()
获取内部抽象模型指针
PExecutionModelgetExecutionModel()
获取执行模型
template <class Model ,class ... Args>
std::shared_ptr< Model >
make(Args ... args)
创建独立模块接口,可单独使用

Protected Functions

Name
voidsetExecutionModel(PExecutionModel pExecutionModel)
设置执行模型
boolcheckName(const std::string & name)
检查名字是否已经存在
std::stringgenerateName(const std::string & name)
获取当前有效名称
PModelmakeModel(const std::string & operation, Arguments & args, const std::string & name ="")
构建基础模型,模型将自动加入模块中
PNeuronGroupmakeNeuronGroup(const std::string & operation, Arguments & args, const std::string & name ="")
构建神经元组模型,模型自动加入模块中
PSynapseGroupmakeSynapseGroup(const std::string & operation, Arguments & args, const std::string & name ="")
构建突触组模型,模型自动加入模块中
PDendriteGroupmakeDendriteGroup(const std::string & operation, Arguments & args, const std::string & name ="")
构建树突组模型,构建自动加入到模块中
PProxyInputmakeInput(const std::string & name)
构建代理输入端口,端口自动加入模块中
PProxyOutputmakeOutput(const std::string & name)
构建代理输出端口,端口自动加入模块中
template <class Module ,class ... Args>
std::shared_ptr< Module >
makeModule(const std::string & name, Args... args)
构建内部模块,模块自动加入模块中

Protected Attributes

Name
PExecutionModelexecutionModel
执行模块指针

Friends

Name
classPublicSession
Friend class list
classPublicAbstractModule

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
获取节点描述
voidsetDescription(const std::string & description)
设置节点描述
PModelBasegetModelBase()
获取内部基类指针

Protected Attributes inherited from ocean::Node

Name
PModelBasemodel
内部模块指针

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

上次编辑于:
贡献者: damone