Executor

Neurocean大约 3 分钟

Executor

Executor Objects

class Executor()

模型执行器

执行器负责模型的运行及状态管理

  1. 包括如下接口:

    • 获取状态, 设置或获取线程池线程数;
    • 编译模型;
    • 添加变量监控,移除变量监控,获取捕获的监控数据等;
    • 运行模型,编译后运行, 暂停运行, 继续运行,终止运行等;
  2. 编译及运行均需要指定选项

    • 编译选项通过CompileOption进行传递,指定了运行的执行后端设备配置信息;
    • 运行选项通过RunOption进行传递,报考是否进行性能分析,运行突触可塑性及运行时长等信息;
  3. 模型监控 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.

  1. run(self: ocean.ocean.Executor, option: ocean.ocean.RunOption) -> bool

运行模型

Parameter option: 运行选项

Returns:

运行是否成功

  1. 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

执行线程数

上次编辑于:
贡献者: damone