Quick Start¶
This short notebook distils the essentials of the CANNs design philosophy so you can navigate the library quickly.
Use it as a high-level checklist before diving into the detailed design notebook or the codebase.
Module Overview¶
modelBuilt-in model package.basicCore CANN models and their variants.brain_inspiredBrain-inspired models.hybridHybrid models mixing CANNs with ANNs or other mechanisms.
taskTask utilities for CANNs, covering generation, persistence, import, and visualisation.analyzerAnalysis helpers focused on visualisation.model analyzerTools for examining CANN models, including energy landscapes, firing rates, and tuning curves.data analyzerRoutines for experimental-data-driven CANN analysis or dynamical inspection of virtual RNN models.
trainerUnified training and prediction interfaces.pipelineEnd-to-end flows that combine the above packages for streamlined execution.
Models At A Glance¶
models¶
Overview¶
The models package implements base CANNs across different dimensionalities, brain-inspired variants, and hybrid combinations. It underpins the rest of the library and inter-operates with other modules to support varied scenarios.
The implementations are grouped by type:
Basic Models (
canns.models.basic) Canonical CANN architectures and their variants.Brain-Inspired Models (
canns.models.brain_inspired) Brain-inspired network implementations.Hybrid Models (
canns.models.hybird) Hybrids that couple CANNs with ANNs or other mechanisms.
These models rely on the Brain Simulation Ecosystem, especially brainstate. brainstate—backed by JAX/BrainUnit—provides the brainstate.nn.Dynamics abstraction, State/HiddenState/ParamState containers, unified time-step control via brainstate.environ, and utilities such as brainstate.compile.for_loop and brainstate.random. With these building blocks, CANN implementations
only describe variables and update rules while brainstate handles time stepping, parallelism, and randomness, lowering implementation overhead.
Tasks At A Glance¶
task¶
Overview¶
The task package generates, saves, loads, imports, and visualises CANN-specific stimuli. It offers predefined task types while allowing custom extensions for specialised needs.
Analyzers At A Glance¶
analyzer¶
Overview¶
The analyzer package supplies tools for inspecting CANN models and experimental datasets. It spans two categories: model analysis and data analysis.
Trainer Essentials¶
trainer¶
Overview¶
The trainer package exposes unified interfaces for training and evaluating brain-inspired models. It currently focuses on Hebbian learning, with room to add additional strategies later.
Pipeline Snapshot¶
Pipeline¶
Overview¶
The pipeline package chains models, tasks, analyzers, and trainers into end-to-end workflows so that common needs are satisfied with minimal user code.
Next Steps¶
Read Design Philosophy for the full story.
Explore examples under
examples/to see each module in action.Extend the library by following the extension tips in each section.