pylissom.optim¶
Submodules¶
pylissom.optim.optimizers module¶
Extends the torch.optim.Optimizer class with Lissom optimizers, mainly Hebbian Learning
-
class
pylissom.optim.optimizers.CortexOptimizer(cortex)[source]¶ Bases:
torch.optim.OptimizerAbstract
torch.optim.Optimizerthat can only be used withpylissom.nn.modules.Cortex
-
class
pylissom.optim.optimizers.SequentialOptimizer(*optimizers)[source]¶ Bases:
objectSimilar to
torch.nn.Sequentialbut for optimizers, used to containpylissom.optim.optimizers.CortexHebbianfor ReducedLissom modules
-
class
pylissom.optim.optimizers.CortexHebbian(cortex, learning_rate)[source]¶ Bases:
pylissom.optim.optimizers.CortexOptimizerImplements hebbian learning over a
pylissom.nn.modules.CortexweightsThe formula is as follows:
..math:
\begin{equation*} \text{w\'}_pq,ij = \text{w\'}_pq,ij + \alpha X_pq n_ij \end{equation*}
:param - cortex -
pylissom.nn.modules.Cortexmap to apply formula: :param - learning_rate -:
-
class
pylissom.optim.optimizers.ReducedLissomHebbian(afferent_mod, inhibitory_mod, excitatory_mod, aff_params, inhib_params, excit_params)[source]¶
-
class
pylissom.optim.optimizers.CortexPruner(cortex, pruning_step=2000)[source]¶ Bases:
pylissom.optim.optimizers.CortexOptimizerAbstract class that prunes the weights in each step, subclasses must implement
pylissom.optim.optimizers.CortexPruner._prune():param - cortex -
pylissom.nn.modules.Cortexmap to apply formula: :param - pruning_step -:
-
class
pylissom.optim.optimizers.ConnectionDeath(cortex, pruning_step=2000, connection_death_threshold=0.0025)[source]¶ Bases:
pylissom.optim.optimizers.CortexPrunerPrunes the weights that are less than a threshold
:param - cortex -
pylissom.nn.modules.Cortexmap to apply formula: :param - pruning_step -: :param - connection_death_threshold -:
-
class
pylissom.optim.optimizers.NeighborsDecay(cortex, pruning_step=2000, decay_fn=<function linear_decay>, final_epoch=8.0)[source]¶ Bases:
pylissom.optim.optimizers.CortexPrunerReduces the connective radius of each neuron
:param - cortex -
pylissom.nn.modules.Cortexmap to apply formula: :param - pruning_step -: :param - decay_fn - Default = linear_decay: :param - final_epoch - necessary for the linear function: