SpikingFlow.connection package¶
Submodules¶
SpikingFlow.connection.transform module¶
-
class
SpikingFlow.connection.transform.
BaseTransformer
[源代码]¶ 基类:
torch.nn.modules.module.Module
脉冲-电流转换器的基类
输入是脉冲(torch.bool),输出是电流(torch.float)
-
training
: bool¶
-
-
class
SpikingFlow.connection.transform.
SpikeCurrent
(amplitude=1)[源代码]¶ 基类:
SpikingFlow.connection.transform.BaseTransformer
- 参数
amplitude – 放大系数
输入脉冲,输出与脉冲形状完全相同、离散的、大小为amplitude倍的电流
-
training
: bool¶
-
class
SpikingFlow.connection.transform.
ExpDecayCurrent
(tau, amplitude=1)[源代码]¶ 基类:
SpikingFlow.connection.transform.BaseTransformer
- 参数
tau – 衰减的时间常数,越小则衰减越快
amplitude – 放大系数
指数衰减的脉冲-电流转换器
若当前时刻到达一个脉冲,则电流变为amplitude
否则电流按时间常数为tau进行指数衰减
-
training
: bool¶
-
class
SpikingFlow.connection.transform.
STPTransformer
(v_base, tau_f, tau_d)[源代码]¶ 基类:
SpikingFlow.connection.transform.BaseTransformer
- 参数
v_base – v的基本值
tau_f – 刺激信号衰减的时间常数
tau_d – 抑制信号衰减的时间常数
突触的短期可塑性。工作在突触前脉冲的时刻,用于调制突触前脉冲的刺激值,使其不至于产生大量突触后电流。
其动态方程为
\[\begin{split}\begin{split} \frac{\mathrm{d}x}{\mathrm{d}t} &= \frac{1-x}{\tau_d} - v x \delta (t) \\ \frac{\mathrm{d}v}{\mathrm{d}t} &= \frac{V_{base}-v}{\tau_f} + V_{base} (1-v) \delta (t) \end{split}\end{split}\]输出电流为 \(v x \delta (t)\)
-
training
: bool¶
Module contents¶
-
class
SpikingFlow.connection.
BaseConnection
[源代码]¶ 基类:
torch.nn.modules.module.Module
所有突触的基类
突触,输入和输出均为电流,将脉冲转换为电流的转换器定义在connection.transform中
-
training
: bool¶
-
-
class
SpikingFlow.connection.
ConstantDelay
(delay_time=1)[源代码]¶ 基类:
SpikingFlow.connection.BaseConnection
- 参数
delay_time – int,表示延迟时长
具有固定延迟delay_time的突触,t时刻的输入,在t+1+delay_time时刻才能输出
-
training
: bool¶
-
class
SpikingFlow.connection.
Linear
(in_num, out_num, device='cpu')[源代码]¶ 基类:
SpikingFlow.connection.BaseConnection
- 参数
in_num – 输入数量
out_num – 输出数量
device – 数据所在设备
线性全连接层,输入是[batch_size, *, in_num],输出是[batch_size, *, out_num]
连接权重矩阵为 \(W\),输入为 \(x\),输出为 \(y\),则
\[y = xW^T\]-
training
: bool¶
-
class
SpikingFlow.connection.
GaussianLinear
(in_num, out_num, std, device='cpu')[源代码]¶ 基类:
SpikingFlow.connection.BaseConnection
- 参数
in_num – 输入数量
out_num – 输出数量
std – 噪声的标准差
device – 数据所在设备
带高斯噪声的线性全连接层,噪声是施加在输出端的,所以可以对不同的神经元产生不同的随机噪声。 维度上,输入是[batch_size, *, in_num],输出是[batch_size, *, out_num]。
连接权重矩阵为 \(W\),输入为 \(x\),输出为 \(y\),标准差为std的噪声为 \(e\), 则
\[y = xW^T + e\]-
training
: bool¶