{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Quantum pipelines\n", "\n", "- `QuantumPipeline` composes stages; the same `Trainer` fits and predicts it.\n", "- `fit_mode=\"frozen_backbone\"`: a fixed 4-class model feeds a trainable head.\n", "- `fit_mode=\"joint\"`: dense, circuit, dense trained end to end as one model.\n", "- Pennylane backend throughout." ] }, { "cell_type": "markdown", "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "### 1. Data\n", "\n", "- `make_classification`, 200 samples, 4 features, 2 classes.\n", "- `normalize=\"minmax\"`, fit on train only.\n", "- A pipeline prescales each stage's input itself, so the DataModule only normalizes." ] }, { "cell_type": "code", "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:04.678989626Z", "start_time": "2026-09-19T12:18:04.561371802Z" } }, "source": [ "from sklearn.datasets import make_classification\n", "from sklearn.metrics import accuracy_score\n", "\n", "import pyqit\n", "from pyqit import DataModule, Trainer\n", "from pyqit.core import PipelineStage, QuantumPipeline\n", "from pyqit.models import VQCClassifier\n", "\n", "pyqit.set_backend(\"pennylane\")\n", "pyqit.set_seed(42)\n", "\n", "X, y = make_classification(\n", " n_samples=200, n_features=4, n_informative=4, n_redundant=0, random_state=42\n", ")\n", "dm = DataModule(\n", " X, y, normalize=\"minmax\", batch_size=16, split=(0.7, 0.15, 0.15), seed=42\n", ")" ], "outputs": [], "execution_count": 7 }, { "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "### 2. Frozen backbone, trainable head\n", "\n", "- Stage 1: 4-class `VQCClassifier`, `trainable=False`.\n", "- Stage 2: 2-class `VQCClassifier` head.\n", "- `mode=\"sequential\"` feeds each stage's output to the next; `fit_mode=\"frozen_backbone\"` trains only the head.\n", "- `fit` returns one `TrainingHistory` per trained stage." ] }, { "cell_type": "code", "id": "72eea5119410473aa328ad9291626812", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:06.118730013Z", "start_time": "2026-09-19T12:18:04.779323666Z" } }, "source": [ "backbone = PipelineStage(\n", " VQCClassifier(n_qubits=4, n_layers=4, n_classes=4),\n", " name=\"feature_extractor\",\n", " trainable=False,\n", ")\n", "head = PipelineStage(VQCClassifier(n_qubits=4, n_layers=1), name=\"classifier\")\n", "\n", "pipeline = QuantumPipeline(\n", " [backbone, head], mode=\"sequential\", fit_mode=\"frozen_backbone\"\n", ")\n", "trainer = Trainer(max_epochs=15, learning_rate=0.2)\n", "histories = trainer.fit(pipeline, datamodule=dm)\n", "\n", "preds = trainer.predict(pipeline, datamodule=dm, return_format=\"numpy\")\n", "acc = accuracy_score(dm.y_test, preds)\n", "print(f\"Frozen backbone test accuracy: {acc * 100:.2f}%\")" ], "outputs": [ { "data": { "text/plain": [ "\u001B[1;36m[\u001B[0m\u001B[1;36mPipeline\u001B[0m\u001B[1;36m]\u001B[0m QuantumPipeline | \u001B[33mmode\u001B[0m=\u001B[35msequential\u001B[0m | \u001B[33mstages\u001B[0m=\u001B[1;36m2\u001B[0m | \u001B[33mfit_mode\u001B[0m=\u001B[35mfrozen_backbone\u001B[0m\n" ], "text/html": [ "
[Pipeline] QuantumPipeline | mode=sequential | stages=2 | fit_mode=frozen_backbone\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\u001B[1;36m \u001B[0m\u001B[1;36m#\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mStage \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mModel \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mQubits\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mParams\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mStatus \u001B[0m\u001B[1;36m \u001B[0m\n", " 1 \u001B[1m \u001B[0m\u001B[1mfeature_extractor\u001B[0m\u001B[1m \u001B[0m VQCClassifier 4 48 frozen \n", " 2 \u001B[1m \u001B[0m\u001B[1mclassifier \u001B[0m\u001B[1m \u001B[0m VQCClassifier 4 12 trainable \n" ], "text/html": [ "
 #  Stage              Model          Qubits  Params  Status    \n",
       " 1  feature_extractor  VQCClassifier  4       48      frozen    \n",
       " 2  classifier         VQCClassifier  4       12      trainable \n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\n" ], "text/html": [ "
\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\u001B[1;36m[\u001B[0m\u001B[1;36m2\u001B[0m\u001B[1;36m/\u001B[0m\u001B[1;36m2\u001B[0m\u001B[1;36m]\u001B[0m\u001B[1;36m Fitting stage \u001B[0m\u001B[1;36m'classifier'\u001B[0m\n" ], "text/html": [ "
[2/2] Fitting stage 'classifier'\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "Output()" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "81d1bf1f773a4012a6de70abbc395f10" } }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [], "text/html": [ "
\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001B[1;32m[\u001B[0m\u001B[1;32mTrainer\u001B[0m\u001B[1;32m]\u001B[0m Training complete.\n"
      ],
      "text/html": [
       "
[Trainer] Training complete.\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Frozen backbone test accuracy: 60.00%\n" ] } ], "execution_count": 8 }, { "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "source": [ "### 3. Joint mode\n", "\n", "- `DenseLayer` and `QuantumLayer` emit features, `DenseClassifier` is the head.\n", "- `fit_mode=\"joint\"` hands the pipeline to the loop as one model, so the loss at the head trains every stage.\n", "- `weights` is one flat dict, keyed `..`.\n", "- `check_bp=True` samples the quantum stage's gradients before training.\n" ] }, { "cell_type": "code", "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:13.755325151Z", "start_time": "2026-09-19T12:18:06.123410575Z" } }, "source": [ "from pyqit.models.layers import DenseClassifier, DenseLayer, QuantumLayer\n", "\n", "hybrid = QuantumPipeline(\n", " [\n", " (\"pre\", DenseLayer(n_features=4, n_out=4, activation=\"tanh\")),\n", " (\"quantum\", QuantumLayer(n_qubits=4, n_layers=2)),\n", " (\"head\", DenseClassifier(n_features=4)),\n", " ],\n", " fit_mode=\"joint\",\n", ")\n", "dm_new = DataModule(\n", " X, y, normalize=\"minmax\", batch_size=16, split=(0.7, 0.15, 0.15), seed=42\n", ")\n", "\n", "trainer_new = Trainer(\n", " max_epochs=15, learning_rate=0.05, loss_fn=\"cross_entropy\", check_bp=True\n", ")\n", "history_new = trainer_new.fit(hybrid, datamodule=dm_new)\n", "\n", "print(list(hybrid.weights))" ], "outputs": [ { "data": { "text/plain": [ "\u001B[1;36m[\u001B[0m\u001B[1;36mPipeline\u001B[0m\u001B[1;36m]\u001B[0m QuantumPipeline | \u001B[33mmode\u001B[0m=\u001B[35msequential\u001B[0m | \u001B[33mstages\u001B[0m=\u001B[1;36m3\u001B[0m | \u001B[33mfit_mode\u001B[0m=\u001B[35mjoint\u001B[0m\n" ], "text/html": [ "
[Pipeline] QuantumPipeline | mode=sequential | stages=3 | fit_mode=joint\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\u001B[1;36m \u001B[0m\u001B[1;36m#\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mStage \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mModel \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mQubits\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mParams\u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mStatus \u001B[0m\u001B[1;36m \u001B[0m\n", " 1 \u001B[1m \u001B[0m\u001B[1mpre \u001B[0m\u001B[1m \u001B[0m DenseLayer N/A 20 trainable \n", " 2 \u001B[1m \u001B[0m\u001B[1mquantum\u001B[0m\u001B[1m \u001B[0m QuantumLayer 4 24 trainable \n", " 3 \u001B[1m \u001B[0m\u001B[1mhead \u001B[0m\u001B[1m \u001B[0m DenseClassifier N/A 5 trainable \n" ], "text/html": [ "
 #  Stage    Model            Qubits  Params  Status    \n",
       " 1  pre      DenseLayer       N/A     20      trainable \n",
       " 2  quantum  QuantumLayer     4       24      trainable \n",
       " 3  head     DenseClassifier  N/A     5       trainable \n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\n" ], "text/html": [ "
\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [], "text/html": [ "
\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "Output()"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "505b486423124e4f9ac0c1df3042c093"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\u001B[3m               BP Diagnostic Result : \u001B[0m\u001B[1;3;31mBARREN PLATEAU\u001B[0m\u001B[3m               \u001B[0m\n",
      "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓\n",
      "┃\u001B[1;36m \u001B[0m\u001B[1;36mMetric / Layer                     \u001B[0m\u001B[1;36m \u001B[0m┃\u001B[1;36m \u001B[0m\u001B[1;36m   Value\u001B[0m\u001B[1;36m \u001B[0m┃\u001B[1;36m \u001B[0m\u001B[1;36m        Status\u001B[0m\u001B[1;36m \u001B[0m┃\n",
      "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩\n",
      "│\u001B[1m \u001B[0m\u001B[1mQubits                             \u001B[0m\u001B[1m \u001B[0m│        4 │                │\n",
      "│\u001B[1m \u001B[0m\u001B[1mSamples                            \u001B[0m\u001B[1m \u001B[0m│      200 │                │\n",
      "│\u001B[1m \u001B[0m\u001B[1mCircuit Executions                 \u001B[0m\u001B[1m \u001B[0m│      200 │                │\n",
      "│\u001B[1m \u001B[0m\u001B[1mExpected Variance                  \u001B[0m\u001B[1m \u001B[0m│ 5.21e-03 │       \u001B[2mBaseline\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mQuantum Variance                   \u001B[0m\u001B[1m \u001B[0m│ \u001B[31m7.39e-04\u001B[0m │ \u001B[1;31mBARREN PLATEAU\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mClassical Variance                 \u001B[0m\u001B[1m \u001B[0m│ 7.44e-03 │            \u001B[2mN/A\u001B[0m │\n",
      "├─────────────────────────────────────┼──────────┼────────────────┤\n",
      "│\u001B[1m \u001B[0m\u001B[1mLayer: quantum.main_circuit.weights\u001B[0m\u001B[1m \u001B[0m│   \u001B[31m0.142x\u001B[0m │      \u001B[1;31m← plateau\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mLayer: pre.dense.weight            \u001B[0m\u001B[1m \u001B[0m│   \u001B[31m0.810x\u001B[0m │      \u001B[1;31m← plateau\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mLayer: pre.dense.bias              \u001B[0m\u001B[1m \u001B[0m│   \u001B[32m2.781x\u001B[0m │        \u001B[32mHealthy\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mLayer: head.dense.weight           \u001B[0m\u001B[1m \u001B[0m│   \u001B[32m1.997x\u001B[0m │        \u001B[32mHealthy\u001B[0m │\n",
      "│\u001B[1m \u001B[0m\u001B[1mLayer: head.dense.bias             \u001B[0m\u001B[1m \u001B[0m│   \u001B[31m0.131x\u001B[0m │      \u001B[1;31m← plateau\u001B[0m │\n",
      "└─────────────────────────────────────┴──────────┴────────────────┘\n"
     ]
    },
    {
     "data": {
      "text/plain": [],
      "text/html": [
       "
\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001B[1;32m[\u001B[0m\u001B[1;32mTrainer\u001B[0m\u001B[1;32m]\u001B[0m Training complete.\n"
      ],
      "text/html": [
       "
[Trainer] Training complete.\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "['pre.dense.weight', 'pre.dense.bias', 'quantum.main_circuit.weights', 'head.dense.weight', 'head.dense.bias']\n" ] } ], "execution_count": 9 }, { "cell_type": "code", "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:13.789118811Z", "start_time": "2026-09-19T12:18:13.758169238Z" } }, "source": [ "preds_new = trainer_new.predict(hybrid, datamodule=dm_new, return_format=\"numpy\")\n", "acc_new = accuracy_score(dm_new.y_test, preds_new)\n", "print(f\"Joint pipeline test accuracy: {acc_new * 100:.2f}%\")" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Joint pipeline test accuracy: 66.67%\n" ] } ], "execution_count": 10 }, { "cell_type": "markdown", "id": "b118ea5561624da68c537baed56e602f", "metadata": {}, "source": [ "### 4. The same network as a hybrid model\n", "\n", "- `DressedQuantumClassifier` (Mari et al. 2020) is this dense, circuit, dense network prebuilt, with the pipeline inside `forward`.\n", "- It takes `n_features` instead of an encoder and is fit like any other model.\n", "- Its weights are the layers', under `pre_net.*`, `quantum.*` and `post_net.*`." ] }, { "cell_type": "code", "id": "938c804e27f84196a10c8828c723f798", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:14.910950801Z", "start_time": "2026-09-19T12:18:13.815775062Z" } }, "source": [ "from pyqit.models import DressedQuantumClassifier\n", "\n", "dressed = DressedQuantumClassifier(n_features=4, n_qubits=4, n_layers=2)\n", "history_dressed = Trainer(\n", " max_epochs=15, learning_rate=0.05, loss_fn=\"cross_entropy\"\n", ").fit(dressed, datamodule=DataModule(X, y, normalize=\"minmax\", batch_size=16, seed=42))\n", "\n", "print(list(dressed.weights))" ], "outputs": [ { "data": { "text/plain": [ "\u001B[1;36m \u001B[0m\u001B[1;36mParameter \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36m \u001B[0m\u001B[1;36mValue \u001B[0m\u001B[1;36m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mModel Name \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mDressedQuantumClassifier\u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mType \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mhybrid classifier \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mBackend \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mPennylane \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mQubits \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1m4 \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mAnsatz \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mN/A \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mEncoder \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mN/A \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mTrainable Params \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1m33 \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mDevice \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mdefault.qubit \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mDiff Method \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mbackprop \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mOptimizer \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1mADAM \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mLearning Rate \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1m0.05 \u001B[0m\u001B[1m \u001B[0m\n", "\u001B[2m \u001B[0m\u001B[2mTrain / Val Samples \u001B[0m\u001B[2m \u001B[0m\u001B[1m \u001B[0m\u001B[1m140 / 30 \u001B[0m\u001B[1m \u001B[0m\n" ], "text/html": [ "
 Parameter             Value                    \n",
       " Model Name            DressedQuantumClassifier \n",
       " Type                  hybrid classifier        \n",
       " Backend               Pennylane                \n",
       " Qubits                4                        \n",
       " Ansatz                N/A                      \n",
       " Encoder               N/A                      \n",
       " Trainable Params      33                       \n",
       " Device                default.qubit            \n",
       " Diff Method           backprop                 \n",
       " Optimizer             ADAM                     \n",
       " Learning Rate         0.05                     \n",
       " Train / Val Samples   140 / 30                 \n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\n" ], "text/html": [ "
\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "Output()" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "5db71429ce084671bcfa3cced3548a4d" } }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [], "text/html": [ "
\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001B[1;32m[\u001B[0m\u001B[1;32mTrainer\u001B[0m\u001B[1;32m]\u001B[0m Training complete.\n"
      ],
      "text/html": [
       "
[Trainer] Training complete.\n",
       "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "['pre_net.weight', 'pre_net.bias', 'quantum.weights', 'post_net.weight', 'post_net.bias']\n" ] } ], "execution_count": 11 }, { "cell_type": "markdown", "id": "7623eae2785240b9bd12b16a66d81610", "metadata": {}, "source": [ "### 5. Loss curves" ] }, { "cell_type": "code", "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": { "ExecuteTime": { "end_time": "2026-09-19T12:18:15.015203248Z", "start_time": "2026-09-19T12:18:14.923552320Z" } }, "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot(histories[\"classifier\"].train_loss, label=\"frozen backbone: head\")\n", "plt.plot(history_new.train_loss, label=\"joint\")\n", "plt.plot(history_dressed.train_loss, label=\"dressed model\")\n", "plt.xlabel(\"epoch\")\n", "plt.ylabel(\"train loss\")\n", "plt.legend()\n", "plt.show()" ], "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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7rvvAVBSUsL33//QLAWJiIiI7IlG9blRsBEREZHWqkk7FIuIiIiEm8KNiIiIRBSFGxEREYkoCjciIiISURRuREREJKIo3IiIiEhEUbgRERGRiKJwIyIiIhFF4UZEREQiisKNiIiIRBSFGxEREYkoCjciIiISURRuREREJKIo3IiIiEhEUbgRERGRiKJwIyIiIhFF4UZEREQiisKNiIiIRBRzuAtITEzgmGOOITUlhX+XLOHHH38iEAg0aNu+ffpw7LHHMH3GDCZO/LWZKxUREZG9QVhbbtq3b8+vEydy7DHHEBUVxd133cnbb7+JwWDY5baxsbG8/MpLnHPO2RxwwP4tUK2IiIjsDcIabm6//X9s2LCeU087nfsfeJBTTj2d0QceyHHHHrvLbR/7v0f5+quv2bBhQwtUKiIiInuLsIUbk8nEYYcexudffInf7wdg3bp1TJ06lSOOHLfTbc888wzatWvHk0893QKVioiIyN4kbH1usrOzcTjsrFm9pt7y1WvWMHjw4B1u1717d2695WaOPe4EfD5fg45ltVqxWq2h59HR0Y2qWURERFq/sIWbqKgoACqrKustr6yoJMoRtd1t7HY7L7/0Ig8//Ahr1qxp8LGuufoqbrjh+kbXKiIiInuPsIWb6upqAGJj4+otj4uPo6amervbnHjiCWRlZdK5c2du+9+tAKSlpTF0yFBu+9+tPPzIo9sdafXc8y/wyqvjQ8+jo6OZM3tmU70VERERaUXCFm42btxIdXU13bp24Y8//ggt79qlK8uXr9juNgvmL+CFF16st8zn8+N211JRUbHDIeRutxu32910xYuIiEirFbZw4/f7+fGnnzj55JN559338Hg8dO/enWHDhnLZ5VeE1jviiHFkZ2fz2muvs2DhQhYsXFhvP8cddyzz5s/n+a1Cj4iIiLRNYR0K/tBDj5CQEM+333zF/z36CJ9+8hHff/8DP/74U2idQw4+mDPPOCOMVYqIiMjeJKwzFOfl5XHIoWM5fOxYUlJT+Pa77/jrr7/rrfP9Dz8wa9asHe7jtdfeYGPOxuYuVURERPYShsysdg2710EEiYmJYdnSf+nRsxdVVVXhLkdEREQaoKGf37pxpoiIiEQUhRsRERGJKAo3IiIiElEUbkRERCSiKNyIiIhIRFG4ERERkYiicCMiIiIRReFGREREIorCjYiIiEQU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PY6NjWX//fdjxowZAEyfPoPevXvTsWPH0DpHHXUktbW1LFiwEIA//viTXr160adP73r7TUpKatL3JCLhp5YbEQmbv/76m3ffe4933n6TN958i7Vr1tC1a1fGHTGOM844q94w7ZNOOhGT2cSKFSs568wzyMnJ5dPPPgfgjz//5LfffuejD9/ntddeJzYujquuvIKnnn4mNKz8z7/+4rPPP+fjjz/i9ddep6i4mHGHH85nn33Ol199FY63LyLNREPBRSTsRo8ezaGHHExUVBTLli/n008+paQ02Odm0xDtw8cdyQH770e3bt1Yv349r7/xJhUVFaF9mM1mTjn5JIYOHUqt283EiRP59dfftjnWuHHjGDPmQHxeHz///At//vUXEGzBefCB+7nzrrvrzbPzzDNPMf7V11i4aFEznwURaSoKNyLSqm0KN6P2O4A1DegQLCKiPjciIiISURRuRKRVq6mp4euvv6GqqircpYjIXkKXpURERCSiqOVGREREIorCjYiIiEQUhRsRERGJKAo3IiIiElEUbkRERCSiKNyIiIhIRFG4ERERkYiicCMiIiIRReFGREREIsr/A0L2G8uvgCoXAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 12 } ], "metadata": { "kernelspec": { "display_name": ".venv (3.12.3)", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }