ocean::Session

Neurocean大约 7 分钟

ocean::Session

会话管理 More...

#include <Session.hpp>

Public Functions

Name
Session(const std::string & name ="", const std::string & description ="")
构建会话
virtual~Session()
释放会话
Session(const Session & ) =delete
删除拷贝构造
Sessionoperator=(const Session & ) =delete
删除赋值操作
voidreset(const std::string & name ="", const std::string & description ="")
重置会话
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 ="")
构建树突组模型,构建自动加入到会话中
template <class Module ,class ... Args>
std::shared_ptr< Module >
makeModule(const std::string & name ="", Args... args)
构建内部模块,模块自动加入会话中
voidremoveModel(const PNode & model)
从会话中移除模型
PExecutorgetExecutor()
获取执行器
ExecutorStatusgetStatus()
获取执行状态
voidsetThreadNumber(int number)
设置执行线程数
intgetThreadNumber()
获取执行线程数
boolcompile(CompileOption option)
编译模型并进行初始化
voidaddMonitor(PModel model, const std::string & paramName, float windows =0)
添加变量监控
voidaddMonitors(PModel model, std::vector< std::string > monitors, float windows =0)
批量添加变量监控
voidremoveMonitor(PModel model, const std::string & paramName)
移除变量监控
voidremoveMonitors(PModel model, std::vector< std::string > monitors)
批量删除变量监控
CaptureBuffergetCapture(PModel model, const std::string & paramName)
获取变量监控结果
std::vector< CaptureBuffer >getCaptures(PModel model, std::vector< std::string > captures)
批量获取变量监控
boolrun(RunOption & option)
运行模型
boolrun(CompileOption option, RunOption & runOption)
先编译模型,再运行模型
boolpause()
暂停执行
boolcondition(int time)
在指定的时间暂停
boolresume()
继续执行
boolterminate()
终止执行
boolsaveProto(const std::string & filePath)
保存模型描述到Json文件
boolsaveStatus(const std::string & filePath)
保存模型结构和参数西信息到二进制文件中
boolloadStatus(const std::string & filePath, CompileOption option =CompileOption::cpu())
从文件中加载模型参数及状态

Protected Functions

Name
booladdNode(PNode child)
添加子模型
boolcheckName(const std::string & name)
检查名字是否已经存在
std::stringgenerateName(const std::string & name)
获取当前有效名称

Protected Attributes

Name
PIModuleabstractModel
内部抽象模块
PExecutionModelexecutionModel
执行模型

Detailed Description

class ocean::Session;

会话管理

Neurocean使用了模块化的模型组织方式,可以按需灵活进行组合嵌套,提高模块的复用性及灵活性。 为了降低用户的使用入门门槛及使用复杂度,我们将相关功能进行了聚集,保证灵活性的同时实现了接口的统一。 会话机制提供了如下功能:

  • 会话管理,会话多实例支持,会话按需重置;
  • 构建基础模型,并将模型自动加入会话中;
  • 构建模块,并将模块自动加入会话中;
  • 从会话中移除模型;
  • 变量监控;
  • 模型编译及运行;
  • 模型结构及状态保存;

Public Functions Documentation

function Session

explicit Session(
    const std::string & name ="",
    const std::string & description =""
)

构建会话

Parameters:

  • name 会话名称
  • description 会话描述

function ~Session

virtual ~Session()

释放会话

function Session

Session(
    const Session & 
) =delete

删除拷贝构造

function operator=

Session operator=(
    const Session & 
) =delete

删除赋值操作

function reset

void reset(
    const std::string & name ="",
    const std::string & description =""
)

重置会话

Parameters:

  • name 会话名称
  • description 会话描述

Note: 该操作将会清理内部一切模型及状态

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 makeModule

template <class Module ,
class ... Args>
inline std::shared_ptr< Module > makeModule(
    const std::string & name ="",
    Args... args
)

构建内部模块,模块自动加入会话中

Parameters:

  • name 模块实例名称
  • args 参数列表

Template Parameters:

  • Module 模块类型
  • Args 参数类型列表

Return: 模块指针

function removeModel

void removeModel(
    const PNode & model
)

从会话中移除模型

Parameters:

  • model 待移除模型

function getExecutor

PExecutor getExecutor()

获取执行器

Return: 执行器

function getStatus

ExecutorStatus getStatus()

获取执行状态

Return: 执行状态

function setThreadNumber

void setThreadNumber(
    int number
)

设置执行线程数

Parameters:

  • number 线程数

function getThreadNumber

int getThreadNumber()

获取执行线程数

Return: 线程数

function compile

bool compile(
    CompileOption option
)

编译模型并进行初始化

Parameters:

  • option 编译选项

Return: 编译状态

function addMonitor

void addMonitor(
    PModel model,
    const std::string & paramName,
    float windows =0
)

添加变量监控

Parameters:

  • model 模型实例
  • paramName 参数名称
  • windows 缓冲区窗口大小, 为0表示按需进行进行创建

function addMonitors

void addMonitors(
    PModel model,
    std::vector< std::string > monitors,
    float windows =0
)

批量添加变量监控

Parameters:

  • model 模型实例
  • monitors 变量列表
  • windows 缓冲区窗口大小, 为0表示按需进行进行创建

function removeMonitor

void removeMonitor(
    PModel model,
    const std::string & paramName
)

移除变量监控

Parameters:

  • model 模型实例
  • paramName 变量名称

function removeMonitors

void removeMonitors(
    PModel model,
    std::vector< std::string > monitors
)

批量删除变量监控

Parameters:

  • model 模型实例
  • monitors 变量列表

function getCapture

CaptureBuffer getCapture(
    PModel model,
    const std::string & paramName
)

获取变量监控结果

Parameters:

  • model 模型实例
  • paramName 变量名称

Return: 捕获结果

function getCaptures

std::vector< CaptureBuffer > getCaptures(
    PModel model,
    std::vector< std::string > captures
)

批量获取变量监控

Parameters:

  • model 模型
  • captures 变量列表

Return: 捕获结果列表

function run

bool run(
    RunOption & option
)

运行模型

Parameters:

  • option 运行选项

Return: 运行是否成功

function run

bool run(
    CompileOption option,
    RunOption & runOption
)

先编译模型,再运行模型

Parameters:

  • option 编译选项
  • runOption 运行选项

Return: 运行是否成功

function pause

bool pause()

暂停执行

Return: 是否暂停成功

模型内部完成当前执行后暂停, 用于异步暂定模型执行,调用run或pause不会是同一个线程

function condition

bool condition(
    int time
)

在指定的时间暂停

Parameters:

  • time 暂停时间节点

Return: 添加设置是否成功

function resume

bool resume()

继续执行

Return: 继续执行是否成功

function terminate

bool terminate()

终止执行

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: 加载是否成功

Protected Functions Documentation

function addNode

bool addNode(
    PNode child
)

添加子模型

Parameters:

  • child 待添加模型

Return: 添加是否成功

function checkName

bool checkName(
    const std::string & name
)

检查名字是否已经存在

Parameters:

  • name 名称

Return: 是否存在

function generateName

std::string generateName(
    const std::string & name
)

获取当前有效名称

Parameters:

  • name 名称

Return: 有效名称

Protected Attributes Documentation

variable abstractModel

PIModule abstractModel;

内部抽象模块

variable executionModel

PExecutionModel executionModel;

执行模型


Updated on 2022-08-19 at 17:14:26 +0800

上次编辑于:
贡献者: damone