CANNs Documentation

https://img.shields.io/github/stars/routhleck/canns.svg?style=for-the-badge https://img.shields.io/github/license/routhleck/canns.svg?style=for-the-badge

Welcome to the CANNs (Continuous Attractor Neural Networks) documentation! This library provides a unified, high-level API for building, training, and analyzing continuous attractor neural networks.

🚀 Interactive Examples

Try the examples interactively:

  • binder Run on Binder (Free, no setup required)

  • colab Open in Google Colab (Google account required)

📖 Table of Contents

API Reference

Language: English | 中文

About CANNs

Continuous Attractor Neural Networks (CANNs) are a class of neural network models characterized by their ability to maintain stable activity patterns in continuous state spaces. This library provides:

  • Rich Model Library: 1D/2D CANNs, SFA models, hierarchical networks

  • Task-Oriented Design: Path integration, smooth tracking, custom tasks

  • Powerful Analysis Tools: Real-time visualization, statistical analysis

  • High Performance: JAX-based computation with GPU/TPU support

Quick Installation

# Basic installation (CPU)
pip install canns

# GPU support (Linux)
pip install canns[cuda12]

# TPU support (Linux)
pip install canns[tpu]

Quick Example

import brainstate
from canns.models.basic import CANN1D
from canns.task.tracking import SmoothTracking1D

# Create 1D CANN network
cann = CANN1D(num=512)
cann.init_state()

# Define smooth tracking task
task = SmoothTracking1D(
    cann_instance=cann,
    Iext=(1., 0.75, 2., 1.75, 3.),
    duration=(10., 10., 10., 10.),
)

Community and Support

Indices and tables