{
 "nbformat": 4,
 "nbformat_minor": 5,
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.12"
  },
  "lecture_validation": {
   "status": "executed-top-to-bottom-local-cpu",
   "cloud_execution": false,
   "executor": "standard Python exec per cell in fresh notebook namespace; stdout/stderr and plt.show captured",
   "format_check": "v4.5 required notebook/cell/output fields checked",
   "code_cells": 7,
   "figure_inspection": "All eight output figures visually inspected locally as PNG; HTML/notebook frontend not browser-inspected"
  },
  "title": "LAB 11 · 何时继续计算"
 },
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "html_anchor": "cell-1",
    "deepnote": {
     "block_id": "aec2f6678c2e437e86f6df49ce7b7b46"
    }
   },
   "source": [
    "# LAB 11 · 何时继续计算\n",
    "\n",
    "[返回第二讲 · 早退与错停风险](https://codingai-lec02.pages.dev/#/frontier-adaptive-early-exits/0) · [网页阅读版](https://codingai-lec02.pages.dev/course/lab13.html) · [第二讲导读](https://codingai-lec02.pages.dev/course/guide.html) · [问卷作业 ↗](https://tally.so/r/VLroVv)（右键在新标签页打开，保留当前材料）\n",
    "\n",
    "**什么时候值得继续计算？** 固定训练好的两个出口，先预测阈值变化，再看保存的验证选择与测试错停。最简单的固定浅出口也要参加比较。\n",
    "\n",
    "| 课堂动作 | 看哪里 | 完成什么 |\n",
    "|---|---|---|\n",
    "| 先读不运行 | 第 2 节三条路径账本与准确率—MAC 图 | 解释动态规则为何没有赢过固定浅出口 |\n",
    "| 只改一条规则 | 第 3 节阈值练习 | 写出预期，再按验证数据重新选择 |\n",
    "| 观察具体失败 | 错停样本图 | 区分“浅头答错”与“继续能纠正” |\n",
    "\n",
    "数据是 sklearn digits 的 1797 张 8×8 图像，模型为 `DigitsMultiExitBN-integration-20260918-lcde-r1`，与主讲前面的 MNIST 机制输入不是一次连续运行。保存结果来自 2026-09-18：程序先计算两个出口，再离线回放阈值，因此 MAC 账本不是实测早退加速。\n",
    "\n",
    "可直接读保存图；独立运行依赖 `numpy torch scikit-learn matplotlib`，从 `load_digits()` 与本册可读代码重建，不依赖另一册的 checkpoint。若顺序运行全本，会重新训练源模型并写出本地结果，课程保存输出仍用于对照。"
   ],
   "id": "cell-000"
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "html_anchor": "cell-2",
    "deepnote": {
     "block_id": "d45a314e8a0d45009818149d71eb0a07"
    }
   },
   "source": [
    "## 先读这次保存运行，再作预测\n",
    "\n",
    "先记下你的预测：动态出口是否一定比固定浅出口更划算？\n",
    "\n",
    "保存运行用验证集选出 τ=0.50；测试全深度 97.22%，动态 95.83%，固定浅出口也是 95.83%。动态平均 3091.73 MAC，而固定浅出口为 2944 MAC。**相同准确率下，动态规则没有在这份乘加账本上占优。**\n",
    "\n",
    "随后用第 2 节的三条路径解释额外成本，再看错停：357/360 张图早退，14 张错停，其中 6 张本可由深出口纠正。验证允许下降 1 个百分点，测试下降 1.39 个百分点；留出评价并不继承验证集上的约束保证。\n"
   ],
   "id": "saved-reference-findings"
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "html_anchor": "cell-3"
   },
   "source": "## 1. 什么在训练，什么在部署时改变？\n\n模型：输入 N×1×8×8 → Conv(1→4,3×3)+BN+ReLU+平均池化 → N×4×4×4。浅出口 flatten→10；深路径再 Conv(4→16,3×3)+BN+ReLU→flatten256→MLP32→10。两个出口一起用源标签训练 `0.35 CE(early)+CE(final)`，50 轮中选验证集最终出口 CE 最低的 checkpoint。\n\n这里训练参数是固定的，部署决策只选择用哪个出口的预测；与 Tent 更新 BN 参数的实验不同。固定划分约 60／20／20，分层随机按图像划分，**不是按书写者隔离**。测试标签不参与选 checkpoint 或选阈值。\n",
   "id": "cell-001"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-4"
   },
   "source": "LAB_ID='LAB13-D'\n\nfrom pathlib import Path\nfrom copy import deepcopy\nimport csv, hashlib, json, platform, sys, time\nimport numpy as np\nimport torch\nfrom torch import nn\nimport torch.nn.functional as F\nimport sklearn\nfrom sklearn.datasets import load_digits\nfrom sklearn.model_selection import train_test_split\nimport matplotlib.pyplot as plt\nSEED = 20260918\nnp.random.seed(SEED); torch.manual_seed(SEED)\ntorch.set_num_threads(1)\ntorch.use_deterministic_algorithms(True)\nOUTPUT = Path('outputs') / LAB_ID\nOUTPUT.mkdir(parents=True, exist_ok=True)\nplt.rcParams.update({'figure.dpi':120, 'font.size':10, 'axes.spines.top':False, 'axes.spines.right':False})\ndef save_json(name, obj):\n    (OUTPUT/name).write_text(json.dumps(obj,ensure_ascii=False,indent=2))\ndef save_csv(name, rows):\n    with (OUTPUT/name).open('w',newline='') as f:\n        w=csv.DictWriter(f, fieldnames=list(rows[0])); w.writeheader(); w.writerows(rows)\ndef digest_array(a): return hashlib.sha256(np.ascontiguousarray(a).tobytes()).hexdigest()\ndef print_table(rows, cols=None):\n    cols=cols or list(rows[0]); print(' | '.join(cols)); print(' | '.join(['---']*len(cols)))\n    for row in rows:\n        print(' | '.join(f'{row[c]:.5f}' if isinstance(row[c],float) else str(row[c]) for c in cols))\ncpu_lines=Path('/proc/cpuinfo').read_text().splitlines() if Path('/proc/cpuinfo').exists() else []\ncpu_name=next((line.split(':',1)[1].strip() for line in cpu_lines if line.startswith('model name')),platform.processor())\nenvironment={'python':sys.version.split()[0],'torch':torch.__version__,'numpy':np.__version__,\n             'sklearn':sklearn.__version__,'cpu':cpu_name,'platform':platform.platform(),\n             'torch_threads':torch.get_num_threads(),'device':'cpu','dtype':'float32',\n             'seed':SEED,'exclusive_hardware':False}\nsave_json('environment.json',environment)\nprint(json.dumps(environment,ensure_ascii=False,indent=2))\n",
   "execution_count": 1,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "{\n  \"python\": \"3.12.14\",\n  \"torch\": \"2.14.0+cpu\",\n  \"numpy\": \"2.3.5\",\n  \"sklearn\": \"1.8.0\",\n  \"cpu\": \"INTEL(R) XEON(R) PLATINUM 8573C\",\n  \"platform\": \"Linux-6.18.44-x86_64-with-glibc2.39\",\n  \"torch_threads\": 1,\n  \"device\": \"cpu\",\n  \"dtype\": \"float32\",\n  \"seed\": 20260918,\n  \"exclusive_hardware\": false\n}\n"
    }
   ],
   "id": "cell-002"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-5"
   },
   "source": "dataset = load_digits()\nX = torch.tensor(dataset.images[:,None,:,:] / 16.0, dtype=torch.float32)\ny = torch.tensor(dataset.target, dtype=torch.long)\nall_ids = np.arange(len(y))\ntrainval_ids, test_ids = train_test_split(all_ids, test_size=0.2, random_state=SEED, stratify=y.numpy())\ntrain_ids, val_ids = train_test_split(trainval_ids, test_size=0.25, random_state=SEED, stratify=y.numpy()[trainval_ids])\nassert not (set(train_ids)&set(val_ids) or set(train_ids)&set(test_ids) or set(val_ids)&set(test_ids))\nassert len(train_ids)+len(val_ids)+len(test_ids)==len(y)\nsplit_manifest={'dataset':'sklearn.datasets.load_digits; 1797 real 8x8 images; pixel/16',\n                'counts':{'train':len(train_ids),'validation':len(val_ids),'test':len(test_ids)},\n                'train_ids':train_ids.tolist(),'validation_ids':val_ids.tolist(),'test_ids':test_ids.tolist(),\n                'input_sha256':digest_array(X.numpy()),'labels_sha256':digest_array(y.numpy()),\n                'split_policy':'stratified random by sample, NOT writer-disjoint', 'test_labels':'evaluation only'}\nsave_json('split-manifest.json',split_manifest)\nprint('Split:',split_manifest['counts'])\n",
   "execution_count": 2,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Split: {'train': 1077, 'validation': 360, 'test': 360}\n"
    }
   ],
   "id": "cell-003"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-6"
   },
   "source": "MODEL_ID = 'DigitsMultiExitBN-integration-20260918-lcde-r1'\nclass DigitsMultiExitBN(nn.Module):\n    def __init__(self):\n        super().__init__()\n        self.conv1=nn.Conv2d(1,4,3,padding=1,bias=False)\n        self.bn1=nn.BatchNorm2d(4)\n        self.early=nn.Linear(4*4*4,10)\n        self.conv2=nn.Conv2d(4,16,3,padding=1,bias=False)\n        self.bn2=nn.BatchNorm2d(16)\n        self.fc=nn.Linear(16*4*4,32)\n        self.final=nn.Linear(32,10)\n    def forward(self,x):\n        h=F.avg_pool2d(F.relu(self.bn1(self.conv1(x))),2)\n        early=self.early(h.flatten(1))\n        h=F.relu(self.bn2(self.conv2(h)))\n        final=self.final(F.relu(self.fc(h.flatten(1))))\n        return early,final\n\ndef train_source():\n    torch.manual_seed(SEED)\n    model=DigitsMultiExitBN()\n    optimizer=torch.optim.Adam(model.parameters(),lr=0.003)\n    order_generator=torch.Generator().manual_seed(SEED+1)\n    best_loss=float('inf'); best_state=None; best_epoch=None; history=[]\n    for epoch in range(1,51):\n        model.train()\n        order=torch.as_tensor(train_ids)[torch.randperm(len(train_ids),generator=order_generator)]\n        total=0.0\n        for ids in order.split(64):\n            optimizer.zero_grad(set_to_none=True)\n            early,final=model(X[ids]); loss=0.35*F.cross_entropy(early,y[ids])+F.cross_entropy(final,y[ids])\n            loss.backward(); optimizer.step(); total += loss.item()*len(ids)\n        model.eval()\n        with torch.no_grad():\n            ve,vf=model(X[val_ids]); val_loss=F.cross_entropy(vf,y[val_ids]).item()\n        history.append({'epoch':epoch,'train_weighted_loss':total/len(train_ids),\n                        'validation_final_ce':val_loss,'validation_early_acc':(ve.argmax(1)==y[val_ids]).float().mean().item(),\n                        'validation_final_acc':(vf.argmax(1)==y[val_ids]).float().mean().item()})\n        if val_loss < best_loss:\n            best_loss=val_loss; best_state=deepcopy(model.state_dict()); best_epoch=epoch\n    model.load_state_dict(best_state); model.eval()\n    return model,history,best_epoch\nsource_model,train_history,best_epoch=train_source()\nsource_state=deepcopy(source_model.state_dict())\nstate_hash=hashlib.sha256(b''.join(k.encode()+v.cpu().numpy().tobytes() for k,v in sorted(source_state.items()))).hexdigest()\nsave_csv('source-training.csv',train_history)\n# Transparent JSON state is a local convenience; notebook always reconstructs from readable code.\nsave_json('source-state.json',{k:v.tolist() for k,v in source_state.items()})\nmodel_manifest={'model_id':MODEL_ID,'state_sha256':state_hash,'best_epoch':best_epoch,\n                'checkpoint_selection':'minimum validation final-exit CE over 50 epochs',\n                'train_loss':'0.35*CE(early)+CE(final)','optimizer':'Adam lr=0.003 batch=64',\n                'initialization_seed':SEED,'params':sum(p.numel() for p in source_model.parameters()),\n                'old_LAB02_dependency':False,'data_split_sha256':hashlib.sha256(json.dumps(split_manifest,sort_keys=True).encode()).hexdigest()}\nsave_json('model-manifest.json',model_manifest)\nprint(json.dumps(model_manifest,indent=2))\n",
   "execution_count": 3,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "{\n  \"model_id\": \"DigitsMultiExitBN-integration-20260918-lcde-r1\",\n  \"state_sha256\": \"544bb0f79f5759b66656565e3e4c5a59a5dd8f2893a067d93a7fe331439c685c\",\n  \"best_epoch\": 48,\n  \"checkpoint_selection\": \"minimum validation final-exit CE over 50 epochs\",\n  \"train_loss\": \"0.35*CE(early)+CE(final)\",\n  \"optimizer\": \"Adam lr=0.003 batch=64\",\n  \"initialization_seed\": 20260918,\n  \"params\": 9856,\n  \"old_LAB02_dependency\": false,\n  \"data_split_sha256\": \"6f705c12f1651f0c5b871f8ff65f4241bdbc1ffbd61a5f0fc56ac95bbb0cf129\"\n}\n"
    }
   ],
   "id": "cell-004"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-7"
   },
   "source": "fig,ax=plt.subplots(figsize=(7.5,3))\nax.plot([r['epoch'] for r in train_history],[r['validation_early_acc'] for r in train_history],label='early')\nax.plot([r['epoch'] for r in train_history],[r['validation_final_acc'] for r in train_history],label='final')\nax.axvline(best_epoch,color='gray',linestyle='--',label='selected by final CE')\nax.set(xlabel='Source training epoch',ylabel='Validation accuracy',ylim=(0,1)); ax.legend()\nfig.tight_layout(); fig.savefig(OUTPUT/'training.png'); plt.show()\nwith torch.inference_mode():\n    val_early,val_final=source_model(X[val_ids]); test_early,test_final=source_model(X[test_ids])\nfor split,ids,e,f in [('validation',val_ids,val_early,val_final),('test',test_ids,test_early,test_final)]:\n    rows=[]\n    for i,sample_id in enumerate(ids):\n        row={'sample_id':int(sample_id),'target':int(y[sample_id])}\n        row.update({f'early_logit_{k}':float(e[i,k]) for k in range(10)})\n        row.update({f'final_logit_{k}':float(f[i,k]) for k in range(10)})\n        rows.append(row)\n    save_csv(f'{split}-exit-logits.csv',rows)\nprint('Both exits computed and saved; no runtime early exit implemented.')\n",
   "execution_count": 4,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Both exits computed and saved; no runtime early exit implemented.\n"
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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SE5Oho+PD8LCwqwdTq1hVnI3bty4Mrc1aNAAb775JubNm2fOKchEl5I14+3qOzmgvjNnyiQiIiKi2iM5ORkJCQnWDqPWMSu5i4uLMygTBAEeHh5wcWFrkTXFpmha7rh4ORERERFR3WBWcufv72+pOMiC1Op7M2W24Hg7IiIiIqI6wazZTk6cOIEVK1aUuX3FihWIjo425xRkght385BXqALAZRCIiIiIiOoKs5K7t956C7t27Spz+549ezBnzhyT61cqlZg5cyb8/PygUCgQGhqKnTt3Gn38Dz/8gE6dOsHJyQnu7u7o3Lkz9uzZY3I8tUXJmTJb+jC5IyIiIiKqC8xK7v777z906dKlzO1dunTB8ePHTa5/3LhxWLp0KUaNGoVly5ZBKpWiX79+OHjwYIXHLliwACNGjECjRo2wdOlSvPPOO2jXrh0SExNNjqe2iCmR3LXwYnJHRERERFQXmDXmLisrC3Z2ZVchkUiQkZFhUt3Hjh3D999/jyVLlmD69OkAgIiICLRp0wZvvPEGDh8+XOax//zzDxYtWoSPP/4Yr732mknnr820yZ23qwxujvZWjoaIiIiIiKqDWS13zZs3x19//VXm9qioKDRt2tSkujdv3gypVIoJEyboyuRyOcaPH48jR47g+vXrZR776aefwsfHB6+++ipEUUR2drZJMdRWMbrJVNhqR0RERERUV5iV3I0fPx6///47Xn/9daSnp+vK09PT8dprryEqKgrjx483qe6TJ0+iRYsWcHV11SsPCQkBgHInatm9ezc6duyIzz77DJ6ennBxcYGvry+WL19u1LlTUlJw7tw5vdvly5dNeh7VrUilxpUUJndEREREVHsFBwejW7duCA4OtnYotYpZ3TKnTJmC6OhofPrpp/jss8/g5+cHALh58ybUajXGjBljcrfIpKQk+Pr6GpRry27evFnqcXfv3kVaWhoOHTqEPXv2YP78+WjcuDFWr16NV155Bfb29pg4cWK5516xYgUWLlxoUtzWlnAnFwUqNQAug0BEREREtROTOtOYldwJgoDVq1cjIiICW7ZswdWrVwEATz31FAYPHozu3bubXHdeXh5kMplBuVwu120vjbYL5u3bt/H9999j2LBhAIDw8HC0bdsW77zzToXJ3aRJkzBkyBC9ssuXL2PQoEGVfRrVLia5xGQqbLkjIiIiIqozzErutHr06IEePXpYoiodhUIBpVJpUJ6fn6/bXtZxAGBvb4/w8HBduUQiwbBhwzB//nxcu3YNjRs3LvPcXl5e8PLyMid8q9GOtwO4xh0RERERUV1i1pi7uLg4bN++vczt27dvR3x8vEl1+/r6IikpyaBcW6btAnq/evXqQS6Xo379+pBKpXrbtAnb3bt3TYqpNohJ0bTcNXRXwFlmkdydiIiIiKhaRUdHY9++feXOs0GGzErupk+fjs8++6zM7V988QXefPNNk+oODg5GTEwMMjMz9cqPHj2q214aiUSC4OBgpKamoqCgQG+bdpyep6enSTHVBtpumRxvR0RERES1VXR0NPbv38/krpLMSu6OHDmCJ554osztjz/+OP7++2+T6g4PD4dKpcLKlSt1ZUqlEqtXr0ZoaCgaNWoEALh27RouXryod+ywYcOgUqmwZs0aXVl+fj42bNiA1q1bl9nqV9sVFKkRl5YDAGjhwy6ZRERERER1iVn99u7evQsXl7KTCGdnZ9y+fdukukNDQzFkyBDMmjULKSkpaNasGdasWYP4+HisWrVKt19ERAT2798PURR1ZRMnTsS3336Ll19+GTExMWjcuDHWrVuHhISEcruR1nZxaTkoUmtehxZeTO6IiIiIiOoSs1ruGjdujEOHDpW5/e+//8YDDzxgcv1r167F1KlTsW7dOkyZMgWFhYX47bff0LVr13KPUygU2LNnD0aOHInvvvsOM2bMgEQiwe+//46+ffuaHE9NF3Pr3kyZLdlyR0RERERUp5jVcjdixAi8/fbbCAkJweTJkyGRaHJFlUqF5cuX44cffsBbb71lcv1yuRxLlizBkiVLytxn3759pZZ7eXkhMjLS5HPXRtrkThCAQE+OuSMiIiIiqkvMSu5mzZqFgwcPYurUqVi8eDFatmwJALh06RJSU1PRvXt3s5I7qhxtcudfzxEKB2kFexMRERERkS0xq1umTCbDX3/9hVWrViEkJARpaWlIS0tDSEgIvvvuO+zatavUhcipamjXuOP6dkREREREdY/ZC6FJJBI8++yzePbZZy0RD5kov1CFhNuamTJbMrkjIiIiIqpzuMq1jbicko3iiTLRnGvcEREREVEt5uPjo/eTjGN2cpecnIxVq1bhxIkTyMjIgFqt1tsuCAJ2795t7mmoArEp92bKbMGWOyIiIiKqxcLCwqwdQq1kVnJ3+vRpdO/eHXl5eWjZsiXOnDmD1q1bIz09HYmJiQgMDNQtNk5V61KyZrydVCKgqaeTlaMhIiIiIqLqZtaEKm+++SacnZ1x6dIl7Nq1C6IoYtmyZbh+/Tp++OEH3L17F++//76lYqVyxBbPlBlQ3xEyO86USURERERU15iV3B06dAgTJ05E48aNdWvcabtlDhkyBKNGjcKMGTPMj5IqdKk4uePi5URERERU2yUnJyM+Ph7JycnWDqVWMSu5U6vV8Pb2BgC4u7tDKpXizp07uu1t27bFf//9Z16EVKEcZRFu3M0DADT3YnJHRERERLVbVFQU1qxZg6ioKGuHUquYldw1adIEcXFxmookEjRp0gS7du3SbT98+DDc3d3NCpAqFpuSrbvPljsiIiIiorrJrOSud+/e+Omnn3SPX3rpJXz77bfo1asXHn/8caxZswYjR440O0gqX8ytkjNlchkEIiIiIqK6yKzZMt966y2MGDEChYWFsLe3x9SpU5GTk4MtW7ZAKpVi7ty5mD17tqVipTLEJGuSOwepBP71OVMmEREREVFdZFZy5+HhgQ4dOugeC4KAOXPmYM6cOWYHRsaLKe6W2dTTCfZSsxpjiYiIiIiolmImYAO0yyBw8XIiIiIiorqLyV0tl5FXiKSMfAAcb0dEREREVJcxuavlLqeUnEyFLXdERERERHUVk7ta7lLyvWUQmNwREREREdVdZk2oQtanXQZBbi9Bo3qOVo6GiIiIiMh848aNs3YItRJb7mo5bXLXzMsZUolg5WiIiIiIiMhazG65U6lU+PPPP3H16lXcvXsXoijqbRcEAXPnzjX3NFSGmFuabpnskklEREREVLeZldwdP34cgwcPxo0bNwySOi0md1XnTk4B0rKVAJjcERERERHVdWYld5MmTUJeXh5+/vlndOnSBe7u7hYKi4yh7ZIJAC2Z3BERERGRjYiMjERCQgL8/f05/q4SzEruTp8+jcWLF2PAgAGWiocqoWRy15xr3BERERER1WlmTajywAMPlNkdk6qeNrlzcpCiobvCytEQEREREZE1mZXczZw5E9988w0yMzMtFQ9VQkzxGnfNvV0gCJwpk4iIiIioLjOrW2ZWVhacnZ3RrFkzDB8+HI0aNYJUKtXbRxAEvPbaa2YFSYZEUURMiqblrgW7ZBIRERER1XlmJXfTp0/X3V++fHmp+zC5qxqpWUqk5xYC4EyZRERERERkZnIXFxdnqTiokrTr2wFM7oiIiIiIyMzkzt/f31JxUCVdKrkMgg+TOyIiIiKius6s5E4rJycH+/fvR0JCAgBN0tetWzc4OTlZonoqRWxxcucqt4OXi8zK0RARERERkbWZndx9/vnnmDNnDrKzs/WWRXBxccHixYsxefJkc09BpdC23LX04UyZRERERGRbwsLCkJ+fD7lcbu1QahWzkru1a9fi1VdfRadOnTBlyhQ8+OCDAIALFy7g888/x6uvvgo3NzeMGTPGIsGShiiKuHzr3jIIRERERES2xMfHx9oh1EqCaMYq5MHBwXB3d8fu3bsNlkBQqVR4/PHHkZ6ejujoaHPjtLpz586hTZs2OHv2LIKCgqway830PHR+fw8AYOHAIIztHGDVeIiIiIiIyPrMWsT80qVLGDJkiEFiBwBSqRRDhgzBpUuXzDkFlSI9txCtfFzgIJWgOde4IyIiIiIimNkt083NDfHx8WVuj4+Ph6urqzmnoFK09nNF1NSuKFKprR0KEREREZHFRUVFITk5GT4+PggLC7N2OLWGWS13/fv3x+eff47vv//eYNsPP/yA5cuXY8CAAeacgsphJ5XATmrWW0hEREREVOMkJycjISEBycnJ1g6lVjGr5e7999/HkSNHMGrUKEybNg3NmzcHAMTGxiI5ORmtWrXC+++/b5FAiYiIiIiIqGxmNft4enrixIkTWLp0Kdq2bYtbt27h1q1baNu2LT755BP8999/aNCggaViJSIiIiIiojKYvc6dXC7Hq6++ildffdUS8RAREREREZEJavSALaVSiZkzZ8LPzw8KhQKhoaHYuXNnpet54oknIAgCF1QnIiIiIiKbVamWux49ekAikeDPP/+EnZ0devbsWeExgiBg9+7dJgU3btw4bN68GVOnTkXz5s0RGRmJfv36Ye/evXjssceMqmPr1q04cuSISecnIiIiIiKqLSrVcieKItTqe9Pvq9VqiKJY7q3k/pVx7NgxfP/993jvvfewZMkSTJgwAXv27IG/vz/eeOMNo+rIz8/HtGnTMHPmTJNiICIiIiIiqi0q1XK3b9++ch9b0ubNmyGVSjFhwgRdmVwux/jx4zF79mxcv34djRo1KreODz/8EGq1GtOnT8e8efOqLFYiIiIiIiJrM2tClQMHDuDBBx+Ep6dn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aMprGhsbq9fyevnyZajVat1MocZeN8a850REVDGOuSMiqsP27t1baouHdqxUy5YtAQD9+vUDAHz66ad6+y1duhQA0L9/f11ZYGAgDhw4oLffypUry2y5u1/v3r3h4uKC9957z2BafW2sHTp0QGBgID766CNkZ2cb1JGamlruObRr6d2fhJZH22JU8vUqKCjAihUrjK6jKkmlUvTq1Qs///wzbt68qSu/fPkyduzYUeHxprymX3zxhd7jzz//HAB0Y/yMvW6Mec+JiKhibLkjIqrDXnnlFeTm5uLpp59Gq1atUFBQgMOHD+OHH35AQECAblKR9u3bY+zYsVi5cqWue+KxY8ewZs0aDBo0CD169NDV+fzzz+PFF1/E4MGD8cQTT+DUqVP4888/0aBBA6NicnV1xSeffILnn38eHTt2xMiRI+Hh4YFTp04hNzcXa9asgUQiwbfffou+ffsiKCgIzz77LBo2bIjExETs3bsXrq6u2L59e5nnCAwMhLu7O7766iu4uLjAyckJoaGhBuP/SurcuTM8PDwwduxYTJkyBYIgYN26dTUq+ViwYAH++usvPProo3jppZegUqmwfPlytGnTBtHR0eUea8prGhcXh4EDByIsLAxHjhzB+vXrMXLkSLRv3x6A8deNMe85EREZwXoTdRIRkbXt2LFDfO6558RWrVqJzs7OooODg9isWTPxlVdeEW/duqW3b2Fhobhw4UKxSZMmor29vdioUSNx1qxZeksAiKIoqlQqcebMmWKDBg1ER0dHsU+fPuLly5fLXArh33//LTW2X3/9VezcubOoUChEV1dXMSQkRNy0aZPePidPnhSfeeYZsX79+qJMJhP9/f3FoUOHirt3767wuf/yyy9i69atdcsEaJdF6NatmxgUFFTqMYcOHRL/97//iQqFQvTz89MtHQFA3Lt3r26/spZCWLJkiUGduG/piLKWQnj55ZcNjr3/NRVFUdy9e7f40EMPiQ4ODmJgYKD47bffitOmTRPlcnn5L0gxY15TbYznz58Xw8PDRRcXF9HDw0OcPHmywVIGxl43oljxe17We3P/601EVFcJoliDvnIkIiIiixs0aBDOnTunmxHTXAsWLMDChQuRmppqdIssERFVPY65IyIisiF5eXl6j2NjY/HHH3+ge/fu1gmIiIiqDcfcERER2ZCmTZti3LhxaNq0KRISEvDll1/CwcEBb7zxhrVDIyKiKsbkjoiIyIaEhYVh06ZNSE5OhkwmQ6dOnfDuu+8aLDhORES2h2PuiIiIiIiIbADH3BEREREREdkAJndEREREREQ2gMkdERERERGRDWByR0REREREZAOY3BEREREREdkAJndEREREREQ2gMkdERERERGRDWByR0REREREZAOY3BEREREREdkAJndEREREREQ24P8q2vmPCiyKfQAAAABJRU5ErkJggg==",
      "text/plain": "Matplotlib figure"
     },
     "metadata": {}
    }
   ],
   "id": "cell-005"
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "html_anchor": "cell-8",
    "deepnote": {
     "block_id": "86d1e71d2f8e4d83aabd27b0b1f7700d"
    }
   },
   "source": [
    "## 2. 阈值只在验证集选，出口开销也记账\n",
    "\n",
    "用浅出口最大 softmax 概率作为停止分数。候选阈值 0.50–0.99；另加 1.01 表示不早退。先满足验证准确率不低于全深度基线 1 个百分点，再选期望 MAC 最低的阈值；这只是预先固定的教学决策规则，不是置信保证。\n",
    "\n",
    "卷积／线性 MAC：block1=2304，浅头=640，block2+深头=17728。全深度直接路径为 20032；动态拒绝早退还额外付浅头，总计 20672；早退为 2944。表中包含浅出口开销，**不包含 BN／激活／池化、softmax／门控／数据搬运与排队**，所以叫 conv/linear MAC 代理而非完整执行成本。全深度基线跳过浅头。随机策略以验证得到的早退比例为概率，每个样本随机选择，100 个预定 seed，不据测试表现挑 seed。\n",
    "\n",
    "![LAB11卷积线性乘加账本：全深度20032，早退2944，尝试早退但继续20672，浅出口头成本640不能省略。](https://codingai-lec02.pages.dev/course/visuals/v26/early-exit-mac-ledger.png)\n",
    "\n",
    "**先看什么。** 比较全深度与“尝试后继续”：后者多了哪一个框？再检查早退路径为什么不含深路径和深头。\n",
    "\n",
    "**改变一个条件。** 提高退出阈值，更多样本选择继续。平均乘加次数与错停数量可能各怎样变化？先作预测，再按验证规则观察保存曲线。\n",
    "\n",
    "[查看清晰矢量图](https://codingai-lec02.pages.dev/course/visuals/v26/early-exit-mac-ledger.svg)\n",
    "\n",
    "**从当前代码核对每一笔。** 第一层卷积为 $8\\times8\\times4\\times1\\times3\\times3=2304$；浅头为 $64\\times10=640$。尾部为第二层卷积 $4\\times4\\times16\\times4\\times3\\times3=9216$，加 $256\\times32=8192$ 与 $32\\times10=320$，合计 $17728$。BN、ReLU、池化等没有被改写成零开销，只是不属于这份 conv/linear 乘加口径。\n",
    "\n",
    "当前保存程序先算两只出口，再离线回放规则；这些和数表示候选执行路径应付的账，不是已测运行时间。保持下方保存结果：测试集 360 张，选定动态策略与固定浅出口同为 **95.83%**，动态平均 **3091.73 MAC** 高于固定浅出口的 **2944 MAC**。因此这个例子里的动态规则没有在准确率与该计算账本上优于固定浅出口。\n"
   ],
   "id": "cell-006"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-9"
   },
   "source": "SHARED,EARLY_HEAD,TAIL=2304,640,17728\nEARLY_MAC=SHARED+EARLY_HEAD\nDYNAMIC_LATE_MAC=SHARED+EARLY_HEAD+TAIL\nFULL_MAC=SHARED+TAIL\nTHRESHOLDS=np.r_[np.arange(.50,1.0,.01),1.01]\ndef policy(early,final,labels,threshold):\n    stopped=early.softmax(1).max(1).values.numpy()>=threshold\n    ep,fp=early.argmax(1).numpy(),final.argmax(1).numpy()\n    pred=np.where(stopped,ep,fp); truth=labels.numpy()\n    return {'threshold':float(threshold),'accuracy':float(np.mean(pred==truth)),\n            'early_fraction':float(stopped.mean()),'mean_conv_linear_mac':float(np.where(stopped,EARLY_MAC,DYNAMIC_LATE_MAC).mean()),\n            'wrong_early_count':int(np.sum(stopped&(ep!=truth))),\n            'avoidable_wrong_early_count':int(np.sum(stopped&(ep!=truth)&(fp==truth)))},stopped,pred\nval_rows=[policy(val_early,val_final,y[val_ids],t)[0] for t in THRESHOLDS]\nval_full_acc=float((val_final.argmax(1)==y[val_ids]).float().mean())\nfeasible=[r for r in val_rows if r['accuracy']>=val_full_acc-.01]\nchosen=min(feasible,key=lambda r:(r['mean_conv_linear_mac'],-r['accuracy'],-r['threshold']))\nchosen_t=chosen['threshold']; random_probability=chosen['early_fraction']\nsave_csv('validation-thresholds.csv',val_rows)\nsave_json('threshold-selection.json',{'chosen':chosen,'full_validation_acc':val_full_acc,'max_validation_accuracy_drop':.01,\n              'test_labels_used':False,'mac_scope':'conv/linear only; includes early head for dynamic policy; gate omitted',\n              'counts':{'shared':SHARED,'early_head':EARLY_HEAD,'tail':TAIL,'direct_full':FULL_MAC}})\nprint('Selected using validation only:',json.dumps(chosen,indent=2))\n",
   "execution_count": 5,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "Selected using validation only: {\n  \"threshold\": 0.5,\n  \"accuracy\": 0.975,\n  \"early_fraction\": 0.9805555555555555,\n  \"mean_conv_linear_mac\": 3288.711111111111,\n  \"wrong_early_count\": 7,\n  \"avoidable_wrong_early_count\": 4\n}\n"
    }
   ],
   "id": "cell-007"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-10"
   },
   "source": "test_rows=[]\nfor t in THRESHOLDS: test_rows.append(policy(test_early,test_final,y[test_ids],t)[0])\nchosen_test,stopped,pred=policy(test_early,test_final,y[test_ids],chosen_t)\nep=test_early.argmax(1).numpy(); fp=test_final.argmax(1).numpy(); truth=y[test_ids].numpy()\nrandom_rows=[]\nfor seed in range(100):\n    take_early=np.random.default_rng(SEED+100+seed).random(len(test_ids))<random_probability\n    rp=np.where(take_early,ep,fp)\n    random_rows.append({'seed':SEED+100+seed,'accuracy':float(np.mean(rp==truth)),'early_fraction':float(take_early.mean()),\n                        'mean_conv_linear_mac':float(np.where(take_early,EARLY_MAC,FULL_MAC).mean())})\n# Random routing is known before the early head; deep-routed samples skip early head.\nsummary=[{'policy':'full depth','accuracy':float(np.mean(fp==truth)),'early_fraction':0.0,'mean_conv_linear_mac':float(FULL_MAC)},\n         {'policy':'fixed shallow','accuracy':float(np.mean(ep==truth)),'early_fraction':1.0,'mean_conv_linear_mac':float(EARLY_MAC)},\n         {'policy':'selected threshold','accuracy':chosen_test['accuracy'],'early_fraction':chosen_test['early_fraction'],\n          'mean_conv_linear_mac':chosen_test['mean_conv_linear_mac']},\n         {'policy':'random routing mean(100 seeds)','accuracy':float(np.mean([r['accuracy'] for r in random_rows])),\n          'early_fraction':float(np.mean([r['early_fraction'] for r in random_rows])),\n          'mean_conv_linear_mac':float(np.mean([r['mean_conv_linear_mac'] for r in random_rows]))}]\nsave_csv('test-thresholds.csv',test_rows); save_csv('random-policies.csv',random_rows);save_csv('policy-summary.csv',summary)\nrows=[{'sample_id':int(s),'target':int(truth[i]),'early_prediction':int(ep[i]),'final_prediction':int(fp[i]),\n       'early_confidence':float(test_early.softmax(1)[i].max()),'stopped':bool(stopped[i]),'policy_prediction':int(pred[i])} for i,s in enumerate(test_ids)]\nsave_csv('selected-policy-per-sample.csv',rows)\nprint_table(summary)\nprint('Chosen policy wrong early exits:',chosen_test['wrong_early_count'],\n      '; final exit would fix:',chosen_test['avoidable_wrong_early_count'])\nprint('Random accuracy SD over predefined seeds:',float(np.std([r['accuracy'] for r in random_rows],ddof=1)))\nfig,ax=plt.subplots(figsize=(8,4))\nax.plot([r['mean_conv_linear_mac']/FULL_MAC for r in test_rows], [100*r['accuracy'] for r in test_rows],'-',label='threshold sweep; test shown after selection',alpha=.6)\nfor r,m in zip(summary,['o','s','*','D']):\n    ax.scatter(r['mean_conv_linear_mac']/FULL_MAC,100*r['accuracy'],marker=m,s=110,label=r['policy'])\nax.set(xlabel='Conv/linear MAC relative to direct full depth',ylabel='Held-out test accuracy (%)',\n       title='Offline exit decisions; no latency claim')\nax.legend(fontsize=8,loc='best');fig.tight_layout(); fig.savefig(OUTPUT/'accuracy-mac.png');plt.show()\n",
   "execution_count": 6,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "policy | accuracy | early_fraction | mean_conv_linear_mac\n--- | --- | --- | ---\nfull depth | 0.97222 | 0.00000 | 20032.00000\nfixed shallow | 0.95833 | 1.00000 | 2944.00000\nselected threshold | 0.95833 | 0.99167 | 3091.73333\nrandom routing mean(100 seeds) | 0.95861 | 0.98153 | 3259.65333\nChosen policy wrong early exits: 14 ; final exit would fix: 6\nRandom accuracy SD over predefined seeds: 0.0012793505179773243\n"
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": "Matplotlib figure"
     },
     "metadata": {}
    }
   ],
   "id": "cell-008"
  },
  {
   "cell_type": "code",
   "metadata": {
    "html_anchor": "cell-11"
   },
   "source": "wrong=np.flatnonzero(stopped&(ep!=truth))\n# If none exist at selected threshold, show actual high-confidence shallow errors without pretending they stopped.\nshow_ids=wrong[:6]\nplot_label='Wrong early exits at selected threshold'\nif not len(show_ids):\n    errors=np.flatnonzero(ep!=truth)\n    show_ids=errors[np.argsort(-test_early.softmax(1).max(1).values.numpy()[errors])[:6]]\n    plot_label='No wrong selected exits; these shallow errors did NOT necessarily stop'\nfig,axs=plt.subplots(1,max(1,len(show_ids)),figsize=(max(5,1.7*len(show_ids)),3.0),squeeze=False)\nfor ax,j in zip(axs[0],show_ids):\n    ax.imshow(X[test_ids[j],0],cmap='gray',vmin=0,vmax=1);ax.axis('off')\n    ax.set_title(f'id={test_ids[j]} y={truth[j]}\\nearly={ep[j]} p={float(test_early.softmax(1)[j].max()):.2f}\\nfinal={fp[j]} stop={bool(stopped[j])}',fontsize=8)\nfig.suptitle(plot_label,fontsize=10);fig.tight_layout(rect=[0,0,1,.84]);fig.savefig(OUTPUT/'wrong-exits.png');plt.show()\n",
   "execution_count": 7,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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Xuy2jc6fP29FihSxWrVq2blz51zLTZgwwSRZbGxslvkBAOAU3NIIALgmVKlSRYULF3Y9m+u3337TmTNnXJ/C2KBBA9fVMz/88INSUlLS3bbn5+enBx54wG3a119/rWLFiqlLly6uaQULFtSgQYN0+vRpLV261G35u+++WxEREa7vGzduLEn666+/JEn79u3Thg0bdN9997ldARQbG6vq1atfcpwLFixQfHy8unTpoiNHjri+fHx8VK9ePbdPowwICHD9/+zZszpy5Ijq168vSVq7dm262JldOXWhsLAwdejQQZ988onr6piUlBT973//c92udiVyDwwM1OTJk/XHH3+oSZMm+uqrr/T666+rTJkyl8wxI+Hh4ZKkL7/8UklJSdl67YXb8dSpUzpy5IgaN26shIQEbd68+R/lM2/evHS3GKb57LPPVKVKFVWuXNltezVv3lySMvzk0Qtf27hxY0VERLi99uabb1ZKSoqWLVsmSZo1a5a8vLw0bNiwdDEuvgLwYmamWbNmqV27djIzt/W0atVKJ06ccL3Pvv76axUvXlx33nmn6/WBgYGuK8b+qZtvvtl11Zkk1ahRQ6Ghoa66u9DF7/PZs2crNTVVd911l9sYihUrpooVK7q2c9oVXPPnz7/k8/0ulU9KSoq+++47dezYUeXLl3ctV7x4cXXt2lUrVqzQyZMnM4y9Zs0aHTp0SP369ZOvr69reo8ePdyuMgMAwOloeAEArgleXl5q0KCB61ldK1euVJEiRVShQgVJ7g2vtH8vbniVLFnS7QRSknbu3KmKFSvK29t9l5p2u9zOnTvdpl/ckElrfh0/ftxt+bS8LpTRtItt3bpVktS8eXNFRUW5fX333Xc6dOiQa9ljx47pkUceUdGiRRUQEKCoqCiVK1dOkjJ85lDavEu57777tGvXLtczgxYuXKiDBw+qe/fuVyx3SWrYsKH69++vn376Sa1atbqs521lJjY2Vp06ddLw4cMVGRmpDh06aNKkSZf1DKlNmzbp9ttvV1hYmEJDQxUVFaV7771XUsbb8XLcfffdatiwoXr37q2iRYvqnnvu0YwZM9yaX1u3btWmTZvSbavrrrtOktJtrwtt3bpV3377bbrX3nzzzW6v3b59u0qUKKFChQplewyHDx9WfHy8JkyYkG49aY3jtPXs3LlTFSpUSNdEq1SpUrbXm5GMGqERERGuurvQxe/zrVu3ysxUsWLFdOP4448/XGMoV66cHnvsMb3//vuKjIxUq1at9M4772T4HrhUPocPH1ZCQkKG469SpYpSU1PTPT8sTdrvkIoVK7pNL1iwoFvzDAAAp+MZXgCAa0ajRo30xRdfaMOGDa7nd6Vp0KCBnnzySe3du1crVqxQiRIl0p0cXnglT075+PhkON0yeSZWdqU1RKZOnapixYqlm1+gwP/v+u+66y6tWrVKTz75pGrVqqXg4GClpqbq1ltvzfCqossdf6tWrVS0aFFNmzZNTZo00bRp01SsWDFXM+VK5C79/cD2tAfOb9++XQkJCQoMDLysHC/m5eWlmTNnavXq1friiy80f/589ezZU6+99ppWr16d6fO24uPjFRsbq9DQUP3nP/9RTEyM/P39tXbtWj399NOZXp11KQEBAVq2bJkWL16sr776St9++63+97//qXnz5vruu+/k4+Oj1NRUVa9eXf/9738zjJHVs5pSU1PVsmVLPfXUUxnOT2ua/RNpY7/33nt1//33Z7hM2jPzPC07dXfx+zw1NVVeXl765ptvMoxz4XvjtddeU48ePTRv3jx99913GjRokF566SWtXr1apUqVylE+AAAgZ2h4AQCuGWlXbK1YsUIrV650PTBbkurUqSM/Pz8tWbJEP/74o9q0aXNZMaOjo7V+/Xqlpqa6XeWVditbdHR0tnJMW37btm3p5mU07WJpt0kVKVIkywbT8ePH9f3332v48OFun3aYdpXVP+Hj46OuXbtq8uTJeuWVVzR37lw9+OCDmZ7kZzf3NMOGDdMff/yhMWPG6Omnn9aQIUP05ptvZvmaS92GV79+fdWvX18vvviipk+frm7duunTTz9V7969M1x+yZIlOnr0qGbPnq0mTZq4pu/YsSPb676Yt7e3WrRooRYtWui///2vRo0apWeffVaLFy923RL322+/qUWLFtmOHRMTo9OnT19yO8fExGj+/Pk6duxYlld5ZbT+qKgohYSEKCUl5ZLriY6O1saNG2VmbrH+/PPPS4wk8/VfKTExMTIzlStX7rIagdWrV1f16tX13HPPadWqVWrYsKHee+89jRw58rLXGRUVpcDAwAzHv3nzZnl7e2fa0Ez7HbJ161bX7a2SlJSUpB07dmT6KaoAADgNtzQCAK4ZdevWlb+/vz7++GPt3bvX7Qov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a/Xo0UMHDx7UkSNH9Prrr8vLy0vS3w/Nv7B+jh8/rsjISHXv3v1qDQtXCcdaGbtUjXh5ealBgwaaMGGCbrrppqs1FOSCq1EjUtbHLZ7mifORNL/99pvbuMLCwjw9HFxlHGtlrEePHtq5c6d+++03HTlyRFWrVlXLli115swZ1zKDBg3S9OnTNWPGDJ06dUq///672rRpczWGdNU4quF19uxZPfPMM4qJiVFERISaNGmiX3/91TV/yZIlatCggQoXLqyIiAg1b95c69atc5vv5eWlTz/9VNddd50CAwN16NAht3UMHTpUzZo1c5t24MAB+fr6usW6XFWrVlVISIjre29vb/3555+ZLp/214qJEyfq+uuvV2hoqFq0aKHt27dne92S9N5776l169bq1KmTChYsqE6dOunWW2/Vu+++m+lrtm3bpjvvvFNRUVHy8fFR3759dfr0aW3dulXS3ycqnTp1UkREhHx8fHT33XercuXKWr58eY5yxJWTH2tk27ZtuvfeexUSEiI/Pz/16tVLe/fu1eHDhzNcPi3Hjz/+WOXLl1d4eLhuv/32dHlernHjxqlnz56KjY2Vr6+vBg4cqIoVK2ry5Mk5iidJn376qbp06aIGDRrI29tbzZo10x133KG33norxzFxZeTHGrnzzjvVqVMnlSxZ8rKWzwv7kaeeekq9evXSfffdp8DAQBUoUED16tVzncxfbNasWTp58qR69uyZoxxx5eTHGsmPx1qXqhF/f389+uijatasmfz9/XOUFzwjP9ZIduWFGrnU+QjyrvxYI/ntWOvMmTP68ssv9cILLygyMlL+/v56+eWXtX//fs2dO1fS33fRvPPOO5oyZYpq1aolb29vhYeHq3r16jnKMa9yVMOrX79++umnn7R06VIdPnxYd911l1q1aqX4+HhJUsGCBTVmzBjt379fu3btUoUKFdShQwedP3/eLc7//vc//fDDDzp58qSioqLc5vXp00crVqxw+2X6wQcfqHbt2qpVq5YkqUaNGgoPD8/06+WXX3aL+e677yosLEzBwcF64403NHLkyEuOdeLEiZo/f74OHDigcuXKqV27dkpOTpYkvfzyy1muv0aNGq4469atS/eXwRtvvNHtl87Fnn76ac2dO1f79+9XUlKS3nnnHcXExLjFvdCuXbv0559/6oYbbrjkuOBZ+bFGnn32WU2dOlXx8fFKSEjQ+PHj1bBhQxUtWjTLsX7yySdas2aNduzYofPnz7vd0z9gwIAs13/bbbe5ls1JjUjSl19+qcKFCysmJkb9+vVza9CZmS7+gNzU1FStXbs2y5jwvPxYIzmVW/uRhIQErVq1Sj4+PrrppptUuHBh1alTR7Nmzco013Hjxunuu+9WoUKF/vG48c/k1xrJT8daOakR5B35tUayOm7JTH44H4mNjVVkZKQaNGigOXPmXHJM8Lz8WiM5kZs1cvH5Rtr3aecb33//vYKDg/XVV1+pTJkyKl68eK7c8u9x5hBHjhwxSbZ582a36RUqVLCpU6dm+Jpjx46ZJFu/fr2ZmS1evDjDGPfff79169bN9X379u3tiSeeMDOzlJQUi46OtkmTJv3jMezdu9dGjBhhixYtynSZHTt2mCT7/PPPXdNOnjxpPj4+tmzZsmyvs3z58jZu3Di3aePGjbOYmJhMXxMXF2e33nqrSTIfHx+LioqyFStWZLhsfHy81a5d2237IXfk1xpZt26d1a9f37y8vMzb29vKly9vf/zxR6bLp+WYlrOZ2e+//26SbNeuXdlev7e3t3399ddu05566ilr0aJFpq9Zs2aN7d+/31JTU23r1q128803W/369S01NdXMzD7++GMLCQmxpUuXWlJSkn333XcWEBBgBQoUyHZ+uHLya42kmTRpkpUsWfKSy+X2fmT37t0myYoUKWI//fSTJSUl2axZs6xgwYK2atWqdMtv2LDBJNlPP/2U7dxwZeX3GjHLH8da2a2R2NhYe/bZZ7OdF668/FojlzpuuVhu14jZpc9HTp06ZatWrbJz585ZQkKCffTRR+br62tfffVVtvPDlZNfayRNfjnWMjNr2bKl3XzzzXbgwAE7ffq0PfTQQ+bl5WW9e/c2M7MRI0aYJLvjjjvs6NGjFh8fb926dbNq1apZcnJytnPMqxxzhde2bdskSfXq1XPrjO7du1d79uyRJK1fv17t2rVTyZIlFRoaqnLlyklSuksg06ZnZsCAAZo8ebLOnz+v+fPn68SJE7r77rv/8RhKlCihPn36qG3btjp48GCWy16YY0hIiCIjIy/5TKGMhIaGurrpaY4fP67Q0NAMl09NTVXz5s1VrFgxHT16VGfPntXEiRPVpk2bdJeHHj58WM2bN1elSpX+0e1fuDLyY43Ex8erWbNmat68uU6dOqWEhAQ99dRTatiwofbt25flay/MMe3/V6NGJKlOnToqVqyYvLy8VKFCBU2cOFGrV692/ZWpa9euGjVqlPr376+oqCiNHj1affr0UWRkZLbzw5WTH2vkn8it/UjarWU9evTQjTfeqAIFCuiOO+5Qs2bNXJfZX2jcuHGqW7eubrzxxmznhivLCTWSH461slsjyDvya41c6rglM3n5fCQ4OFj/+te/5Ovrq4CAAHXv3l1dunTRtGnTsp0frpz8WiM5lVs1IknTpk1TiRIlVKdOHVWoUEERERGqXLmy63wj7bUjR45UoUKFFBYWpldffVUbN27Uli1bsp1jXuWYhlexYsUk/V0g8fHxrq+EhAQNGTJEktS5c2fFxMS4PbhUUrpbi7y9s94st9xyi8LCwjR79myNHz9e9913nwICAlzz0z55LbOvUaNGZRo7KSlJiYmJlyyECy81PH36tI4cOeL6xIhRo0Zluf6qVau6XlurVi39/PPPbrHXrFmT6e2Hx48f119//aVBgwapUKFCKlCggDp06KCYmBjNnz/ftdzu3bvVuHFj1alTR9OmTVOBAgWyHA88Lz/WyPbt23X8+HE98cQTCgoKkp+fn/r27Sszu+Qz4S6skbT/p9VIv379slx/69atXa/Nbo1kJG17XbgdH3roIW3atEnHjx/XggULtHPnTrVo0eKyY+LKy4818k/k1n4kLCxMMTExmT6v60KnTp3StGnTNGDAgByMEFeaU2okrx9rZadGkLc4pUYyOm7JSF4/H8loXJcaEzzLKTVyuXKrRiSpSJEimjJlivbs2aP9+/froYce0o4dO1znG7Vr15Yk5+9rcuvSMk/o2LGj3XbbbRYXF2dmf182+PXXX9u+ffvMzKxo0aI2dOhQS0lJsaNHj9oDDzxgkmzBggVm9v+XRyYlJbnFvfjySDOzV1991WrUqGEFChSwTZs25Sjfw4cP26RJk+zo0aNmZrZr1y5r3769lS5d2hITEzN8TdrlkfXq1bPdu3fbmTNnrE+fPlapUqV0eV+OH374wfz8/Gz27Nl2/vx5mz17tvn7+2d560iVKlWsV69eduLECUtJSbEvvvjCfH19Xdtx8+bNVrp0aXv00UeznQ88K7/VyOnTpy0yMtKGDh1qiYmJlpSUZO+//74VKFAg09sa03Js166dHT161I4fP2633XabNW/e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PXvq+eef119//aXz58/r9ddf17Zt29StWzfXcl5eXnr88cd15swZ7du3T8OGDVP37t1dcb/55pssx5TZFWmXo27dupo8ebLOnj2rgwcPavjw4W7zH3nkEb311lv6/vvvlZycrOTkZG3cuFHLli3L8Tpx5XCsxbEWsubpGpk/f7527Nih1NRUJSQk6I033tDKlSvVqVOnDGNTI9RIXuPpGjEznT17VmfPnpX09x9Nzp49m+kD2amR/Fsj11zDKzg42PVRnWld0c6dO1+x+Nu3b1erVq0UGhqqUqVKacqUKZo+fbratm2b4fLnz5/Xiy++qJIlSyo0NFSPP/64PvroI9flj88//7zmzZun8PBw1ahRQ5L02GOPaeDAgbrzzjtVqFAhvfLKK5o9e3a6T5m4++67VbduXUVHR8vb21sff/zxFRtnVkaOHKnQ0FCVLl1aderU0e233+42/8Ybb9SCBQs0ceJElSxZUoULF9add97pOrlD7vJ0jTz77LOKj4/Xc8895/YXilGjRmW4vJnpvffeU/ny5RUcHKw777xTL774opo1ayZJevzxx/Xnn38qIiJC4eHhkqTOnTvrtdde04ABAxQeHq6HH35Yb7zxhu644w632L169VLLli1VtGhRbdmyRV988cVV+fjuRx99VHXq1FGVKlVUqVIlVahQwe3KrTJlyuiHH37QggULFBMTo/DwcLVq1UobNmzweG64NE/XyOjRo1WvXj01atRIwcHBuvXWW9WhQ4dMG8SnT5/WY489piJFiig8PFwTJkzQnDlzXJeuv/TSS3rllVcUHh6u2267TZI0ZswY3XLLLWrWrJmKFCmiWbNmacGCBSpdurQrbrFixVS9enVdd911qlatmqpUqaKxY8desXFm5Z133tGBAwcUGRmpli1bqnv37m7zO3bsqKlTp+r5559XkSJFVKRIEfXu3VtHjhy5KvkhaxxreR7HWvmbp2vkp59+UmxsrEJCQlSmTBnNnTtX33zzTaafSEeNUCN5jadrZOfOnQoICFBAQIAkqU2bNgoICMj0MSvUSP6tES/L6tpW5EtLlixRs2bNlJSUdFVO3oH8Ji4uTuXKldPWrVtVoUKF3E4HyHMmT56s5557Tnv27MntVIA8iWMtIGvUCJA1auTquOau8AIAAAAAAICz0fACAAAAAACAo3BLIwAAAAAAAByFK7wA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",
      "text/plain": "Matplotlib figure"
     },
     "metadata": {}
    }
   ],
   "id": "cell-009"
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "html_anchor": "cell-12",
    "deepnote": {
     "block_id": "d5cd89ff867a4bfeba54efe82a5bbc57"
    }
   },
   "source": [
    "## 3. 哪项结果能改变你的判断？\n",
    "\n",
    "### 先核对一条路径，再解释平均值\n",
    "\n",
    "保存测试里 357 张早退、3 张继续。用账本算：$(357\\times2944+3\\times20672)/360=3091.73$。这里 3 张继续的样本已经付过浅头的 640 MAC，所以不能按全深度直接路径 20032 记账。\n",
    "\n",
    "**预测题。** 将阈值设为 1.01，所有样本都拒绝早退，动态路径的平均 MAC 是 20032 还是 20672？为何这与“直接全深度”不同？\n",
    "\n",
    "**核对思路。** 应是 20672。每张图先算浅头再继续，额外的 640 不会因没有样本早退而消失；直接全深度基线则不需要尝试浅头。随机路由在计算浅头前已知道选择，因此它的深路径可以跳过浅头，账本也不同。\n",
    "\n",
    "### 改一个规则，再用验证集选\n",
    "\n",
    "固定模型和数据，先只把验证允许损失从 1 个百分点改为 0；另一次再把停止分数从最大概率改为概率间隔。每次先写预测、重新执行验证选择，保留原测试报告。完整测试曲线只供选择完成后解释趋势，不从里面挑“最佳阈值”冒充验证选择。\n",
    "\n",
    "提高阈值会使早退集合收缩，但测试准确率不必单调上升：某些样本的浅头可能正确、深头反而错误。请用逐样本的两个预测解释，而不只看平均值。反复查看同一测试集已成为开发活动；正式新结论需要新的留出评价。\n",
    "\n",
    "### 把计算判断变成研究设计\n",
    "\n",
    "若要问“实际会不会更快”，还需实现真实跳过尾部，测量浅头、门控、batch 重组和延迟。先读[完整教师示例与空白研究卡](https://codingai-lec02.pages.dev/course/research-card.html)，只替换一个条件，再[回到研究卡主讲](https://codingai-lec02.pages.dev/#/frontier-student-research-card/0)讨论失败条件。\n",
    "\n",
    "来源：[digits 数据](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_digits.html)、[动态网络综述](https://arxiv.org/abs/2102.04906)。图表是历史训练和离线策略运算的保存结果；本次阅读练习没有生成新的速度测量。\n"
   ],
   "id": "cell-010"
  },
  {
   "cell_type": "markdown",
   "id": "55ee628eebdf4bdbb813a111f16a9f4c",
   "metadata": {
    "html_anchor": "block-55ee628eebdf4bdbb813a111f16a9f4c",
    "deepnote": {
     "block_id": "55ee628eebdf4bdbb813a111f16a9f4c",
     "type": "markdown"
    }
   },
   "source": [
    "[返回第二讲 · 早退结果比较](https://codingai-lec02.pages.dev/#/frontier-adaptive-early-exits/4) · [网页阅读版与保存结果](https://codingai-lec02.pages.dev/course/lab13.html) · [下载 Lecture02-LAB11.ipynb](https://codingai-lec02.pages.dev/course/materials/Lecture02-LAB11.ipynb) · [课程导读](https://codingai-lec02.pages.dev/course/guide.html)"
   ]
  }
 ]
}