ocean::Session
ocean::Session
会话管理 More...
#include <Session.hpp>
Public Functions
Name | |
---|---|
Session(const std::string & name ="", const std::string & description ="") 构建会话 | |
virtual | ~Session() 释放会话 |
Session(const Session & ) =delete 删除拷贝构造 | |
Session | operator=(const Session & ) =delete 删除赋值操作 |
void | reset(const std::string & name ="", const std::string & description ="") 重置会话 |
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 ="") 构建树突组模型,构建自动加入到会话中 |
template <class Module ,class ... Args> std::shared_ptr< Module > | makeModule(const std::string & name ="", Args... args) 构建内部模块,模块自动加入会话中 |
void | removeModel(const PNode & model) 从会话中移除模型 |
PExecutor | getExecutor() 获取执行器 |
ExecutorStatus | getStatus() 获取执行状态 |
void | setThreadNumber(int number) 设置执行线程数 |
int | getThreadNumber() 获取执行线程数 |
bool | compile(CompileOption option) 编译模型并进行初始化 |
void | addMonitor(PModel model, const std::string & paramName, float windows =0) 添加变量监控 |
void | addMonitors(PModel model, std::vector< std::string > monitors, float windows =0) 批量添加变量监控 |
void | removeMonitor(PModel model, const std::string & paramName) 移除变量监控 |
void | removeMonitors(PModel model, std::vector< std::string > monitors) 批量删除变量监控 |
CaptureBuffer | getCapture(PModel model, const std::string & paramName) 获取变量监控结果 |
std::vector< CaptureBuffer > | getCaptures(PModel model, std::vector< std::string > captures) 批量获取变量监控 |
bool | run(RunOption & option) 运行模型 |
bool | run(CompileOption option, RunOption & runOption) 先编译模型,再运行模型 |
bool | pause() 暂停执行 |
bool | condition(int time) 在指定的时间暂停 |
bool | resume() 继续执行 |
bool | terminate() 终止执行 |
bool | saveProto(const std::string & filePath) 保存模型描述到Json文件 |
bool | saveStatus(const std::string & filePath) 保存模型结构和参数西信息到二进制文件中 |
bool | loadStatus(const std::string & filePath, CompileOption option =CompileOption::cpu()) 从文件中加载模型参数及状态 |
Protected Functions
Name | |
---|---|
bool | addNode(PNode child) 添加子模型 |
bool | checkName(const std::string & name) 检查名字是否已经存在 |
std::string | generateName(const std::string & name) 获取当前有效名称 |
Protected Attributes
Name | |
---|---|
PIModule | abstractModel 内部抽象模块 |
PExecutionModel | executionModel 执行模型 |
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