{
  "schemaVersion": 1,
  "lessonId": "recovery-03",
  "contentHash": "7a9557db16fcc99d2f36eb35d15264536a412380c94f1a1ecada3fae051b2b13",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:45:43.384535+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Restored step: 3\nOptimizer count: 3\nNext update and loss agree; checkpoint exists: True\n",
  "data": {
    "kind": "bar",
    "x": [
      0,
      1
    ],
    "labels": [
      "leaf 0",
      "leaf 1"
    ],
    "xlabel": "checkpoint parameter leaf index",
    "ylabel": "L2 norm",
    "series": [
      {
        "label": "uninterrupted step",
        "y": [
          0.07066326588392258,
          0.19857126474380493
        ]
      },
      {
        "label": "restored from Orbax",
        "y": [
          0.07066326588392258,
          0.19857126474380493
        ]
      }
    ]
  }
}
