Zing 论坛

正文

CANNs:连续吸引子神经网络研究工具包——神经动力学建模的模块化解决方案

CANNs 是一个基于 BrainPy 和 JAX 构建的连续吸引子神经网络研究工具包,提供模型集合、任务生成器、分析工具和完整的 ASA 流程,支持从模拟到结果分析的全套研究工作流。

CANN连续吸引子神经网络BrainPyJAX神经动力学计算神经科学网格细胞位置细胞TDA拓扑数据分析
发布时间 2026/05/28 07:44最近活动 2026/05/28 07:52预计阅读 3 分钟
CANNs:连续吸引子神经网络研究工具包——神经动力学建模的模块化解决方案
1

章节 01

导读 / 主楼:CANNs:连续吸引子神经网络研究工具包——神经动力学建模的模块化解决方案

CANNs 是一个基于 BrainPy 和 JAX 构建的连续吸引子神经网络研究工具包,提供模型集合、任务生成器、分析工具和完整的 ASA 流程,支持从模拟到结果分析的全套研究工作流。

2

章节 02

原作者与来源

  • 原作者/维护者: Routhleck (He Sichao, Tuerhong Aiersi, She Shangjun, Chu Tianhao, Wu Yuling, Zuo Junfeng, Wu Si)
  • 来源平台: GitHub
  • 原始标题: CANNs: Continuous Attractor Neural Networks Toolkit
  • 原始链接: https://github.com/Routhleck/canns
  • 发布时间: 2026年5月27日

3

章节 03

项目概述

CANNs(Continuous Attractor Neural Networks Toolkit)是一个专为连续吸引子神经网络研究设计的 Python 工具包。它基于 BrainPyJAX 构建,并可选地使用 Rust 加速的 canns-lib 来处理性能关键例程(如 TDA/Ripser 和任务生成)。

该工具包整合了模型集合、任务生成器、分析器和 ASA 流程(GUI/TUI),使研究人员能够在一个统一的工作流中运行模拟并分析结果。API 将模型、任务、分析器和训练器分离,确保实验的模块化和可扩展性。


4

章节 04

核心架构设计

CANNs 库遵循模块化架构,由两个核心原则指导:关注点分离通过基类实现可扩展性

5

章节 05

五层架构

应用层 (Pipeline 编排)
    ↓
功能层 (Task, Trainer, Analyzer, Utils 模块)
    ↓
核心模型层 (CANN 实现)
    ↓
基础层 (BrainPy/JAX + Rust FFI 后端)
    ↓
硬件层 (CPU/GPU/TPU 支持)
6

章节 06

五个独立模块

  1. Models (canns.models):定义神经网络动力学

    • 基础 CANN(1D/2D,SFA)
    • 分层路径整合模型
    • Theta 扫描模型
    • 脑启发模型(Amari-Hopfield、线性/脉冲层)
  2. Tasks (canns.task):生成实验范式和输入数据

    • 平滑跟踪
    • 群体编码
    • 模板匹配
    • 开环/闭环导航
  3. Analyzers (canns.analyzer):提供可视化和分析工具

    • 能量景观
    • 调谐曲线
    • 光栅图/发放率图
    • TDA 和解码工具
    • 细胞分类
  4. Trainers (canns.trainer):实现脑启发模型的学习规则

    • HebbianTrainer
    • 可扩展的基类设计
  5. Pipeline (canns.pipeline):编排完整工作流

    • ASA 流程(GUI/TUI)
    • 端到端工作流:预处理 → TDA → 解码 → 结果可视化

每个模块专注于单一职责:模型不生成输入数据,任务不分析结果,分析器不修改参数。这种分离确保了可维护性、可测试性和可扩展性。


7

章节 07

模型集合

  • 基础 CANN:1D/2D 连续吸引子网络,支持 SFA(Synaptic Facilitation and Depression)
  • 分层路径整合:模拟动物导航中的路径整合机制
  • Theta 扫描模型:模拟海马体 theta 振荡期间的扫描行为
  • 脑启发模型:Amari-Hopfield 网络、线性层、脉冲神经网络层
8

章节 08

任务生成器

  • SmoothTracking:平滑跟踪任务,模拟连续运动刺激
  • PopulationCoding:群体编码任务,研究神经群体如何编码信息
  • TemplateMatching:模板匹配任务
  • Navigation:开环和闭环导航任务