Executor
Executor
Executor Objects
class Executor()
模型执行器
执行器负责模型的运行及状态管理
包括如下接口:
- 获取状态, 设置或获取线程池线程数;
- 编译模型;
- 添加变量监控,移除变量监控,获取捕获的监控数据等;
- 运行模型,编译后运行, 暂停运行, 继续运行,终止运行等;
编译及运行均需要指定选项
- 编译选项通过CompileOption进行传递,指定了运行的执行后端设备配置信息;
- 运行选项通过RunOption进行传递,报考是否进行性能分析,运行突触可塑性及运行时长等信息;
模型监控 Neurocean支持对模型中变量的变化监控,可以动态添加需要进行监控的节点变量,自动完成变量的监控,也可以随时取消相关的变量监控。
- Neurocean提供了参数注册机制,针对变量的监控对操作节点和建模本身是透明的,可以随时按需增加 或取消变量的监控;
- 执行后端针对操作的参数进行捕获,捕获后保存到事先创建的缓存中,在运行中或运行结束后, 可以随时进行缓存变量的查询;
- 在模型的变量监控时,针对神经元模型,在神经元发放时, 分别记录了发放脉冲时候的尖波点位,同时记录了恢复后的重置电位, 保留记录神经元电位变化过程中的所有电位位状态,为神经元的 状态变化分析提供完整的数据支持;
addMonitor
def addMonitor(node, paramName, windows=0)
addMonitor(self: ocean.ocean.Executor, node: ocean.ocean.Model, paramName: str, windows: float = 0) -> None
添加变量监控
Arguments:
model
ocean.Model - 模型实例paramName(string)
- 参数名称windows
- 缓冲区窗口大小, 为0表示按需进行进行创建
addMonitors
def addMonitors(node, monitors, windows=0)
addMonitors(self: ocean.ocean.Executor, node: ocean.ocean.Model, monitors: list, windows: float = 0) -> None
批量添加变量监控
Parameter model
: 模型实例
Parameter monitors
: 变量列表
Parameter windows
: 缓冲区窗口大小, 为0表示按需进行进行创建
compile
def compile(option)
compile(self: ocean.ocean.Executor, option: ocean.ocean.CompileOption) -> ocean.ocean.Status
编译模型
Parameter option
: 编译选项
Returns:
编译状态
condition
def condition(time)
condition(self: ocean.ocean.Executor, time: float) -> bool
在指定的时间暂停
Parameter time
: 暂停时间节点
Returns:
添加设置是否成功
getCapture
def getCapture(node, paramName)
getCapture(self: ocean.ocean.Executor, node: ocean.ocean.Model, paramName: str) -> ocean.ocean.CaptureBuffer
获取变量监控结果
Parameter model
: 模型实例
Parameter paramName
: 变量名称
Returns:
捕获结果
getCaptures
def getCaptures(node, captures)
getCaptures(self: ocean.ocean.Executor, node: ocean.ocean.Model, captures: list) -> ocean.ocean.CaptureBufferVector
批量获取变量监控
Parameter model
: 模型
Parameter captures
: 变量列表
Returns:
捕获结果列表
initStatus
def initStatus()
initStatus(self: ocean.ocean.Executor) -> bool
初始化权重
Returns:
初始化是否成成功
pause
def pause()
pause(self: ocean.ocean.Executor) -> bool
暂停执行
模型内部完成当前执行后暂停, 用于异步暂定模型执行,调用run或pause不会是同一个线程
Returns:
是否暂停成功
removeMonitor
def removeMonitor(node, paramName)
removeMonitor(self: ocean.ocean.Executor, node: ocean.ocean.Model, paramName: str) -> None
移除变量监控
Parameter model
: 模型实例
Parameter paramName
: 变量名称
removeMonitors
def removeMonitors(node, monitors)
removeMonitors(self: ocean.ocean.Executor, node: ocean.ocean.Model, monitors: list) -> None
批量移除变量监控
Parameter model
: 模型实例
Parameter monitors
: 变量列表
resume
def resume()
resume(self: ocean.ocean.Executor) -> bool
继续执行
Returns:
继续执行是否成功
run
def run(*args, **kwargs)
run(*args, **kwargs) Overloaded function.
- run(self: ocean.ocean.Executor, option: ocean.ocean.RunOption) -> bool
运行模型
Parameter option
: 运行选项
Returns:
运行是否成功
- run(self: ocean.ocean.Executor, option: ocean.ocean.CompileOption, runOption: ocean.ocean.RunOption) -> bool
先编译模型,再运行模型
Parameter option
: 编译选项
Parameter runOption
: 运行选项
Returns:
运行是否成功
terminate
def terminate()
terminate(self: ocean.ocean.Executor) -> bool
终止执行
Returns:
终止执行是否成功
status
执行状态
threadNumber
执行线程数