A layer of Cumulative Spike Response Model (Gerstner and van Hemmen 1992, Gerstner et al. 1996) nodes. It accounts for a model where refractoriness and adaptation were modeled by the combined effects of the spike after potentials of several previous spikes, rather than only the most rec
| 1317 | |
| 1318 | |
| 1319 | class CSRMNodes(Nodes): |
| 1320 | """ |
| 1321 | A layer of Cumulative Spike Response Model (Gerstner and van Hemmen 1992, Gerstner et al. 1996) nodes. |
| 1322 | It accounts for a model where refractoriness and adaptation were modeled by the combined effects |
| 1323 | of the spike after potentials of several previous spikes, rather than only the most recent spike. |
| 1324 | """ |
| 1325 | |
| 1326 | def __init__( |
| 1327 | self, |
| 1328 | n: Optional[int] = None, |
| 1329 | shape: Optional[Iterable[int]] = None, |
| 1330 | traces: bool = False, |
| 1331 | traces_additive: bool = False, |
| 1332 | tc_trace: Union[float, torch.Tensor] = 20.0, |
| 1333 | trace_scale: Union[float, torch.Tensor] = 1.0, |
| 1334 | sum_input: bool = False, |
| 1335 | rest: Union[float, torch.Tensor] = -65.0, |
| 1336 | thresh: Union[float, torch.Tensor] = -52.0, |
| 1337 | responseKernel: str = "ExponentialKernel", |
| 1338 | refractoryKernel: str = "EtaKernel", |
| 1339 | tau: Union[float, torch.Tensor] = 1, |
| 1340 | res_window_size: Union[float, torch.Tensor] = 20, |
| 1341 | ref_window_size: Union[float, torch.Tensor] = 10, |
| 1342 | reset_const: Union[float, torch.Tensor] = 50, |
| 1343 | tc_decay: Union[float, torch.Tensor] = 100.0, |
| 1344 | theta_plus: Union[float, torch.Tensor] = 0.05, |
| 1345 | tc_theta_decay: Union[float, torch.Tensor] = 1e7, |
| 1346 | lbound: float = None, |
| 1347 | **kwargs, |
| 1348 | ) -> None: |
| 1349 | # language=rst |
| 1350 | """ |
| 1351 | Instantiates a layer of Cumulative Spike Response Model nodes. |
| 1352 | |
| 1353 | :param n: The number of neurons in the layer. |
| 1354 | :param shape: The dimensionality of the layer. |
| 1355 | :param traces: Whether to record spike traces. |
| 1356 | :param traces_additive: Whether to record spike traces additively. |
| 1357 | :param tc_trace: Time constant of spike trace decay. |
| 1358 | :param trace_scale: Scaling factor for spike trace. |
| 1359 | :param sum_input: Whether to sum all inputs. |
| 1360 | :param rest: Resting membrane voltage. |
| 1361 | :param thresh: Spike threshold voltage. |
| 1362 | :param refrac: Refractory (non-firing) period of the neuron. |
| 1363 | :param tc_decay: Time constant of neuron voltage decay. |
| 1364 | :param theta_plus: Voltage increase of threshold after spiking. |
| 1365 | :param tc_theta_decay: Time constant of adaptive threshold decay. |
| 1366 | :param lbound: Lower bound of the voltage. |
| 1367 | """ |
| 1368 | super().__init__( |
| 1369 | n=n, |
| 1370 | shape=shape, |
| 1371 | traces=traces, |
| 1372 | traces_additive=traces_additive, |
| 1373 | tc_trace=tc_trace, |
| 1374 | trace_scale=trace_scale, |
| 1375 | sum_input=sum_input, |
| 1376 | ) |