Source code for conex.nn.structure.neocortex

from pymonntorch import Network, Behavior
from conex.nn.priority import NETWORK_PRIORITIES
from conex.behaviors.network.time_resolution import TimeResolution
from typing import Union, Dict
import torch


[docs]class Neocortex(Network): """Neocortex. Neocortex structure is the network equivalent. it also contains the all the structures.. Args: dt (float): The time resolution of the simulation. behavior (dictionary): a dictionary of keys and behaviors attached to the Layer. dtype (torch dtype): The precision of floating point compuation. device (device): device of the Layer. defaults to the netowrk device. synapse_mode (str): The synapse structure in simulation, possible values: "SxD", "DxS". index (bool): Add the index vector to neuron populations. tag (str): tag of the Layer divided by ",". """ def __init__( self, dt: Union[float, None] = 1, behavior: Dict[int, Behavior] = None, dtype: torch.dtype = torch.float32, device: Union[torch.device, int, str] = "cpu", synapse_mode: str = "SxD", index: bool = False, tag: str = None, ): behavior = behavior if behavior is not None else {} behavior = { **behavior, NETWORK_PRIORITIES["TimeResolution"]: TimeResolution(dt=dt), } tag = tag if tag is not None else "Neocortex" self.input_layers = [] self.output_layers = [] self.cortical_columns = [] super().__init__( tag=tag, behavior=behavior, dtype=dtype, device=device, synapse_mode=synapse_mode, index=index, )