规格说明
大约 10 分钟指南指南规格说明
1. 基础模型
1.1 NeuronGroup
General
模型名称: General
模型说明:
通用神经元
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint16 | 神经元组神经元的数目 |
output | 张量 | int8 | 神经元组的输出 |
restingPotentials | 张量 | float | General 静息电位 |
input | 张量 | float | 神经元组的输出 |
refractoriesTime | 张量 | float | General 不应期剩余时间 |
potentials | 张量 | float | General 神经元电位 |
thresholds | 张量 | float | General 神经元阈值 |
firePotentials | 张量 | float | General 发放时电位 |
refractories | 张量 | float | General 不应期时间 |
decays | 张量 | float | General 衰减常数 |
LIF
模型名称: LIF
模型说明:
LIF 神经元
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint16 | 神经元组神经元的数目 |
output | 张量 | int8 | 神经元组的输出 |
restingPotentials | 张量 | float | LIF 静息电位 |
input | 张量 | float | 神经元组的输出 |
refractoriesTime | 张量 | float | LIF 不应期剩余时间 |
tau | 单变量 | float | LIF 时间常数 |
firePotentials | 张量 | float | LIF 发放时电位 |
potentials | 张量 | float | LIF 神经元电位 |
thresholds | 张量 | float | LIF 神经元阈值 |
R | 张量 | float | LIF 输入电导 |
refractories | 张量 | float | LIF 不应期时间 |
ProbabilityInput
模型名称: ProbabilityInput
模型说明:
概率脉冲发生期,给的指定神经元的脉冲发放概率,该神经元以指定的概率产生脉冲,并输出给下游。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint16 | 神经元组神经元的数目 |
output | 张量 | int8 | 神经元组的输出 |
probabilities | 张量 | float | 概率脉冲生成器的脉冲生成概率 |
SequenceInput
模型名称: SequenceInput
模型说明:
序列化脉冲输入,提供直接的缓冲区有用户自行设置脉冲序列;
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint16 | 神经元的数量 |
output | 张量 | int8 | 神经元组的输出 |
totalTime | 单变量 | uint32 | 脉冲序列输入的总周期数 |
inputBuffer | 张量 | int8 | 脉冲序列输入的输入缓冲区 |
1.2 SynapseGroup
DelaySynapse
模型名称: DelaySynapse
模型说明:
延迟突触,脉冲转递到突触会有一定延迟才传递到下游的神经元
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint32 | 存在的连接数量 |
inputNumber | 单变量 | uint16 | 连接模型的输入的数量 |
outputNumber | 单变量 | uint16 | 突触组的输出目标数 |
matrix | 张量参数 | uint8 | 连接矩阵的二进制存储缓冲 |
input | 张量 | int8 | 突触组的输入 |
delays | 张量 | uint16 | 突触延迟 |
weights | 张量 | float | 突触权重 |
output | 张量 | float | 突触组的输出 |
SimpleSynapse
模型名称: SimpleSynapse
模型说明:
简单突触,最基本的突触模型,主要提供为神经元直接的连接提供桥梁,同时和突触可塑性机制进行绑定。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint32 | 存在的连接数量 |
inputNumber | 单变量 | uint16 | 连接模型的输入的数量 |
outputNumber | 单变量 | uint16 | 突触组的输出目标数 |
matrix | 张量参数 | uint8 | 连接矩阵的二进制存储缓冲 |
input | 张量 | int8 | 突触组的输入 |
weights | 张量 | float | the weights of the synapse |
output | 张量 | float | 突触组的输出 |
1.3 DendriteGroup
DirectTransition
模型名称: DirectTransition
模型说明:
直接映射转换模块,将树突对应的神经元输出状态直接反传到突触,为突触进行可塑性提供支持。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
next | 输入 | next |
pre | 输出 | pre |
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
pre | 张量 | int8 | 直接转换模块的转换后结果 |
next | 张量 | int8 | 直接转换模块的对应的输出状态 |
SimpleDendrite
模型名称: SimpleDendrite
模型说明:
简单树突,最简单的树突模型,仅仅完成了多个突触到神经元的输入归并。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint32 | 存在的连接数量 |
inputNumber | 单变量 | uint16 | 连接模型的输入的数量 |
outputNumber | 单变量 | uint16 | 突触组的输出目标数 |
matrix | 张量参数 | uint8 | 连接矩阵的二进制存储缓冲 |
input | 张量 | float | 树突组的输入 |
output | 张量 | float | 树突组的输出 |
1.4 SynapsePlasticity
BCM
模型名称: BCM
模型说明:
突触可塑性BCM
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
pre | 输入 | pre |
next | 输入 | next |
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
pre | 张量 | int8 | 突触前神经元的输出 |
next | 张量 | int8 | 突触后神经元的输出 |
update | 张量 | float | 权重的更新 |
learnRate | 单变量 | float | 突触可塑性的学习率 |
window | 单变量 | float | 突触权重的最大值 |
weightMin | 单变量 | float | 突触权重的最小值 |
weightMax | 单变量 | float | 突触权重的最大值 |
preEfficiencies | 张量 | float | 突触前神经元的发放效能 |
meanEfficiencies | 张量 | float | 突触前神经元的平均发放效能 |
postEfficiencies | 张量 | float | 突触后神经元的发放效能 |
NormalizeWeights
模型名称: NormalizeWeights
模型说明:
权重按输入到同一神经元的关系进行权重正则化
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
max | 单变量 | float | 突触权重的最大值 |
scaled | 单变量 | float | 突触缩放的比例 |
min | 单变量 | float | 突触权重的最小值 |
Oga
模型名称: Oga
模型说明:
突触可塑性 Oga
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
pre | 输入 | pre |
next | 输入 | next |
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
pre | 张量 | int8 | 突触前神经元的输出 |
next | 张量 | int8 | 突触后神经元的输出 |
update | 张量 | float | 权重的更新 |
learnRate | 单变量 | float | 突触可塑性的学习率 |
window | 单变量 | float | 神经元发放效能的统计窗口 |
weightMin | 单变量 | float | 突触权重的最小值 |
weightMax | 单变量 | float | 突触权重的最大值 |
preEfficiencies | 张量 | float | 突触前神经元的发放效能 |
postEfficiencies | 张量 | float | 突触后神经元的发放效能 |
PreDrive
模型名称: PreDrive
模型说明:
前神经元驱动的突触可塑性,只要突触连接的前神经元不停地发放,相关的连接就会不断增强。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
pre | 输入 | pre |
next | 输入 | next |
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
pre | 张量 | int8 | 突触前神经元的输出 |
next | 张量 | int8 | 突触后神经元的输出 |
update | 张量 | float | 权重的更新 |
learnRate | 单变量 | float | 突触可塑性的学习率 |
window | 单变量 | float | 突触效能统计的窗口大小 |
weightMin | 单变量 | float | 突触权重的最小值 |
efficiencies | 张量 | float | 突触前神经元的发放效能 |
weightMax | 单变量 | float | 突触权重的最大值 |
STDP
模型名称: STDP
模型说明:
突触可塑性 STDP
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
pre | 输入 | pre |
next | 输入 | next |
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
pre | 张量 | int8 | 突触前神经元的输出 |
preLearnRate | 单变量 | float | 突触可塑性STDP的前神经元发放学习率 |
next | 张量 | int8 | 突触后神经元的输出 |
tauPre | 单变量 | float | 突触前神经元组的tau常数 |
update | 张量 | float | 权重的更新 |
tauPost | 单变量 | float | 突触后神经元组的tau常数 |
weightMax | 单变量 | float | 突触权重的最大值 |
weightMin | 单变量 | float | 突触权重的最大值 |
postLearnRate | 单变量 | float | 突触可塑性STDP的后神经元发放学习率 |
preEfficiencies | 张量 | float | 突触前神经元组的发放效能 |
postEfficiencies | 张量 | float | 突触后神经元组的发放效能 |
ScaledWeights
模型名称: ScaledWeights
模型说明:
权重按比例缩放,对突触权重进行整体缩放操作
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
matrix | 连接 | matrix |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
scaled | 单变量 | float | 突触权重的最大值 |
1.5 General
Frequency
模型名称: Frequency
模型说明:
脉冲输出频率统计
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input | 输入 | input |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
input | 张量 | int8 | 待统计的脉冲输入 |
frequencies | 张量 | uint32 | 统计的频率结果 |
Reduce
模型名称: Reduce
模型说明:
Reduce操作,将多路输入进行规约,继续输出给下游。
- 端口列表:
端口名称 | 端口类型 | 对应参数名称 |
---|---|---|
input0 | 输入 | input0 |
input1 | 输入 | input1 |
output | 输出 | output |
- 参数列表:
参数名称 | 变量类型 | 数据类型 | 变量说明 |
---|---|---|---|
step | 单变量 | float | 模型运行间隔周期 |
number | 单变量 | uint16 | Reduce 的输入个数, 输入端口分别是 input0, input1, ... input[n] |
reduceType | 单变量 | uint8 | Reduce操作的类型,支持Sub、Mean、Max、Min, 默认Sub |
dataType | 单变量 | uint16 | Reduce 操作的数据类型 |
input0 | 张量 | float | 输入0 |
input1 | 张量 | float | 输入1 ... |
output | 张量 | float | Reduce 的输出 |
2. 后端支持
模型类别 | 模型名称 | CPU | CUDA |
---|---|---|---|
NeuronGroup | General | Y | Y |
LIF | Y | Y | |
ProbabilityInput | Y | Y | |
SequenceInput | Y | Y | |
SynapseGroup | DelaySynapse | Y | Y |
SimpleSynapse | Y | Y | |
DendriteGroup | DirectTransition | Y | Y |
SimpleDendrite | Y | Y | |
SynapsePlasticity | BCM | Y | Y |
NormalizeWeights | Y | Y | |
Oga | Y | Y | |
PreDrive | Y | Y | |
STDP | Y | Y | |
ScaledWeights | Y | Y | |
General | Frequency | Y | Y |
Reduce | Y | Y |