{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a6238685",
   "metadata": {},
   "source": [
    "# Online learning with ``braintrace``\n",
    "\n",
    "[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/chaobrain/brainx/blob/main/docs/tutorials/braintrace_online_learning.ipynb)\n",
    "[![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/chaobrain/brainx/blob/main/docs/tutorials/braintrace_online_learning.ipynb)\n",
    "\n",
    "## What is `braintrace`?\n",
    "\n",
    "``braintrace`` is the online-learning package in the BrainX ecosystem. It is designed for recurrent neural networks, spiking neural networks, and other stateful models that process data step by step. Instead of storing the full backpropagation-through-time graph for a long sequence, BrainTrace maintains eligibility traces: compact online summaries of how current hidden states depend on trainable parameters.\n",
    "\n",
    "This makes BrainTrace useful when a model needs to learn from streaming data, update recurrent parameters during simulation, or study biologically inspired credit-assignment rules. It connects stateful BrainState modules, ETP-aware primitives, online-learning algorithms such as ``D_RTRL`` and ``EProp``, and JAX transformations in a single workflow.\n",
    "\n",
    "![BrainTrace architecture for online learning](../_static/image/braintrace_architecture_online_learning.png)\n",
    "\n",
    "*Figure: BrainTrace organizes online learning around model states, ETP primitives, eligibility traces, and local updates. The compiler builds the trace relationships from an example input, and the learner uses those relationships while the model runs through single-step or multi-step data.*\n",
    "\n",
    "For the research background, see the Nature Communications article [BrainTrace](https://www.nature.com/articles/s41467-026-68453-w). For complete API details, advanced algorithms, batching, custom primitives, and additional examples, see the [BrainTrace documentation](https://brainx.chaobrain.com/braintrace/).\n",
    "\n",
    "This tutorial is a compact entry point rather than a full algorithm reference. It shows how the main pieces fit together:\n",
    "\n",
    "- build a small recurrent model with ``braintrace.nn`` layers,\n",
    "- inspect hidden states and ETP-aware operations,\n",
    "- run a simple streaming update loop,\n",
    "- compile the model with ``braintrace.compile(..., \"D_RTRL\", ...)``,\n",
    "- use ``MultiStepData`` and a small gradient check,\n",
    "- understand the shape convention used for batching."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f54363b9",
   "metadata": {},
   "source": [
    "## 1. Setup\n",
    "\n",
    "We use JAX arrays, ``brainstate`` modules and state management, and ``braintrace`` recurrent layers. The examples are intentionally small so that they run quickly during documentation builds."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "13e39b78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:04.263318Z",
     "iopub.status.busy": "2026-06-29T02:57:04.263318Z",
     "iopub.status.idle": "2026-06-29T02:57:05.529895Z",
     "shell.execute_reply": "2026-06-29T02:57:05.529392Z"
    }
   },
   "outputs": [],
   "source": [
    "import jax\n",
    "import jax.numpy as jnp\n",
    "import brainstate\n",
    "import braintrace\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "brainstate.random.seed(1)\n",
    "np.random.seed(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f873487",
   "metadata": {},
   "source": [
    "## 2. Sequence data for an online task\n",
    "\n",
    "The toy task uses a two-channel time-varying input and a one-dimensional target. Each time step can be processed immediately, which is the setting where online learning is useful."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "713fd371",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:05.530898Z",
     "iopub.status.busy": "2026-06-29T02:57:05.530898Z",
     "iopub.status.idle": "2026-06-29T02:57:05.841191Z",
     "shell.execute_reply": "2026-06-29T02:57:05.841191Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "inputs shape:  (80, 2)\n",
      "targets shape: (80, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_steps = 80\n",
    "time = jnp.linspace(0.0, 4.0 * jnp.pi, n_steps)\n",
    "\n",
    "inputs = jnp.stack(\n",
    "    [\n",
    "        jnp.sin(time),\n",
    "        jnp.cos(0.5 * time),\n",
    "    ],\n",
    "    axis=1,\n",
    ")\n",
    "targets = (0.6 * jnp.sin(time + 0.8) + 0.2 * jnp.cos(0.5 * time))[:, None]\n",
    "\n",
    "print(f\"inputs shape:  {inputs.shape}\")\n",
    "print(f\"targets shape: {targets.shape}\")\n",
    "\n",
    "plt.figure(figsize=(7, 3))\n",
    "plt.plot(np.asarray(time), np.asarray(inputs[:, 0]), label=\"input 0\")\n",
    "plt.plot(np.asarray(time), np.asarray(inputs[:, 1]), label=\"input 1\")\n",
    "plt.plot(np.asarray(time), np.asarray(targets[:, 0]), label=\"target\", linewidth=2)\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"value\")\n",
    "plt.legend(frameon=False)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e37f120a",
   "metadata": {},
   "source": [
    "## 3. A small recurrent model\n",
    "\n",
    "``braintrace.nn`` layers are regular ``brainstate`` modules whose internal matrix operations are marked with BrainTrace ETP primitives. Here we start with a recurrent encoder and inspect the hidden state produced by one update."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5a33ff21",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:05.842204Z",
     "iopub.status.busy": "2026-06-29T02:57:05.842204Z",
     "iopub.status.idle": "2026-06-29T02:57:09.955266Z",
     "shell.execute_reply": "2026-06-29T02:57:09.955266Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hidden state shape: (8,)\n",
      "single-step output shape: (8,)\n",
      "hidden-state norm after one step: 0.2684\n"
     ]
    }
   ],
   "source": [
    "class TinyRecurrentEncoder(brainstate.nn.Module):\n",
    "    def __init__(self, n_in, n_hidden):\n",
    "        super().__init__()\n",
    "        self.rnn = braintrace.nn.ValinaRNNCell(\n",
    "            n_in,\n",
    "            n_hidden,\n",
    "            activation=\"tanh\",\n",
    "            w_init=0.08 * brainstate.random.randn(n_in + n_hidden, n_hidden),\n",
    "        )\n",
    "\n",
    "    def update(self, x):\n",
    "        return self.rnn(x)\n",
    "\n",
    "\n",
    "encoder = TinyRecurrentEncoder(n_in=2, n_hidden=8)\n",
    "encoder.rnn.init_state()\n",
    "\n",
    "h0 = encoder(inputs[0])\n",
    "\n",
    "print(f\"hidden state shape: {encoder.rnn.h.value.shape}\")\n",
    "print(f\"single-step output shape: {h0.shape}\")\n",
    "print(f\"hidden-state norm after one step: {float(jnp.linalg.norm(h0)):.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0f2a268",
   "metadata": {},
   "source": [
    "## 4. A step-by-step online loop\n",
    "\n",
    "This cell shows the streaming data flow before introducing the BrainTrace compiler. The recurrent encoder carries its hidden state forward, and a simple readout is updated immediately from the current prediction error.\n",
    "\n",
    "The readout update below is intentionally written out by hand so the online-learning loop is visible. The later BrainTrace cells show how ``D_RTRL`` compiles recurrent dependencies and routes gradients through eligibility traces."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "0c663615",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:09.956269Z",
     "iopub.status.busy": "2026-06-29T02:57:09.956269Z",
     "iopub.status.idle": "2026-06-29T02:57:10.516505Z",
     "shell.execute_reply": "2026-06-29T02:57:10.516505Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "output trajectory shape: (80,)\n",
      "mean loss, first 10 steps: 0.2488\n",
      "mean loss, last 10 steps:  0.1734\n",
      "final readout weight norm: 0.2302\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "brainstate.random.seed(2)\n",
    "encoder = TinyRecurrentEncoder(n_in=2, n_hidden=8)\n",
    "encoder.rnn.init_state()\n",
    "\n",
    "w_readout = 0.05 * brainstate.random.randn(8, 1)\n",
    "b_readout = jnp.zeros((1,))\n",
    "learning_rate = 0.08\n",
    "\n",
    "outputs = []\n",
    "losses = []\n",
    "hidden_norms = []\n",
    "\n",
    "for x_t, y_t in zip(inputs, targets):\n",
    "    h_t = encoder(x_t)\n",
    "    y_hat = h_t @ w_readout + b_readout\n",
    "    error = y_hat - y_t\n",
    "\n",
    "    # Immediate online update for the readout parameters.\n",
    "    w_readout = w_readout - learning_rate * h_t[:, None] * error\n",
    "    b_readout = b_readout - learning_rate * error\n",
    "\n",
    "    outputs.append(y_hat.squeeze())\n",
    "    losses.append(jnp.mean(error ** 2))\n",
    "    hidden_norms.append(jnp.linalg.norm(h_t))\n",
    "\n",
    "outputs = jnp.asarray(outputs)\n",
    "losses = jnp.asarray(losses)\n",
    "hidden_norms = jnp.asarray(hidden_norms)\n",
    "\n",
    "print(f\"output trajectory shape: {outputs.shape}\")\n",
    "print(f\"mean loss, first 10 steps: {float(jnp.mean(losses[:10])):.4f}\")\n",
    "print(f\"mean loss, last 10 steps:  {float(jnp.mean(losses[-10:])):.4f}\")\n",
    "print(f\"final readout weight norm: {float(jnp.linalg.norm(w_readout)):.4f}\")\n",
    "\n",
    "fig, axes = plt.subplots(2, 1, figsize=(7, 5), sharex=True)\n",
    "axes[0].plot(np.asarray(time), np.asarray(targets[:, 0]), label=\"target\", linewidth=2)\n",
    "axes[0].plot(np.asarray(time), np.asarray(outputs), label=\"online output\")\n",
    "axes[0].set_ylabel(\"signal\")\n",
    "axes[0].legend(frameon=False)\n",
    "axes[1].plot(np.asarray(time), np.asarray(losses), color=\"tab:red\")\n",
    "axes[1].set_ylabel(\"squared error\")\n",
    "axes[1].set_xlabel(\"time\")\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d740b32",
   "metadata": {},
   "source": [
    "## 5. ETP-aware operations and hidden states\n",
    "\n",
    "BrainTrace decides which parameters participate in eligibility-trace computation from the operations used in the model. For example, ``braintrace.nn.Linear`` calls ``braintrace.matmul`` internally, so its weight is visible to the ETP compiler. Regular JAX operations can still be used for computations that should not be part of the ETP graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "61a44a9c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:10.518508Z",
     "iopub.status.busy": "2026-06-29T02:57:10.517508Z",
     "iopub.status.idle": "2026-06-29T02:57:10.582255Z",
     "shell.execute_reply": "2026-06-29T02:57:10.582255Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "braintrace.matmul output: [ 0.05 -0.35  0.5 ]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "plain JAX matmul output:  [ 0.05 -0.35  0.5 ]\n",
      "same numerical result:    True\n"
     ]
    }
   ],
   "source": [
    "x_example = jnp.array([1.0, -0.5])\n",
    "w_example = jnp.array(\n",
    "    [\n",
    "        [0.2, -0.1, 0.4],\n",
    "        [0.3, 0.5, -0.2],\n",
    "    ]\n",
    ")\n",
    "\n",
    "marked_output = braintrace.matmul(x_example, w_example)\n",
    "plain_output = x_example @ w_example\n",
    "\n",
    "print(f\"braintrace.matmul output: {marked_output}\")\n",
    "print(f\"plain JAX matmul output:  {plain_output}\")\n",
    "print(f\"same numerical result:    {bool(jnp.allclose(marked_output, plain_output))}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6ec2243",
   "metadata": {},
   "source": [
    "## 6. Compile an eligibility-trace graph\n",
    "\n",
    "The online-learning algorithms wrap a model and compile its hidden-state/parameter/primitive relationships. ``braintrace.compile`` is the convenient entry point: it constructs the requested learner, forwards options such as ``vjp_method``, and eagerly builds the eligibility-trace graph from an example input.\n",
    "\n",
    "In this example the recurrent cell is ETP-aware, while the output head is a plain ``brainstate.ParamState`` applied with standard JAX matrix multiplication. This keeps the compiled trace focused on the recurrent hidden-state dependency. Use ``braintrace.nn`` layers or explicit ETP primitives when a feedforward parameter should also be part of the ETP graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d569ccbb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:10.584259Z",
     "iopub.status.busy": "2026-06-29T02:57:10.584259Z",
     "iopub.status.idle": "2026-06-29T02:57:10.925101Z",
     "shell.execute_reply": "2026-06-29T02:57:10.925101Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "learner compiled: True\n",
      "compiled graph type: ETraceGraph\n",
      "hidden groups: 1\n",
      "hidden-parameter-op relations: 1\n",
      "parameter keys: [('out',), ('rnn', 'W', 'weight')]\n"
     ]
    }
   ],
   "source": [
    "class TinyRNNReadout(brainstate.nn.Module):\n",
    "    def __init__(self, n_in, n_hidden, n_out):\n",
    "        super().__init__()\n",
    "        self.rnn = braintrace.nn.ValinaRNNCell(\n",
    "            n_in,\n",
    "            n_hidden,\n",
    "            activation=\"tanh\",\n",
    "            w_init=0.08 * brainstate.random.randn(n_in + n_hidden, n_hidden),\n",
    "        )\n",
    "        self.out = brainstate.ParamState(\n",
    "            {\n",
    "                \"weight\": 0.1 * brainstate.random.randn(n_hidden, n_out),\n",
    "                \"bias\": jnp.zeros((n_out,)),\n",
    "            }\n",
    "        )\n",
    "\n",
    "    def update(self, x):\n",
    "        h = self.rnn(x)\n",
    "        out = self.out.value\n",
    "        return h @ out[\"weight\"] + out[\"bias\"]\n",
    "\n",
    "\n",
    "brainstate.random.seed(3)\n",
    "etp_model = TinyRNNReadout(n_in=2, n_hidden=6, n_out=1)\n",
    "etp_model.rnn.init_state()\n",
    "\n",
    "learner = braintrace.compile(\n",
    "    etp_model,\n",
    "    \"D_RTRL\",\n",
    "    inputs[0],\n",
    "    vjp_method=\"multi-step\",\n",
    ")\n",
    "\n",
    "graph = learner.graph_executor.graph\n",
    "parameter_keys = list(etp_model.states(brainstate.ParamState).keys())\n",
    "\n",
    "print(f\"learner compiled: {learner.is_compiled}\")\n",
    "print(f\"compiled graph type: {type(graph).__name__}\")\n",
    "print(f\"hidden groups: {len(graph.hidden_groups)}\")\n",
    "print(f\"hidden-parameter-op relations: {len(graph.hidden_param_op_relations)}\")\n",
    "print(f\"parameter keys: {parameter_keys}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9812fdb9",
   "metadata": {},
   "source": [
    "## 7. Multi-step data and online gradients\n",
    "\n",
    "``MultiStepData`` marks an input array whose leading axis is time. The learner can then process a full sequence while updating model states and eligibility traces internally.\n",
    "\n",
    "BrainTrace learners are stateful: each call advances hidden states and trace states. For a clean gradient example, the helper below constructs a fresh model and learner inside the loss function. In a real training loop, gradients from this pattern would be passed to an optimizer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "008c9d5b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:10.926632Z",
     "iopub.status.busy": "2026-06-29T02:57:10.926632Z",
     "iopub.status.idle": "2026-06-29T02:57:11.709253Z",
     "shell.execute_reply": "2026-06-29T02:57:11.709253Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sequence output shape: (30, 1)\n",
      "sequence loss: 0.3298\n",
      "gradient norm for ('out',): 0.1781\n",
      "gradient norm for ('rnn', 'W', 'weight'): 0.1525\n"
     ]
    }
   ],
   "source": [
    "short_inputs = inputs[:30]\n",
    "short_targets = targets[:30]\n",
    "\n",
    "\n",
    "def make_compiled_learner(seed=4):\n",
    "    brainstate.random.seed(seed)\n",
    "    model = TinyRNNReadout(n_in=2, n_hidden=6, n_out=1)\n",
    "    model.rnn.init_state()\n",
    "    learner = braintrace.compile(\n",
    "        model,\n",
    "        \"D_RTRL\",\n",
    "        short_inputs[0],\n",
    "        vjp_method=\"multi-step\",\n",
    "    )\n",
    "    return model, learner\n",
    "\n",
    "\n",
    "model_for_forward, learner_for_forward = make_compiled_learner(seed=4)\n",
    "sequence_outputs = learner_for_forward(braintrace.MultiStepData(short_inputs))\n",
    "sequence_loss_value = jnp.mean((sequence_outputs - short_targets) ** 2)\n",
    "\n",
    "model_for_grad, learner_for_grad = make_compiled_learner(seed=4)\n",
    "params = model_for_grad.states(brainstate.ParamState)\n",
    "\n",
    "\n",
    "def sequence_loss(seq):\n",
    "    y = learner_for_grad(braintrace.MultiStepData(seq))\n",
    "    return jnp.mean((y - short_targets) ** 2)\n",
    "\n",
    "\n",
    "grads = brainstate.transform.grad(sequence_loss, params)(short_inputs)\n",
    "\n",
    "grad_norms = {}\n",
    "for key, grad_tree in grads.items():\n",
    "    leaves = jax.tree_util.tree_leaves(grad_tree)\n",
    "    grad_norms[key] = sum(float(jnp.linalg.norm(leaf)) for leaf in leaves)\n",
    "\n",
    "print(f\"sequence output shape: {sequence_outputs.shape}\")\n",
    "print(f\"sequence loss: {float(sequence_loss_value):.4f}\")\n",
    "for key, norm in grad_norms.items():\n",
    "    print(f\"gradient norm for {key}: {norm:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25342a99",
   "metadata": {},
   "source": [
    "## 8. Single-step, multi-step, and batching notes\n",
    "\n",
    "Use ``SingleStepData`` for values that belong to the current time step and ``MultiStepData`` for arrays with a leading time dimension.\n",
    "\n",
    "For stateful model batching, the full BrainTrace documentation recommends compiling the model for a single sample and creating independent per-sample states with ``brainstate.transform.vmap_new_states`` or ``brainstate.nn.Vmap``. The lightweight example below only applies ordinary JAX ``vmap`` to a stateless summary function, so the batch/time shape convention is clear without adding more state-management code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c9668347",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-29T02:57:11.710262Z",
     "iopub.status.busy": "2026-06-29T02:57:11.710262Z",
     "iopub.status.idle": "2026-06-29T02:57:11.797975Z",
     "shell.execute_reply": "2026-06-29T02:57:11.797975Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SingleStepData shape: (2,)\n",
      "MultiStepData shape:  (5, 2)\n",
      "batched sequence shape: (3, 80, 2)\n",
      "per-sample sequence energy: [0.5        0.4262188  0.47953126]\n"
     ]
    }
   ],
   "source": [
    "single_step = braintrace.SingleStepData(inputs[0])\n",
    "multi_step = braintrace.MultiStepData(inputs[:5])\n",
    "\n",
    "batch_inputs = jnp.stack(\n",
    "    [\n",
    "        inputs,\n",
    "        inputs * jnp.array([0.5, 1.2]),\n",
    "        inputs * jnp.array([1.2, 0.7]),\n",
    "    ],\n",
    "    axis=0,\n",
    ")\n",
    "\n",
    "\n",
    "def sequence_energy(seq):\n",
    "    return jnp.mean(seq ** 2)\n",
    "\n",
    "\n",
    "batch_energy = jax.vmap(sequence_energy)(batch_inputs)\n",
    "\n",
    "print(f\"SingleStepData shape: {single_step.data.shape}\")\n",
    "print(f\"MultiStepData shape:  {multi_step.data.shape}\")\n",
    "print(f\"batched sequence shape: {batch_inputs.shape}\")\n",
    "print(f\"per-sample sequence energy: {batch_energy}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "450b075b",
   "metadata": {},
   "source": [
    "## 9. Choosing an algorithm\n",
    "\n",
    "BrainTrace provides several online-learning algorithms. For this overview, it is enough to know the common entry points:\n",
    "\n",
    "| Algorithm | Typical use |\n",
    "| --- | --- |\n",
    "| ``D_RTRL`` | General RNN-style online gradients with diagonal RTRL approximation. |\n",
    "| ``ES_D_RTRL`` / ``pp_prop`` | Larger models where an input-output factorized trace is preferred. |\n",
    "| ``EProp`` | Spiking or recurrent models using eligibility propagation style learning signals. |\n",
    "| ``OSTLRecurrent`` / ``OSTLFeedforward`` | Online spatial/temporal learning variants for specific recurrent or feedforward settings. |\n",
    "\n",
    "The exact choice depends on model structure, memory budget, and the approximation you want. The full [BrainTrace documentation](https://brainx.chaobrain.com/braintrace/) gives algorithm-level details and SNN examples."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ead25c10",
   "metadata": {},
   "source": [
    "## 10. Practical checks\n",
    "\n",
    "When adapting this pattern to a larger model, check the following before running long jobs:\n",
    "\n",
    "| Check | Why it matters |\n",
    "| --- | --- |\n",
    "| ``braintrace.compile(model, \"D_RTRL\", example_input, ...)`` succeeds | The compiler must see the hidden states, parameters, and ETP primitives. |\n",
    "| Hidden-state shapes match single-step input shapes | Shape mismatches often come from mixing batched and unbatched states. |\n",
    "| The expected parameters appear in ``model.states(brainstate.ParamState)`` | Only parameters stored as states can be differentiated or optimized. |\n",
    "| ETP-aware operations are used where trace relationships are needed | Ordinary JAX operations are fine for non-recurrent output heads or other parameters outside the ETP graph. |\n",
    "| ``MultiStepData`` uses a leading time axis | BrainTrace treats the first axis as time for multi-step inputs. |\n",
    "| Use fresh learners for independent gradient checks | Learners carry hidden states and eligibility traces across calls. |\n",
    "| Control flow inside ``update()`` is simple | Keep ``jax.lax.scan``, nested ``vmap``, and complex conditionals outside the model update when compiling BrainTrace graphs. |\n",
    "\n",
    "For deeper coverage, see the BrainTrace pages on [core concepts](https://brainx.chaobrain.com/braintrace/quickstart/concepts.html), [RNN online learning](https://brainx.chaobrain.com/braintrace/quickstart/rnn_online_learning.html), [ETP primitives](https://brainx.chaobrain.com/braintrace/tutorials/etp_primitives.html), and [batching](https://brainx.chaobrain.com/braintrace/tutorials/batching.html)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a502d73",
   "metadata": {},
   "source": [
    "## 11. Summary\n",
    "\n",
    "``braintrace`` adds online-learning machinery around ordinary BrainX/JAX model code. The workflow is:\n",
    "\n",
    "1. define recurrent state with ``brainstate`` modules,\n",
    "2. use ``braintrace.nn`` layers or ETP primitives for trainable operations that should participate in eligibility traces,\n",
    "3. keep ordinary ``ParamState`` and JAX operations for model parts that do not need ETP trace relationships,\n",
    "4. initialize states and call ``braintrace.compile`` with an example single-step input,\n",
    "5. run single-step or ``MultiStepData`` inputs through a learner such as ``D_RTRL``,\n",
    "6. combine the learner with gradients, optimizers, batching, and visualization as needed.\n",
    "\n",
    "This notebook is a compact overview for the BrainX tutorial collection. For full algorithms, SNN examples, graph visualization, custom primitives, and limitations, use the complete [BrainTrace documentation](https://brainx.chaobrain.com/braintrace/)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Ecosystem-py",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
