{ "cells": [ { "cell_type": "markdown", "id": "e3a8391d", "metadata": { "papermill": { "duration": 0.004853, "end_time": "2026-05-31T09:45:55.530382+00:00", "exception": false, "start_time": "2026-05-31T09:45:55.525529+00:00", "status": "completed" }, "tags": [] }, "source": [ "# Convolution Tutorial Series — Part 1: Kernel Size and Bias\n", "\n", "**Goal:** Understand how a 3x3 kernel functions as a 'stencil' to solve ARC tasks. This is the first episode in a series that we want to create, covering all the attributes of the ONNX Conv function, in this notebook we will cover the basics of the convolution. We will explain these as simply as possible, using some tasks as examples, similar to this [notebook](https://www.kaggle.com/code/massimilianoghiotto/best-public-6066-58-eda-111) that we made and EDA notebooks made by @cdeotte.\n", "\n", "**Task (ARC 015):** \n", "1. **Red (2) triggers Yellow (4):** Every Red pixel should have Yellow pixels at its 4 diagonals (corners).\n", "2. **Blue (1) triggers Orange (7):** Every Blue pixel should have Orange pixels at its Top, Bottom, Left, and Right (cross shape).\n", "3. **Persistence:** The original Red and Blue pixels must stay.\n", "\n", "**Score formula:** `Points = max(1.0, 25.0 - log(Mem_bytes + Params))`\n", "\n", "**Our result:** Mem=0, Params=900, **18.198 points**\n", "\n", "---" ] }, { "cell_type": "code", "execution_count": 1, "id": "da51b56d", "metadata": { "execution": { "iopub.execute_input": "2026-05-31T09:45:55.540674Z", "iopub.status.busy": "2026-05-31T09:45:55.540332Z", "iopub.status.idle": "2026-05-31T09:46:17.055712Z", "shell.execute_reply": "2026-05-31T09:46:17.054631Z" }, "papermill": { "duration": 21.522421, "end_time": "2026-05-31T09:46:17.057796+00:00", "exception": false, "start_time": "2026-05-31T09:45:55.535375+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16.6/16.6 MB\u001b[0m \u001b[31m51.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m17.2/17.2 MB\u001b[0m \u001b[31m53.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.2/56.2 kB\u001b[0m \u001b[31m797.1 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\r\n", "\u001b[?25h" ] } ], "source": [ "!pip install -q numpy==2.4.4 2>/dev/null\n", "!pip install -q onnx==1.21.0 2>/dev/null\n", "!pip install -q onnxruntime==1.24.4 2>/dev/null\n", "!pip install -q onnx-tool==1.0.1 2>/dev/null" ] }, { "cell_type": "markdown", "id": "b75e1555", "metadata": { "papermill": { "duration": 0.004086, "end_time": "2026-05-31T09:46:17.066711+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.062625+00:00", "status": "completed" }, "tags": [] }, "source": [ "# 1. Task 015" ] }, { "cell_type": "code", "execution_count": 2, "id": "094b6afa", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:17.078057Z", "iopub.status.busy": "2026-05-31T09:46:17.076748Z", "iopub.status.idle": "2026-05-31T09:46:17.519001Z", "shell.execute_reply": "2026-05-31T09:46:17.518050Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.449803, "end_time": "2026-05-31T09:46:17.520753+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.070950+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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Jk2aeGEtWNPZ7Euff/65Wbt2rbHb7SYtLc307dvXXHzxxc55jhgxwgwdOtT5ufT34/PPP/fFIvpMly5dTFRUlFm+fLlxOBxmypQpJiwszPTu3dts377dFBYWmgEDBpiePXsaY0y563XWrFkmNjbWrFy50hQXF5tp06aZgIAAc9NNNxljjCkpKTmjfS0oKMi88847xm63mx9//NEEBASYb775xhhjzPbt240ks2XLFpdl+eCDD8zmzZuNw+EwO3bsMBdddJEZPHiwF9ai9/Xt29d07drV7N+/3+Tm5pq77rrLJCUlmZycHDNx4kTj7+9vJk2aZPLz801ubq4xxpjZs2ebnTt3mpKSErN+/XrToEED88ADDzjnWd5637p1qwkMDDTTp083xcXFZsWKFaZmzZou1wflnaPg6sRrYWOM+eabb057jZaXl2emT59uMjIynNd0QUFB5osvvnDO48RzEzx/jCu9zhoxYoTJyckxubm5Jjs729StW9eMGzfO5Obmmn379pnLLrvMXH311c7pTrfPGnNs3wkICDD//ve/TWFhodm8ebOJiYkx06dP9+r6qu4IdDygS5cuZsCAAS5t1157rRk2bJhbSHCy9PR0I8n89ttvxhhjbr/9dtOnT59T/qzU1FQzfvx407hxYzN27FjjcDg8tyDVwF/ZVuUFOh9++KGpW7euKSkpcQ7fs2ePkWR2795dyUtybuvSpYvLBe1VV13lcgFnjDFPPPGE6d69u/P/bdu2dRk+btw4Ap2/aPfu3UaS2bBhg7Nt3bp1bn+Ebtq0yTn8559/NoGBgS7Bst1uNyEhIea7774zxhgTGRnpcuFmjDE9evQwjz/+uDHm2IVGcHCw8w8jY4y59957zZVXXlkpy2k1d955pxk4cKDzc+fOnc3EiRPPaN2fLtB58sknTevWrV1+1oIFC0xoaKjzuJaSkmI++OADk5mZacLDw83bb7/t3O9uuOEGc+edd1bOQlvc2exLZVmzZo2RZLKzs52fg4ODzeHDh40xxrz11lumfv36Lueh6qBLly5m2LBhzs+ZmZlGkpk3b56z7YMPPjDR0dFlTn/yeu3evbu57777XMZp166dM9A5033t8ssvd5lH+/btzVNPPWWMOXWgc7IFCxaY2NjY045jRfv27TOSzNq1a51tRUVFJi4uzrzzzjtm4sSJbtdUZXnuuedc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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import json, math, warnings, sys\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.patches as patches\n", "import onnx\n", "from onnx import helper, TensorProto\n", "import onnxruntime as ort\n", "\n", "warnings.filterwarnings('ignore')\n", "plt.rcParams['figure.dpi'] = 120\n", "\n", "arc_colors = [\n", " '#000000', # 0: black\n", " '#0074D9', # 1: blue\n", " '#FF4136', # 2: red\n", " '#2ECC40', # 3: green\n", " '#FFDC00', # 4: yellow\n", " '#AAAAAA', # 5: gray\n", " '#F012BE', # 6: magenta\n", " '#FF851B', # 7: orange\n", " '#7FDBCA', # 8: teal\n", " '#870C25', # 9: maroon\n", "]\n", "color_names = ['black','blue','red','green','yellow','gray','magenta','orange','teal','maroon']\n", "\n", "def plot_arc_grid(grid, ax, title=''):\n", " H, W = len(grid), len(grid[0])\n", " img = np.zeros((H, W, 3), dtype=np.uint8)\n", " for r in range(H):\n", " for c in range(W):\n", " hex_c = arc_colors[grid[r][c]].lstrip('#')\n", " img[r,c] = [int(hex_c[i:i+2], 16) for i in (0, 2, 4)]\n", " ax.imshow(img, interpolation='nearest')\n", " ax.set_xticks([]); ax.set_yticks([])\n", " if title: ax.set_title(title, fontsize=10, fontweight='bold')\n", " for r in range(H+1): ax.axhline(r-0.5, color='gray', lw=0.5, alpha=0.3)\n", " for c in range(W+1): ax.axvline(c-0.5, color='gray', lw=0.5, alpha=0.3)\n", "\n", "fig, ax = plt.subplots(figsize=(12, 2))\n", "for i, (c, nm) in enumerate(zip(arc_colors, color_names)):\n", " ax.add_patch(patches.Rectangle((i*1.2, 0), 1, 1, facecolor=c, edgecolor='gray', lw=1))\n", " ax.text(i*1.2+0.5, 0.5, str(i), ha='center', va='center', fontsize=16, fontweight='bold',\n", " color='white' if i in [0,9] else 'black')\n", " ax.text(i*1.2+0.5, -0.2, nm, ha='center', va='top', fontsize=8)\n", "ax.set_xlim(-0.5, 12.5)\n", "ax.set_ylim(-0.3, 1.5)\n", "ax.axis('off')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "d6dd1be1", "metadata": { "papermill": { "duration": 0.004299, "end_time": "2026-05-31T09:46:17.529946+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.525647+00:00", "status": "completed" }, "tags": [] }, "source": [ "The rules are:\n", "1. **Red (2) triggers Yellow (4):** Every Red pixel should have Yellow pixels at its 4 diagonals (corners).\n", "2. **Blue (1) triggers Orange (7):** Every Blue pixel should have Orange pixels at its Top, Bottom, Left, and Right (cross shape).\n", "3. **Persistence:** The original colored pixels must stay." ] }, { "cell_type": "code", "execution_count": 3, "id": "947c7941", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:17.540715Z", "iopub.status.busy": "2026-05-31T09:46:17.540268Z", "iopub.status.idle": "2026-05-31T09:46:17.642912Z", "shell.execute_reply": "2026-05-31T09:46:17.641856Z" }, "papermill": { "duration": 0.109937, "end_time": "2026-05-31T09:46:17.644427+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.534490+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7kAAAHWCAYAAACymk5mAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAAHVdJREFUeJzt3XtslfX9wPFPEVoRVEDUQ7kUJvOyzAsbcX+AgkaNTgwuhmXrH17IspkYDS7biGY6vEzZZD9R1GQuG7qpW+IlbM6IiwrY+Mcky1CWZerEIrPrcGDVoNJt9PcH6Vlry0aPbR+ez16vhOT08JxzPn045Xve5zzntK6rq6srAAAAIIERRQ8AAAAAg0XkAgAAkIbIBQAAIA2RCwAAQBoiFwAAgDRELgAAAGmIXAAAANIQuQAAAKQhcgEAAEhD5AIAAJCGyAUAACANkQsAAEAaI4seAA5ky5YtixtuuCEiIi655JK47777ih2oH/fdd1+0trZGRMSSJUti3Lhxhc4DABER06dPj61bt+7XtuvWrYv58+cP7UCDYNOmTbFmzZqIiJg/f/6AZ25paYm77747nn/++di+fXuMHj06jj322Fi4cGFceeWVcdhhh32s+dasWRObNm2KiIhLL700pk+f/rGub6CWLVsWERHjxo2LJUuWDOttQ08iF0ruvvvuiw0bNkTE3gVN5ALA0Ni0aVP1ye+IGFDkfvOb34wVK1b0Oq+zszM2btwYGzdujHvvvTeefPLJ+NSnPlXzfGvWrIn777+/OttwR273vmlqahK5FErkAgAw6B555JH48MMPq18vWrQo2tvbIyLizjvvjFmzZlX/7sQTT/zYt7dr164YM2bMx76eoXD33XdXA/eggw6KJUuWxLnnnhvbt2+P5cuXx+bNm+ONN96ICy64IF588cUYO3ZswRNDuXlPLgzQsmXLoq6uLurq6mL16tWxcuXKmDlzZjQ0NMTJJ58czz77bK/t58+fX91+8+bNccUVV8SRRx4ZY8aMiQULFsRrr73Wa/vubT/67GvP62ltbY3169dHXV1d9VXciIgZM2b02gYAijJ79uyYO3du9U9DQ0P170488cTq+TNmzIirr746Tj755Jg4cWKMGjUqJkyYEGeeeWb10OBu3WtfXV1dXHrppfHYY4/FKaecEg0NDXHbbbdFRMSePXvixhtvjClTpsQhhxwSZ5xxRmzatKnPOtrTL3/5yzjrrLNi/Pjx0dDQEMcdd1zccMMN8cEHH1S3mT59elx22WXVr2+44Ybq9XUfptufDz/8sNerv9ddd12sWLEizjrrrGhubo4NGzbE+PHjIyJiy5Ytce+99/a6ze7b6OnSSy+tnr9+/fpobW2Nurq66qu4ERFnnHFGr20iej/GePXVV2PBggUxduzYmDhxYlxxxRWxa9eufe7rnj76WKX7sVG3rVu37vPxDAwHr+TCx3DzzTfHli1bql+/9NJLceGFF8bWrVurC1ZPixYtipdffrn69RNPPBGbNm2KF198MY444ohhmRkADiTbtm2L1atX9zrv7bffjnXr1sW6devi/vvvj4svvrjP5Z577rn46U9/Gl1dXb3Ov/rqq+POO++sfr1+/fqYP39+v+tyRMT1118fN910U6/zXnnllVi2bFk888wz8fTTT0d9fX2t3148//zz8dZbb0VERH19fVx55ZW9/n78+PGxePHi+MEPfhARew85/vrXv17z7e2Pd955J0477bT429/+FhF7XwW/5557YsuWLfHkk08O6W3DcPBKLnwMW7ZsiaVLl8avfvWrOPnkkyMi4r333ouHHnqo3+137NgRq1evjocffjg+8YlPRETEm2++GbfccsuAb3vWrFnR0tISp5xySvW8hx9+OFpaWqKlpSUmTZo08G8IAIZZpVKJ5cuXx6OPPhpPP/10NWyPPPLIiNj7hHJ/Xn/99Zg9e3Y8/PDDsWbNmjjttNPi5ZdfjlWrVkVExIgRI+L666+Pxx9/PE499dR+j3DauHFjNXAnTZoUP/7xj2Pt2rVx/vnnR8TeD4q6/fbbI2Lv4dfXXntt9bKXXXZZdc1dvHjxPr+/P/7xj9XT06ZNiwkTJvTZpuda3nP7/TVp0qRoaWmJ8847r3renXfeWZ2v56HhEREdHR0xZcqUWLNmTaxatSoOOeSQiIhYu3ZtPP744wO+/cWLF0dLS0v160qlUr3tRx55ZMDXBx+XV3LhY1i4cGEsX748IiLef//9+NKXvhQREX/+85/73f7WW2+tHvIzbty4OPvssyNi77O23c/g7q/DDz885s6dG4cffnj1vNmzZzssCIBSmT59elQqlVi5cmVs3rw53nnnnV6vzr766qvx7rvv9vnk4bFjx8batWt7ReP3v//96mW/8IUvVA8TnjNnTkyePLnX4ccREQ8++GD19GWXXRbHHntsRERcfvnl8cQTT0RExAMPPBBLly6N2bNnxx/+8Ifq9tOmTYu5c+f+1+/v3XffrZ7uDveP6nn+O++881+v86MaGhpi7ty5cdRRR1XP6z4kfF9+8YtfxMyZMyMior29Pb773e9GxN7HJBdccMGAbn/atGkxbdq0PvNAUUQufAzz5s2rnu55uHFHR0e/23/uc5+rnj711FOrp1tbW6Orq6vPe24AILvbb7/9vx6e29HR0Sdy58yZ0+dV0Z5vIeq55o4fPz6OP/74+P3vf99r+1deeaV6+pZbbun3yKo//elP//2b+A96zt192PJH9Ty/55PXQ2XChAnVwI3o/Zik5z6EsnK4MnwMPd/fM3Lkv58z+uj7g/rz34L2X//6V6+v//73vw9wOgA48HUfXhwR8a1vfSueeeaZaGlp6fWJy3v27OlzuaOPPvo/Xu9gPXH8z3/+M3bv3l3z5Xv+SqA33ngj3n777T7bvPjii/1u3/N76Pm4YLAfE/S3r4brtmEoiFwYRi+88EL19G9/+9vq6e5PT4z49zO4O3bsiH/84x8RsfeV3n09kzxixL9/jPt7EAAAB7I333wzIvYeEfW9730vzjzzzJg1a1b1/H3pL8yOOeaY6umNGzdWT7/99tv9rqPdhydHRKxevTq6urr6/Nm1a1f1k6FrWXPnzJkTEydOjIi9vxf3rrvu6vX3HR0d8ZOf/KT69YUXXlg93fNV3e5fv/Tee+/F888/3+9t7e98O3fu7PXWqp6PSbo/M6S/247Y+77dfen+N/F4hKI5XBmG0TXXXBMjR46MMWPGxDXXXFM9f+HChdXTM2fOjN/97nfxwQcfRHNzc5x++ulxzz339Hllt1vPV5N/9KMfxec///kYPXp0zJ49e+i+EQAYJE1NTfHqq6/Gjh07Yvny5XHSSSfFHXfcETt37hzwdS1cuDCWLl0aXV1d8eijj8ZNN90Un/nMZ+KOO+7o837ciIjm5ua44447ImLvpzLv3LkzTjrppOjo6IjXXnstfvOb30RTU1M1QnuuuWvXro3TTz89Dj744DjxxBP3eZjxwQcfHNdff31cddVVEbH3Vw+99957cc4558Rbb70Vy5cvr36v06dPj69+9avVy86cObP6Ku/FF18cF110UfzsZz/b59uies73wAMPxEEHHRQHHXRQv++PbW5ujm9/+9vxl7/8JVauXNlrH0bs/bWEI0aMiD179sSzzz4b1157bRx66KHVzyLZ1+3v3Lkz2tra4sEHH4ympqY4+uij45Of/OQ+LwNDogvYp+985ztdEdEVEV2XXHJJn/NWr15d3XbdunV9tu3q6uqaN29e9fyTTjqperr7z6RJk7q2b99e3f6HP/xhn23Gjh3bNWXKlOrXr7/+enX7VatW9dm+qalpaHcMAAxQU1NTdZ1at25d9fzbbrutzzo2ceLEruOOO67Purevtbanq666qs/1HXbYYb1uv+c6et111/XZvuefnrfz1ltvdTU0NPTZpuf3sy9Lliz5j7czderUrs2bN/e6zFNPPdVnu5EjR3bNnDmz39t+/PHH+73ubt1fT5gwodfjiu4/Z599dteePXuq23/5y1/us80JJ5ywz8cbF1100X/cfzBcHK4Mw+jnP/95XHXVVXHkkUfG6NGj47zzzovnnnuu16cqfuUrX4lrrrkmjjrqqBg9enSceeaZ0dLS0usQrJ6+9rWvxdKlS2PatGm9DlMCgDK4+uqr4+abb46mpqY45JBDYv78+fHss89GpVKp6fr+7//+L5YtWxaNjY1x8MEHx2mnnRbr1q3r9Spn96/MiYi48cYb49e//nWce+65ccQRR8SoUaNi8uTJMXfu3Fi+fHn1E5ojIiZOnBhr1qyJWbNmxejRowc01+233x7r16+PRYsWxeTJk2PUqFFx6KGHxmc/+9m46aab4qWXXopPf/rTvS5zzjnnxMqVK2PKlCnR0NAQp556ajz11FMxZ86cfm9jwYIFsWLFijjmmGN6fVbIRx166KHR0tISF1xwQYwZMyYmTJgQl19+eTz22GO9DgNftWpVLFq0KMaMGROHH354XHzxxfHcc8/t83rvuuuu+OIXv7jPT5GG4VLX1bUfn5AD1Gz+/PmxYcOGiNj7O/38ih8AGDpd/fy2gh07dsS0adPi/fffj3HjxsWOHTv+J58Y7t4vTU1N/f7eYMjCe3IBAEhjxYoVsXPnzliwYEFMmzYttm7dGtddd128//77ERGxaNGi/8nAhf8lIhcAgDR27doVy5cv7/cDkk444YS49dZbC5gKGE6exgIAII358+fH+eefH5MnT476+voYO3ZszJo1K2688cZ44YUX4ogjjih6RGCIeU8uAAAAaXgl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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with open('/kaggle/input/competitions/neurogolf-2026/task015.json') as f:\n", " task = json.load(f)\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(10, 5))\n", "plot_arc_grid(task['train'][0]['input'], axes[0], 'Input')\n", "plot_arc_grid(task['train'][0]['output'], axes[1], 'Target Output')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "ab748fb3", "metadata": { "papermill": { "duration": 0.004416, "end_time": "2026-05-31T09:46:17.653821+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.649405+00:00", "status": "completed" }, "tags": [] }, "source": [ "# 2. Convolution design\n", "\n", "In ONNX, the `Conv` operator weights W have the shape **[M, C, kH, kW]**:\n", "- `M` = number of **output** channels (10, one per color)\n", "- `C` = number of **input** channels (10, one per color)\n", "- `kH, kW` = kernel height and width (both 3 in this case)\n", "\n", "This means that every input color (0-9) can influence every output color (0-9) through a unique 3x3 pattern of weights. We have 100 unique 3x3 patterns (10 output colors x 10 input colors).\n", "\n", "### The 3×3 Stencil\n", "\n", "When the convolution produces pixel `(x,y)` in the output, it looks at a 3×3 window of the input centered at `(x,y)`. The window coordinates (offset from center) are:\n", "\n", "$$\n", "\\begin{bmatrix}\n", "(-1,-1) & ( 0,-1) & ( 1,-1) \\\\\n", "(-1, 0) & ( 0, 0) & ( 1, 0) \\\\\n", "(-1, 1) & ( 0, 1) & ( 1, 1)\n", "\\end{bmatrix}\n", "$$\n", "\n", "The offset `(0,0)` is the **center** — the pixel directly below the output position. The other offsets are its neighbors.\n", "\n", "### The Formula\n", "The output for a color O at position (x,y) is:\n", "$$ Output_{O}(x,y) = \\sum_{i=0}^{9} \\sum_{r=-1}^{1} \\sum_{c=-1}^{1} Input_{i}(x+r, y+c) \\cdot W(O, i, r, c) $$\n", "\n", "## 2.1 The Identity Kernel — \"Pixel stays where it is\"\n", "\n", "### The Identity Kernel\n", "\n", "The simplest kernel is the **identity**: it copies an input pixel straight to the output without moving it. For every color `c`, we set:\n", "\n", "$$W[c,\\;c,\\;1,\\;1] = 1.0$$\n", "\n", "This says: \"for output channel `c`, look at input channel `c`, at offset `(0,0)` (the center), and multiply by 1.0.\" All other offsets are 0, so no neighboring pixels leak in.\n", "\n", "Visually, the identity kernel for any color `c` looks like this:" ] }, { "cell_type": "code", "execution_count": 4, "id": "3e23e8fb", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:17.664586Z", "iopub.status.busy": "2026-05-31T09:46:17.664265Z", "iopub.status.idle": "2026-05-31T09:46:17.749763Z", "shell.execute_reply": "2026-05-31T09:46:17.749075Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.092806, "end_time": "2026-05-31T09:46:17.751247+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.658441+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Only the center (0,0) is 1.0 — the pixel passes through unchanged.\n", "All other offsets are 0.0 — no neighbor pixels bleed in.\n" ] } ], "source": [ "def visualize_kernel(kernel, title, cmap='RdBu', highlight_center=True):\n", " fig, ax = plt.subplots(figsize=(3.5, 3))\n", " im = ax.imshow(kernel, cmap=cmap, vmin=-1.2, vmax=1.2)\n", " for i in range(3):\n", " for j in range(3):\n", " val = kernel[i, j]\n", " c = 'black' if abs(val) < 0.5 else 'white'\n", " ax.text(j, i, f'{val:.1f}', ha='center', va='center',\n", " color=c, fontweight='bold', fontsize=13)\n", " if highlight_center:\n", " ax.add_patch(plt.Rectangle((0.5, 0.5), 1, 1, fill=False,\n", " edgecolor='lime', lw=3, linestyle='--'))\n", " ax.set_xticks(range(3), ['-1','0','1'])\n", " ax.set_yticks(range(3), ['-1','0','1'])\n", " ax.set_xlabel('Column offset', fontsize=9)\n", " ax.set_ylabel('Row offset', fontsize=9)\n", " ax.set_title(title, fontsize=11, fontweight='bold')\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "k_identity = np.array([[0, 0, 0], [0, 1, 0], [0, 0, 0]])\n", "visualize_kernel(k_identity, 'Identity: W[c, c, :, :]')\n", "\n", "print(\"Only the center (0,0) is 1.0 — the pixel passes through unchanged.\")\n", "print(\"All other offsets are 0.0 — no neighbor pixels bleed in.\")" ] }, { "cell_type": "markdown", "id": "5d58da69", "metadata": { "papermill": { "duration": 0.006139, "end_time": "2026-05-31T09:46:17.762616+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.756477+00:00", "status": "completed" }, "tags": [] }, "source": [ "## 2.2 Red Triggers Yellow — Two Kernels for One Rule\n", "\n", "Now the real work begins. The task rule is:\n", "\n", "> **Every Red (2) pixel must have Yellow (4) pixels at its four diagonal corners.**\n", "\n", "But there's a subtlety: what if a corner position was **Black (0)** background? The Yellow pixel needs to *replace* the Black. So we need:\n", "\n", "1. **A \"write Yellow\" kernel** — when the center is Red, vote +1.0 for Yellow at the corners.\n", "2. **A \"suppress Black\" kernel** — when the center is Red, vote −1.0 for Black at those same corners.\n", "\n", "### The Two Corners Kernels\n", "\n", "Both kernels use the same 3×3 pattern — the four corners — but with opposite signs.\n", "\n", "| Kernel | Expression | Effect |\n", "|--------|-----------|--------|\n", "| `W[4, 2, :, :]` = corners pattern × **+1** | Each corner adds 1.0 to Yellow's score | **Creates** Yellow at the diagonals |\n", "| `W[0, 2, :, :]` = corners pattern × **−1** | Each corner subtracts 1.0 from Black's score | **Suppresses** Black at those same spots |\n", "\n", "The corners pattern is:\n", "\n", "$$\n", "\\begin{bmatrix}\n", "1 & 0 & 1 \\\\\n", "0 & 0 & 0 \\\\\n", "1 & 0 & 1\n", "\\end{bmatrix}\n", "$$" ] }, { "cell_type": "code", "execution_count": 5, "id": "050dbfc3", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:17.773940Z", "iopub.status.busy": "2026-05-31T09:46:17.773691Z", "iopub.status.idle": "2026-05-31T09:46:17.914713Z", "shell.execute_reply": "2026-05-31T09:46:17.913461Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.149167, "end_time": "2026-05-31T09:46:17.916905+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.767738+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwcAAAFbCAYAAACAi/LqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAAWP9JREFUeJzt3Xd4FNX+P/D3Zmt6I5BEQoDQExIQCFFAQAQUvFcUUK9eOtIU8AqKiEgTG6DylaJ4acJVVASEn0rvHYFQIhCBEFpCSCC9bjK/P7I72cluym42u5vk/XqefWDOlHP2ZHbOfGbOnJEJgiCAiIiIiIjqPCd7F4CIiIiIiBwDgwMiIiIiIgLA4ICIiIiIiHQYHBAREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEinVgQH+/fvh0wmk3zatWtn72LVKKXrTyaT2btIdqWvg8aNG9u7KFZh+BsZPny4mD58+HAxff/+/XYrX1lOnTollu/IkSMWbSM+Ph4KhQIymQw///yzlUtIVIJtUdXcuHHDqP5qyzGYbKusNq86WLMd7d+/P2QyGXr37m3xNnr37g2ZTIb+/ftbvA27BQf//e9/xcocN26cZN6XX34pzouKipLM2717tzjv2WeftShvfeXrP5cvX7b4ewDAtm3bMHbsWERERMDPzw8qlQqNGjXCyJEjER8fX6VtU7GrV6+Kf69WrVpJ5kVHR4vzFAoFsrKyxHk5OTlQqVSQyWTw9PREUVFRlcoxe/ZszJ49G19++WWVtmPKF198IX4Pf39/pKWlSeZfu3YNGo1GXGbz5s1WL4OjmTlzJgCgU6dO6NKli8llUlNTERgYKKk7Q8HBwXjhhRcAAHPmzKnyPkC1i63bory8PHz00Udo06YNNBoNfH19MWDAAJw5c6bK32XdunUYNmwYQkND4e3tDbVajWbNmmHy5MlITk6u8vapxMOHDzFlyhQ0b94carUa7u7uaNy4Mfr06YP33ntP0g5R1fXo0cMocFSr1QgKCsKgQYNw/Phxexexyo4fP47ff/8dAPDmm28azf/xxx/RpUsXuLm5wc3NDV26dMFPP/1ktNx//vMfAMDvv/+OEydOWFYYwU4uXrwoABAACOHh4ZJ5L774ojhPpVIJubm54ry5c+eK8+bNmycIgiDs27dPTBsxYoRw6NAh4ezZsybzXb9+vbis/nPp0qUqfZeWLVsabVP/8fX1Fa5evVql7dvCoUOHhEOHDgnt2rUTy+5o/Pz8BACCTCYTUlJSxPRly5ZJ6nzfvn3ivIMHD4rpvXr1qnRe+vo4deqUJF2/reDg4Kp+HSNarVaIiIgQ85g0aZJkfv/+/cV5zz77rFnbNvyNDBs2TEwfNmyYyXpzBBcuXBDL9vXXX5e53OjRoyV//wYNGhgts2PHDnH+tm3bqrPYVMPYsi0qKCgQevXqZbKtUKvVwu7du6v0XdRqdZltUZMmTSTHTUeUm5srHnv9/f2r7VhbVdnZ2UKbNm3KrGsAwq1bt+xdzFqle/fu5da3UqkUjhw5Ii5fVptXHazVjg4cOFAAIAQGBgpFRUWSebNmzSrzu+uPP3pFRUXCI488IgAQBg4caFFZ7HbnoHXr1vDw8AAAXLx4ERkZGeI8wwgwPz8fZ8+eFaePHTsm/r/0lRwAaNSoEbp27WryVm5ycjLefPNNyGQyqFQqa3wNUXh4OL788kvs2rULX375pfjdUlJSMHfuXKvmVR26du2Krl27wtPT095FKVPnzp0BAIIgSPaR0lcMDKcr2l9K01/t0ddHx44dq1Rmc8jlcnz99ddil66lS5fi/PnzAIrvTv32228AABcXF3z11Vc2K5e9rF69GgDg5OSE559/3uQy+/fvx8qVK6HRaMrdVs+ePeHt7Q0AWLNmjVXLSTWbLduiZcuWYc+ePQCAsLAw/PLLL3j//fcBFN9RGD58OPLy8iz+LjKZDF27dsXXX3+NXbt2Yd68eWJbFxcXh8WLF1u8bVtQq9XisVetVtu7OGVav349/vrrLwDAo48+ig0bNmD37t1YtWoVJk6ciICAADuX0DI15W7He++9h0OHDmHr1q1o06YNAKCgoAArVqywc8ksl5KSgm3btgEAnn/+eUnX7ujoaMybNw8A4O7ujlWrVmHVqlVwd3cHUNyjQX+uABQfBwYMGACg+NzhwYMH5hfI0gjHGnr37i1GPvorJnfv3hXT9JH5F198IQhCcTTk4+MjABCcnJyEtLQ0QRCkEeKsWbPKzO/VV18VAAhjxowRgoODrXbnYOfOnUZpX375pbj91q1bV2n71ry6a/i9TTGMzh3N/PnzxbK9//77YnqLFi0EAEJoaKgAQHjuuefEeQMGDDC6Ylz6isIvv/wiRERECCqVStx/9PP1V63Ki9oNr2zl5+cLixYtEh599FHBxcVFcHFxESIjI4V169ZV+nuOGTNG3Ha3bt2EnJwcISQkREz7+OOPxWWTkpKE//znP0KzZs0ElUoleHl5Cf369ROOHTsm2aYldw727Nkj9OvXT/D19RWUSqXQsGFDYdiwYUJsbKy4zPnz58X1X331VTF9xowZYnpcXJwgCIKQkZEhyOVyAYAQGRlZYT00adJEACC0b9/e5PycnByhWbNmAgDho48+KvfOgSCU7AsajUbIy8urMH+qO2zVFrVu3Vqcb/gb7du3r5i+ceNGi7/Hjh07jNLefPNNcdvPPPOMxdsWBGn7oP9dW8rU8dOQvq1yxDsH48aNE8u/detWo/n5+flCQUGBOF3WcXb16tUm9xfDej5//rwwYcIEoV69eoKLi4vQv39/o94Ihu16YmKi8Morrwienp6Ch4eH8Morrwj37t2TLG9Y9+fPnxeeeuopwdXVVejevbu4zPXr14XRo0cLjRo1ElQqleDn5ye8+OKLwl9//SXZVmFhofDhhx8KoaGhgkajEdRqtRAUFCT069dP+O9//ysul52dLUydOlVsq1xcXITGjRsLzz//vLBp06YK69ywTlavXi2mL1myREzv27evmF5Wm3fgwAFh0KBBQrNmzQRPT09BqVQKAQEBwuDBg4Vz584Z5ZudnS3Mnz9faN++veDq6iq4uLgIbdq0EWbOnCkuY+rvm5aWJrRv377Mq/ulrV27Vlz2119/lcwbP368yfb/448/FtPfeOMNyTpbtmwR53333Xfl5m2KXc8AP/jgA6OK++WXXwQAQvPmzYW3335bACC8+OKLgiAIwuXLl8XlQ0NDxe1UJjj4448/xNs1qampVg0OTPntt9/E7Xfs2LFK22JwUGzv3r1i2fRdhFJSUsS0b7/91ujkUH9rGoBw//59QRCk+0uTJk0EmUxmtP9YEhzk5+eX2WUAgPDOO+9U6ns+ePBA7EIFQOjSpYvkJCU/P18QBEGIj48XGjZsaDIvpVIpOcCYGxwsXbpUUi+GH3d3d+HkyZOCIBSfJHl7ewsAhJCQEHH9J598Ulz++++/FwShONjQp02dOrXcOjA8MRs1apTJZaZNmyYAEPr37y/ExcVVGBwYdgMpHTxR3WaLtsjwWKVUKgWtVivOmzNnjjhv8uTJVv1uS5cuFbc9aNCgKm2LwUEx/f6gPz7v3LlTyMrKKnP5qgQHprotP/LII0JycrK4vGG7bmr58PBwSZc4fbqnp6fg6+srTuuDg9OnTwteXl4mj/9ubm7CiRMnxG0ZHldLf7p06SIuN3LkyDKXM7ywVBZTwcHDhw+Ff/zjH2L6lClTxOXLavMMT6hLf1xcXCTBT1pamqSrtal239TfNzc3V+jZs6eYNmPGjAq/n+FFwdJd0tq2bSvOO3DggJh+4MABMT0iIkKyzs2bN8V5Y8eOrTD/0uw6WpHhrVj9LVr9bdyoqCg8/vjjkjRzu4joZWZmig+aLVu2zCZdZ3755Rfx/88880y151cXdOrUCXK5HABw8uRJFBUViftGUFAQBg4cCJlMhnv37iEuLg43btxAYmIiACAkJAT16tUz2mZcXBw6duyIn3/+GVu2bEG3bt1M5j1y5EgcOnRInPb398ehQ4dw6NAhbNy4EQCwePFisctAVFQUNm/ejI0bN6Jly5YAgM8++6xSDwd5e3tj4cKF4rR+lB6ZTIbly5dDqVQCACZMmIDbt28DAIYOHYrt27dj+fLlcHNzQ0FBAUaOHGnRbeJbt27hP//5DwRBgJOTE95//3389ttvGDx4MAAgIyMDw4cPhyAIYjcGoPiB6fv376OwsBAnT54Ut3f06FHJvwDKrGe9S5cuif9v1qyZ0fyzZ89i0aJFcHd3x/Llyyv1vQy3o+8SQATYpi26ceOG+H9fX1/xWAYA9evXF/8fFxdnZunLt2nTJvH/bIus46mnnhL/f+TIEfTp0wceHh7o2LEj5syZY9WHv1NSUrB69Wr8/PPPaNq0KQDgzp07+Oijj0wuX1BQgB9//BFr1qwR27zz58+b7HKTlpYGuVyOFStWYMeOHRg9ejQEQcCwYcOQmpoKAJgyZQp27tyJTz/9FHK5HJmZmRgxYgQEQQAA/PrrrwAALy8vrF+/Hrt378Z3332HcePGSbpX6ZcLDg7Gxo0bsXPnTqxcuRJDhw4Vu3xW1ogRIyCTyeDt7S12xWnXrh2mTZtW4bqRkZH46quvsHXrVuzbtw+7du3Cp59+CgDIzs7GF198IS47Y8YMREdHAwB8fHzwxRdfYPv27fjqq6+MBkbRKyoqwquvvop9+/YBAN566y18+OGHFZZL3+ap1Wo0bNhQMs/w2NGgQQPx/+UdN4KCgsQuhZa0dwqz17CiqKgoyGQysQ+5/l8AeOyxx/DYY48BAG7evImEhASLg4MZM2YgPj4egwcPxnPPPWfdL2HCt99+i1WrVgEAmjZtiilTplRpe2vWrLFaP2nDnaw6pKWl4cKFCxat26BBAzRv3rzM+W5ubggLC8O5c+eQkZGBixcvSvYXb29vtGzZEpcvXzZ6DqGs/cXNzQ3bt2+Hj49PuWVr1KgRGjVqJE7r+8YaWr9+vfj/t956Szwwv/rqq/jggw/EZfTPTpRn6NChWL16tWRYtGHDhuGJJ54AADx48EAc1cDf3x+vvfYagOJ+zL1798bmzZuRkpKC7du3Y+DAgRXmZ2jjxo3Iz88HUNz3Ud/XsXfv3jh06BASExPx119/4dy5c2jXrh26desmHqCPHTuG4OBgZGZmIjQ0FDExMeLvVv+vYUBRFsPGtXTDUVhYiNGjR0Or1eKTTz5BUFBQpfZrw+1w5BYyZIu2yDBQL/3Mm+G0Nft9v//++5ILFkOHDq3S9qw53LH+5LK6JCUlITY21qJ1Sx/vS+vTpw+mTZuGzz77TPwehYWFOH36NE6fPo2lS5fi2LFjCAkJsSh/Qx9//LE4FKeXl5c4xOWWLVuwaNEio+W/+eYbMXgpKCgQ24YtW7Zg4sSJRsuvX79eMmxmdHQ0Ll68CKD4hFvfd/3xxx9HZGQkjh07hr/++gtnzpxBhw4dxItVrq6uCAkJQXh4OFxcXDBkyBBJPvrlvLy8EBISgtatW0OtVmPkyJGWVo2Es7MzMjIy4OfnV+5yUVFROHToEFasWIFr164hOztbMv/PP/8EUHyS//3334vpP/zwA/r06QMA6Nu3L9544w2T2582bZq4jQkTJpj8G5mib5NMBUplHTsqOm54e3vj3r17FrV3dg0OvL290aJFC1y5cgUPHjxATEwMTp8+DaD4D9igQQM0adIEcXFxOH78uOSEr7IH5MuXL2PJkiXw9va2yUOcixcvFoeR8vf3x/bt2x36IV9rO3v2LHr27GnRusOGDaswCIqKisK5c+cAFJ9sGl7dA4obcnOCgy5dulQYGFSWYUP04osvmlzG8Ip4RT777DNERkaK0wsWLBD/f/XqVbFRSkxMLPNKvDn56Rl+D8NARqlUon379vjjjz/E5dq1aycGLEDx3+Tu3bsAgIEDByI9PR3nzp1DVlaW+Ddp06aNWXVe+iRi5cqVOHPmDLp06YLx48dbvB0iPVu0Ra6uruL/Sz90rA/GSy9XFVOnThVPTFq1aoWtW7dCobBrk29Tv//+O0aMGGHRurNmzcLs2bPLXeaTTz7Bv//9b/z000/YuXMnTp8+Da1WCwC4f/8+Zs6cKTm5tJThMdiwPbhx44Z497Yyy1+/ft1o2xqNxmg8fcPjf3R0dLltS4cOHTBq1CgcP34cd+7cwWOPPQaZTIamTZuiV69emDJlClq0aAEAGDVqFObPn49z586hffv2kMvlaNGiBZ5++mm8/fbbZj3E/d577+GZZ55BdnY21qxZgx9++AHHjh3DoEGDKhwS+F//+he2bt1a5nz9HZPk5GTxQV61Wi25W1QefWDQpUsXLFmypFLrGDLVTrm6uooDJRgeOyo6blSlzbP7S9D0V2QA4Ouvv0Z2djZcXFwQHh4umb9z504xmvXw8BCfUK9IYmIiioqK8PDhQ/j7+4vj4xq+f6B169ZWeVHN/Pnz8eabb0IQBAQFBeHAgQPlXgkn8xnuL0eOHBG7rxgGB0DxSWplru4Z3qKzBXOuCpa+AmKqW5Q186sMUy/H69Chg3hgMqx3/RVXrVaLdevWiQfairoUAdLv+vDhQ8k8ffBx5MgRODk5QSaToUmTJuL8e/fuQSaTGY0TbbgdS+qSarfqbosMX+aVkpIinkgCELs/ApDsy5YoKirC2LFjxcAgPDwc+/fvr/CKKpkvLCwMc+fOxfHjx5GcnIzXX39dnGd4kmp43CwsLBT/b+4VXXNfTlrR8obdUsylb1tGjx6NP/74A0OGDEFYWBhUKhWuXbuGFStWoHv37uLJ9rx58/DDDz9g8ODBaNmyJWQyGS5duoQvvvgCffr0kfweKtK8eXN07doVffr0wXfffQc3NzcAxRcny7tbdPPmTTEwcHNzw7Jly7B//37JHTFT78Ex58Ww+u6CR48eNfkOgrLo26TS7R0gPXbcu3dP/H9Fxw193VvS3jlUcKC/amzYt1w/f926deIfrVOnTnBysnvRJaZNmyYOSde8eXMcPnxYjJjrkh49ekAoftDd7E9luk4Z7i+bNm1CWloaVCoVHn30Ucn86Ohosa+gs7MzIiIiTG7P0oOtqQOI4d/7+vXrJr+j/hZ/VTVr1kwsS0hICLRarVFe+fn5Fg2ja/g9DJ8dKCgokAzlqF9OoVCIwdepU6dw+PBhyGQydO7cWfx7GL40zvBOQ1lat24t/v/q1atmfwdTDLdT2RM6qjuquy3y8fER92utVotTp06J8wwvZFQmeC6LVqvFkCFDxP7lUVFR2L9/v80vgjgC/XNRlnwqumtw8uRJoxN7T09PjBkzRpw2DAIMew8YntBt3769wu9heAw2fGatcePGJtuvspbXP69gyNT6hsf/7t27m6yfrKwsjB07FkDx1emnn34a3333HS5cuIDMzEzxwkxiYqLkWbOXX34ZP/30Ey5fvoyMjAwMGjQIQPEQwpZ2ASutvGE779y5I/6/b9++GD9+PLp3725y2Nx69eqJXXxyc3Oxe/fuSuU/f/58aDQa8dmNAwcOVGo9/bEhPz8ft27dkswz7IZrWJ/lHTdu3rwp3lmwpL2z+z1Gwyu6+kjUME1/QDa8AmrO8wbNmjWTPGCiN3fuXDFCmz59OkJDQ8V5w4cPx9q1awEA+/btQ48ePcrNY/Lkyfi///s/AMX96T7++GPcvHkTN2/eBFB8685wvPzGjRuLdy4qc9unrPLcuHFDjBa7d+9eqf6g5ubtaFq0aAEfHx88ePBA3Cfat28v/rjbtGkDDw8PpKeni+s8+uijYn/HqvL29saDBw9w9+5d/O9//0NwcLD4rMSrr74qdnl69tln8c4776Bhw4ZISEjA5cuX8euvv2LKlClWeZW7j48PnnnmGfz++++4du0a/vnPf2LUqFFwd3dHfHw8zp49i02bNuHYsWOSqw6VMWjQIEybNg0FBQXYtGkTZs2ahaioKKxduxYJCQkAiuvZMOB64oknsGfPHmRnZ+P69eto3bo1vL29xd/vlStXxGUrc/ITEBAgduMofZv46aefhpeXlyTtwYMHknGg586di/bt20uW0Qc2Go1GDCaJ9Kq7LQKAcePGYfLkyQCA1157DXPnzsWZM2ewc+dOAEDDhg0lb1vu0aOHeHIRFxdX4W954MCB4pXRoKAgzJ49GzExMeJ8T09PtG3bVpzWnxwGBwdX6rmdssqzf/9+sTtpZbqHWpK3I9m6dSu++OILPP/88+jVqxeCg4ORlpYmuQjSqVMn8f+GgyG8//77SE1NxdGjRyt1sWj69OlQKBRwdXXF9OnTxfSynp8cO3YsPv74Y+Tm5mLGjBkVLl9aREQEwsLCcPHiRRw4cABDhw7F4MGDoVQqcePGDZw8eRKbN28Wz58GDRoEd3d3dOvWDQ0bNoRWqxW71gAl3WC6dOmC9u3bIzIyEo888ggyMjIkD8qa836Pv//+G4cPH0Z2dja+++47ZGZmAih+J46pASz0goODxf/v3bsXP/zwA+RyOd577z2jZZ2cnPDKK69g6dKlAIBXXnkFM2fORKtWrXD9+nVs3bpVfO7PUOfOnfHdd9/hpZdeQl5eHgYMGIDDhw9LzjFN6dKlixjUnzlzBkFBQeK81157Dd988w2Kiorw0UcfoUGDBpDJZOJD6XK5XHy2RM/wQl6XLl3Kzdsks8c3srLCwkLB3d1dMkTU5s2bxfkFBQWCi4uLZH7pN5xW9j0HhsobytTcoUMNt2XqU3ootoqGEy2trPIYDt9oOD5xZctqiiMPZarXr18/Sf2WHvrPcMxylBreTBAq9+bEsv52+jcYGn7028jLyyt3KFNAOj5zRQz/vqb+HuUNZar/6IcbrK6hTPUMh5kFIIwcOVKsE8O3tjZu3LjS33/KlCkCUDyOfFJSUqXrytRQpvn5+eKQq1UdzpFqJ1u0Rea+IdncoUPLOxaYaifKOs6VpazyWPI22oryduShTA3f42Lq4+bmJly4cEFcPjk5WXBzczNazvC9F2UNZRoeHm60XkBAgOSYaNium1o+LCxMyMnJEZevqO7LG8q0dHtUXpvXoEEDITU1VRAEQfKuntKfNm3aSIb2NaWiNyQDECZOnCguX9Y+2b9/f6P1DIcLN6yT1NRUk/VZejlT7eiHH34opgUFBQm3b98u9/ulpKQIKpVKAIzfWSAI5r0hWRAE4fXXXxePK5a8Gd3ufXOcnJwkD80A0qsxCoXC6C215l6tMZdhl5HqeEujfvtVfUtzdZfTURne/geM94eK5lfFkiVL8OKLL5rsv6tSqbB9+3b83//9HyIjI+Hu7g6NRoMmTZqgf//+WLlyZZlv+rVEo0aNcPbsWbz99tto1aoVNBoN3N3d0apVKwwdOhRbt26VXH0wx4QJE7Br1y4888wz8PHxgUKhQGBgIIYOHYrTp09LrooBxXVsuD/r/wYqlQodOnQQ083pMqF/mLCoqAhbtmyx6Hvo7du3T7zSZY07N1T72KItUigU+O233zB//ny0atUKarUaPj4++Oc//4mjR4+iV69ekuWr8xhvzW3XtbZo3Lhx+Oqrr/CPf/wDLVq0gLu7O5RKJRo1aoQhQ4bg1KlTCAsLE5f39fXFli1bEB4eDpVKhZCQECxduhTvvPNOhXn98MMPmDRpEvz8/ODs7IxnnnkGBw8eLPMZkj179mDIkCHw9PSEu7s7Xn75ZezevbvCt8gbevTRRxEdHY1x48ahadOmUKlU8PLyQlhYGMaNGye54zFhwgS89NJLCAkJgZubGxQKBR555BG8+uqrOHz4sNilavr06XjuuecQHBwMFxcXKJVKNG7cGOPGjcPevXslQ/tWlkwmg6enJ7p06YJvvvlGcuemLOvWrcOwYcNQr149eHl5YciQIeJoe6V5enri2LFjmDdvHiIiIuDs7AwXFxe0bt26wpG/ZsyYgWHDhgEoHh78mWeeQVpaWpnL648DALB582ajnh2zZ8/Ghg0b8Nhjj8HV1RWurq547LHH8OOPP4pd2vUEQRDbzH/84x+WDbpidjjhgAwjRP2n9AshzKF/4USXLl2EoqIi6xVUKL6CoL8i+95771VpW/qX9AAw+ZZmc5Suv1qya1AN9/TTTwtA5d6oXJ7BgwcLQPELqwoLC61UOiIpa7ZFhYWF4tXbV155xboFFYqvDuvLuGLFiipta9GiRQIAQaFQCDExMRZvp/TdUjjonYPqZu4dI3N7I5BjOn78uPh3/P333y3ejuFLeA1fWGcOu985cDQpKSm4ePEi5HI5li5davYDqxU5ePCgOJqRYX9AS+j7fg4cONBoODKi2kD/QPXJkyfFl8GZKz4+XnwR1OzZsx1uMAMiU86dO4fU1FS4u7tLXopoLfr2o1OnThg1apRVtjV58mQ+7E9koc6dO6Nfv34AgM8//9zi7eifs+3fv7/R3dDKsvsDydbQvn17ydtrAYhDW5nr0KFDEAQB48aNK3OEm6rQH0Q///xzuLi4VHlbLi4uVdqJ9ErXH5Ej6NSpU5UfnA8ODjZrmDwiS1mzLdK3FR988IFZY8Cbs32ZTIYlS5ZUKWAuKirCoUOHEBAQgFmzZlWpTAEBAUb1Z053GKKa7rfffqvyNnbt2lXlbciEqra8RERERGQV5o5SVdNHISTHw+CAiIiIiIgAOMBL0IiIiIiIyDEwOCAiIiIiIgAMDoiIiIiISMehRytKTU3FgQMHEBQUVCderEJEVZeXl4dbt26he/fu8PLysndxqA5i20VElnCU9suhg4MDBw5gwIAB9i4GEdVAW7ZswXPPPWfvYlAdxLaLiKrC3u2XQwcHQUFBAIApCIA/VHYuTe3WZ6oFr9cmi+xc+MDeRajVEpGPRUgQjx9Etqbf9xQRw+DkUs/OpandXnjpCXsXoc7Y9ONBexeh1ivKTob23Fq7t18OHRzob8f6Q4Ug8NZsdQr1r9oL2ajyLiHL3kWoE9idg+xFv+85udSDk5u/nUtTu/k2am7vItQZTm6x9i5CnWHv9osPJBMREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEiHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAEBh7wLUNF7hLeHXPRI+ndrCp1NbuLdoDJlTSYx1Yvi7uLF2s1Xy8u0cgZCxL8GveyQ0AX4oyi9AdvxdJO44jNgv1yDnbpJV8nFkO648xJqT93A8PgNJmQVwUcrR1FeNfq19MKlbILxdqr4LH4/PwLfHEnHwehoS0gugUsgQ7K1G7xZemPxEIB7xVFvhmzgm7s9EtU/bpn7oFt4QHVr4o0NLfzR/xAdOTjJx/msL/sD6XTFWySuyVQBG9Y9At/CG8PdxRb62CDfvpWP36RtYsuk07qZkWiWfmubm2cO4tGcTEmOjkZP2AAq1Bh4NgtC4Q3eEPzsEGjfPKueReOUcYnb+iLt//Ymsh/chVyjh7heIoHZdEPHsULj5NrDCN7E/7s+2x+DATO0Xz0D9Hp2rPZ+Iz95ByykjJCdqcNZAFd4SXuEtETL+ZZwYOg13Nu+q9rLYQ0FhEUZu+Bs/nE2WpOdptTh9W4vTt7Ow7EgCNo1ojS5NPCzO551tcfji4F0IQklarha4kJCNCwnZ+OZYItb8qwWeb+trcR6OjPszUe2zcPyTeCIiqNrz+ei17pg8sKPkRM1ZXXwy17apH157NgKjP/sDvx75u9rL4igKtQXY89V7+PvQb9L0gnzcz4zB/WsxuPDH9+j37hIEtH7U4nyOrF2A6K1rYNh4FebnISU+Finxsbi4YwOemvQJQqJ6W5yHo+D+bHt1ultR6Kw38JJwBS8JV+DXPdLexRG1mTEerd4eJTmRKsjIQmFevjitdHPF4z9+gXpdOtijiGaZs+MmFFOPQDH1CPZfTavUOq//cs0oMPDQyKEw+NGmZGvR/78xuJqcY1G55u++hc8PSAMDN7UTVPKSPLLyi/CvdVdwOC7dojxsifszEdnKtFei8J/BnSQnUhnZ+cjL14rTbs4qrJvxLB4PfcQeRayykxuWYOkLbbD0hTa4c/FkpdY58M1co8BA5eIGJ3nJtdjcjFRsmzcGqQnxFpXrz5+/RvSvqyWBgVLjAieFUpzW5uZg56IpuHvptEV51DV1YX82R50ODiyRdiEWV5d9j5MjpmN72LNIOnjKqtt3bdwQbWZOkKSdGjMTmzwexWbvTri+cqOY7qRUouOKuVbN3xEciUvHqpMlXUyUchk2j2iNBx9GIXFOJPq29BLnZeYVYfLm62bnEZeSi/m7bknSlg8KwcMPo5A8rzNGRNYX07VFAsb/fBWCYRRRS3B/Jqp9YuLu45tt0RizcDs6jFmDwxduVbySGYL9PTH9lShJ2utf7kT9Af+HgIFLsGb7BTFdqZBjyZt9rJq/o0q4dAaX9vwiTjspFOg3fSleW38SI9ccRqP2XcV5BbnZOPTf+WbnkX7vNk79vFyS1mPcbLz2v1MYve44Wvd6QUwvKtRi//JZNb7t4v5se1YNDhISEvDuu++iZ8+ecHd3h0wmw/79+62Zhd2dmfQhTr8+B3FrNiEt5m+gqMiq2286ehDkapU4nbj7KK5/+xMAoDAnF2cmzkNBekmfN882zVC/Z5TRdmqyr48mSKaHdPDDP0J9AABezgosH9QMspLgHjtjU3HNzLsHK0/eQ35hyQHzyeaeeC3KHzKZDC4qORYPaAp3tVycfykpB/sqedejJuH+TFT72q63lu3Fm1/txrqdF/HXjWRr/6wx4um2UKtKroTvPROPVb+fBwDk5Gnx1tI9SM/KE+e3DvZF93bV3y3E3i5s/0Ey3bL7c2jSqScAQO3qgR7jZsOw8boZfQRpiTfNyuOv3RtRpC0QpxuGRyG0z4uQyWRQqp3RbfQMKJ1dxfkPb1/HnYsnLPg2joP7s+1ZNTi4cuUKPv30U9y5cwdt27a15qbrDP++3STT93YflUwX5uQi+dhZ6TpPS9ep6XbFpkqmezX3kkw38lajeT2NOC0IwM4r0nUqzOPKw3LzcFHJERXsLknbYWYexP2Zaga2XeZ5qmNjyfS+s9LuMTl5Wpy4dFeS1qdjk+oult3dOic9vgVFPCaZdvcLhFdAcEmCIODm2SNm5XEzWrp8w3BpHkq1M/xbtpOuc/awWXnUNdyfjVk1OOjQoQNSUlIQGxuLt956y5qbrhtkMni2bSFJyrp+22ixrLg7kmnvdq2qtVi2dDs1D8lZWklaE1+N0XKNfaRp5+5mVTqPoiIBFxKyJWlNfYzzaOIjHaXInDwI3J+pxmDbVXkyGRDWuJ4kLS7B+K7qjURpWnhIfaNlapPM5ETkpksvOnk0aGi0nEd9aVryjcuVzkMoKkJKfGwl8pD2iU+Oq3wedQ33Z9OsOlqRu7t7xQtRmZSe7pIuGACQ/9B4Jy2dpq5fe0bSuZ9VYJTm7Wy8m5ZOS8o0Xq8sabmFki5FAOBlYkjU0mn3zciDuD9TzcG2q/I8XdWSLhgA8DAz12i51Mw8ybSfl0u1lsvectIfGKWpXY1H0lO7SdNy0lIqnUdedoakSxEAaFyNh0QtnUe2GXnUNdyfTXOYoUyTkpJw//59SdrVq1etsu2WU0ai5dSRRukKt5I/bpdNX6Eo3/jkb1enQci5nWiVclRE4epslCZoC43TCqRX1g2/hz0t2n8Hnx+4Y5SemVfyHQavvQyVQma0zPHJEQjyUiMr37gzoeEIRXpKuTQtM9+4nsqSZWJZhYl7aMpS+Rp+D3vi/kzkOKqz7XJErhqlUZq20Pi4XaCVprmZWM9RnN2yCme3rjZKL8gtucP8x2eTJKMB6Q3+7Ce41wtAQZ7xc2+GIxSVlWaYR0W0ucZ5yORyozQnubSc5uRR19TG/dkaHCY4WLZsGebMmVMt21a4ucDZ36/cZdQ+XibTTf3wqos2y8QPX2n8Jyqdps10jB9+Zl4h7mWUf3X9YY7WZHphUfGVfFeV8Vl6QZHxSAsFpa78u6kq/3dyNbFs6e2ZytdNbbt9oTzcn4kcR3W2XaVt+OCf6NzG9DCKby/fi40HrlR7GbJyjY/xShNXV0qnZZpYz1EU5GYjJ7X8q+t5maaHsxZ0T8cq1cYXQ4oKjdu70mlKTeUvhig0lc1DWtfm5GFL3J8dl8MEBxMmTMDgwYMlaVevXsWAAQPsUyA7KEjLQGFevqQrhsrbxG1JH+ltxLyk2nPL0M/VOBp/mG188HtQKq2+W+WjeE+NHCq5TNK1KNVE0FI6Xz8z8iDuz1Q32LLt8nZ3hr+Pq8l5GpVtmvO0rDzk5WslXTG83Yyf2fJ2l6bdT63dQb+zh49RWm6mcTfK0mnOnpXvRql2cYeTQinpWmQqaMnNkObhYkYetsT92XFZVPv5+fl48EDav87Pzw/yKlyVrF+/PurXr54HPGLmLEHMnCVG6aGz3kDY7IkAgL09huD+gcq95KTaCALSLsTCp2OYmOQW0shoMdem0iG0HkY7xsNGs/o2wqy+xuWds+Mm5uneKbB7XBh6NCv7tfENvdSo56qQPJR8PSUXnUuNHBT3QNonMCLQ9AHGFCcnGdoGuOD07ZIHjK+lGPcxvJ5ieR7VifszkWVqWtvliAQBuHgjGR1a+ItpTQK8jJZrEiA9zp+/lmS0jKOIfPkNRL78hlH6yQ1LcOqnZQCAAXPX4JGwsl8u6VbPHxoPb8lDyemJt+DfIkKyXPo96Rj99RpXfgAGmZMTfINb4P61GDHN1FCo6fekAz/Ua8JBHspSG/dna7BotKKjR48iICBA8rl1y7ovpairEncckkw3eOpxybTcxRm+Ue3KXaem693CSzK95+9UyfSNB7mSk3mZDOjdUrpOhXm09JbmESu90pKVV4gTNzMkaX3MzIO4P5NjqeltV9+3f4Rzn4UmP+t3xVS8ASvZ/ecNyfSTjwZLpl00SkS2CpSk7Sq1Tm0UFCE9vt06f0wynZ50B2mJBvubTIagdtJ1KtKoXRfJ9O3zxyXTBbnZuBd7TlquUus4Cu7Pjsui4CAiIgK7du2SfPz9/StekdBz33d4SbgifhoPe14y//rKjSjMzxenGzwZhZCxLwMA5M4adFj6AZTuJVew0y9dQ9Je6cGhphv7eIBk+n9n7mNbTHFXk4fZWozfeM3wrfF4qrkXmtWT9sV8ctkFKKYeET9rT92TzB8Z2UDyUPP+a2n45mgCBEFAdn4hJm6+jsy8kgeQWtV3xpPl3PGoq7g/U03Ctqtydix4CTk7p4qff/cOlcxfs/0C8gtKBhfo0a4RRvcvvkLurFbgyzd6wd2lpDvh5Zsp2B9t3su+aqKwp1+WTMce3Ia4k3sBFHcn2v/1bBg2XkERj0vfewBg88xhWPpCG/Fzae9myfzWvQbCSVHS6ePOxRO4uGMDBEFAQV4ODn77oeQBZO9HmqJh27r9Yknuz+azqFuRt7c3nnrqKWuXpUZo/+UMBL30jDitKtVfuv3iGQj/ZIo4feSFiUgp9ZKn8mTF3cal+V8jbM4kMa3j13MQseAdOKmUkv7bRVot/hz7gSVfw6F1beKBYR3rY+2fxbftCgoFPL/6Mjw0cmTnF0Fr8KCwi9IJi59vanYeTX01mN6rIebuLLmK8/qm65j22w3kawXJ8whyJ2DZwBDIZMajJtV03J+pLqkrbdfC8T0xsHtJVxKfUv2lF054EvNGPSFO/2vurzj+l/QlT+W5kZiGT384jplDS65IfzW5Nz56rTtUCidJ/21tYRHeWLzLkq9R4wS27oBWPQfg8r4tAIqPab9/8gZULm7Q5uVKHh5WqJ3xxOgZZufh6R+EDgPH4tSPS8W0A9/MxdG1C1GoLZA8jyBzkqPHuNk1vu3i/mx7Vn/i48MPPwQAxMQU3xJat24dDh8ufjvf+++/b+3sbE7p6VbuSDEqT3fAs6R/vJPK/IdYY+YuhdLTHS3fGlGSr7u0v7s2Kxsnhk/H/UN/mr39mmD5oBDkaIvwU3SymJaeKx0G08dFgV+Gt0ILP+MRHCpjZu8gpOUWYvHBkoOI4d0CoDj4WPVyczwRUjvvGnB/JipWm9ouD1d1mQ96AsVju3u6lrzkUakw/5mLj9Yfg6erGpMGdhTTDK+uAsUjwYxZ8AeOXDB++WFt1WPcbGjz83D1yB9iWn52pmQZtZsn+r37FbwCG1uUR6cXJyA/OxPntq0V00oPV6pQO6PXxPkIDO1YevUah/uz7Vk9OJg5c6ZketWqVeL/a9oB1p6ip3yCWz9vR8i4l+H3RCdo/OtB0BYiO/4OErYfQuzi72w2Xr09qBRO+P7fLTGkQ32sOXUPJ+IzkJRZAGelE0J8NejXxgeTugXAx8XyEYRkMhkW/bMJBoX7YsWxRBy6no7EjAIo5ECwlwZ9WnlhUrdABHmpK94Ylauu78/k+Nh2mW/aN/ux6eAVjH62Hbq2bYgG3i7QFgq4mZSOXafisHTLGdy+n1HxhmoRuVKFvlMWoVXP53Bpzybciz2P7LQUKFQaePoHIbhjd0T0HwKNu5fFechkMnQdMQ3NHu+Lizt+xN2//kR2ajKcnORw9wtEo/ZdEf7sELjXC6h4YyTi/lxCJgiC8QDvDiImJgZhYWFYgGAEgSdo1WnQwvLHzSfr2Tj1fsULkcVuIQ9vIx4XL15EaGhoxSsQWZm+7VI9NgVObnymoTqNGt/f3kWoM1Yu/83eRaj1ijITkX9skd3bL4seSCYiIiIiotqHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgp7F6Ay+kz1Qai/i72LQWQVgxb62bsItVpMYjbeXhhv72IQ4YWXnoBvo+b2LgaRVYwa39/eRaj1Um7+jQ3HFtm7GLxzQERERERExRgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMDIiIiIiLSYXBAREREREQAGBwQEREREZEOgwMiIiIiIgLA4ICIiIiIiHQYHBAREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEiHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAACnsXoKbaceUh1py8h+PxGUjKLICLUo6mvmr0a+2DSd0C4e1S9ao9Hp+Bb48l4uD1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xGcgKbMAzkonhPhq0K+NDyZ1C4CPi+UjrshkMiz6ZxMMCvfFimOJOHQ9HYkZBVDIgWAvDfq08sKkboEI8jIeXaO2YD3bBuuZqFhtb7vkShX6TlmEVj2fw6U9m3Av9jyy01KgUGng6R+E4I7dEdF/CDTuXhbnIZPJ0HXENDR7vC8u7vgRd//6E9mpyXByksPdLxCN2ndF+LND4F7PeNjY2oL1bBus5+olEwTDXsWOJSYmBmFhYTg3tT1C/WvP+LFEVH1iErMRsfAsLl68iNDQUHsXh+ogfdv18pe/wrdRc3sXh4hqiJSbf2PDm8/Zvf2y6gPJRERERERUczE4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMDIiIiIiLSYXBAREREREQAGBwQEREREZEOgwMiIiIiIgLA4ICIiIiIiHQYHBAREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEhHYe8CVMbOhQ9wCVn2LkatNmihn72LUGdsnHrf3kWo1W4hz95FIAIAbPrxIJzcYu1djFpt1Pj+9i5CnbFy+W/2LkKtV5SZaO8iAOCdAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMD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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The two kernels are identical in pattern (corners), opposite in sign.\n", "Together they ensure: when center is Red → corners become Yellow, not Black.\n" ] } ], "source": [ "k_corners_pos = np.array([[ 1, 0, 1],\n", " [ 0, 0, 0],\n", " [ 1, 0, 1]])\n", "k_corners_neg = np.array([[-1, 0, -1],\n", " [ 0, 0, 0],\n", " [-1, 0, -1]])\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(7.5, 3))\n", "for ax, kernel, title, cm in zip(axes,\n", " [k_corners_pos, k_corners_neg],\n", " [r'W[4, 2, :, :] — Write Yellow (4)', r'W[0, 2, :, :] — Suppress Black (0)'],\n", " ['YlOrRd', 'Blues_r']):\n", " im = ax.imshow(kernel, cmap=cm, vmin=-1.2, vmax=1.2)\n", " for i in range(3):\n", " for j in range(3):\n", " val = kernel[i, j]\n", " c = 'white' if abs(val) > 0.5 else 'black'\n", " ax.text(j, i, f'{val:+.1f}', ha='center', va='center',\n", " color=c, fontweight='bold', fontsize=14)\n", " ax.set_xticks(range(3), ['-1','0','1'])\n", " ax.set_yticks(range(3), ['-1','0','1'])\n", " ax.set_title(title, fontsize=10, fontweight='bold')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"The two kernels are identical in pattern (corners), opposite in sign.\")\n", "print(\"Together they ensure: when center is Red → corners become Yellow, not Black.\")" ] }, { "cell_type": "markdown", "id": "b5187813", "metadata": { "papermill": { "duration": 0.005325, "end_time": "2026-05-31T09:46:17.928085+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.922760+00:00", "status": "completed" }, "tags": [] }, "source": [ "### How the Convolution \"Walks\" Across the Grid\n", "Let's trace what the convolution computes at **three different output positions** on a 5×5 grid with a single Red at (2,2).\n", "\n", "We fix $W[4, 3, :, :]$ and for each position we show:\n", "1. **Where the kernel is centered** — first column — marked with an orange square on the input grid\n", "2. **What the 3×3 kernel \"sees\"** — second column — each cell shows the input pixel color AND the weight value for (input→output) at that offset\n", "3. **The score breakdown** — third column — how each channel's score is computed, and which wins" ] }, { "cell_type": "code", "execution_count": 6, "id": "a8e117ff", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:17.941267Z", "iopub.status.busy": "2026-05-31T09:46:17.940314Z", "iopub.status.idle": "2026-05-31T09:46:18.411040Z", "shell.execute_reply": "2026-05-31T09:46:18.410270Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.479343, "end_time": "2026-05-31T09:46:18.412619+00:00", "exception": false, "start_time": "2026-05-31T09:46:17.933276+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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zudRRfVxhw4dLN5Tzp8/rxYtWqh9+/aKjo7Wzp07y639l2P48OGaMWOG8Zn1ySefaN68eWrZsqU8PDx09uxZ7dq1y/g8yD+Pe0ld6dd+fuXx+VAal9Of7733nkaOHKng4GA1atRIfn5+Sk5OLvTFQ/7Pgm7dull8qfHFF1/op59+UmZmpi5evHhZbSlp33355ZeKjIyUv7+/mjRpooCAAGVkZGjTpk0W012U12cYAACVHUlgAGXWtGlT/fTTT3rwwQeNZMepU6esjvgoOO/e6NGjFRsbq48//lhS7siTrVu3FrrtWrJcmf1Shg0bppMnT2rcuHHGLZP5R5bm6dmzp7744guLbf3799eHH35o8Q923gjOBg0aKCwsrNgFoB577DH9/PPPxvP9+/cbo1y7du1q9ZiaNWuqY8eO+v77743EWh53d3fNnj3bYtqN2rVra/DgwRax5/2z5unpqX79+lkksgu699579eabbyopKUlSbnJh4cKFRZYviZ49e+ro0aNWp8uoW7duods4p02bposXLxpJoNTUVK1cudKijMlk0htvvKEhQ4YUqjMzM1M7d+60mghxcHDQBx98UOJ5HqtUqaK77rrLGKmZnZ2tFStWGPtLMsLRZDJp/vz5uvPOO/X3339Lyv2dFLxWXFxc9NFHH+nWW28tUWylceLEiSIXELz55pt15513lst53N3dtWjRIvXu3dtI+J4/f15LliyxKOft7a1Zs2apefPm5XJeSZo6daqSk5ONxZKys7OLHFlZmveMorz44ou6cOGCJkyYICl3Xs3u3btr9erVCg8P1/z589WnTx+tXr1aUu4t+kVNx1Ie8ZSWq6urFi9erDvvvNP4kiQhIcFIXBd0JWN89NFH9fHHHxt3QBw/ftxIsha8/f9KKOvnUUX28cyZM9W5c2fjMygpKUnLli2TJOPOh+IWsLsSgoKCtHjxYvXp08f4/V24cMGIs6Cyzr97pV/7ecrj86E0yqM/z507p3Pnzlkt37x5c4vP1K5du+qWW27RH3/8YWzL+zI5KChInTt3vuTidEUpbd/FxcUVOf1EzZo19corr5QpDgAAYInpIABclltvvVX79u3T2LFjdcMNN6hKlSpydHSUh4eH6tWrpz59+uijjz4qlKAymUyaPHmyNmzYoEGDBqlRo0by9PSUo6Oj/P391aZNGw0bNkwLFizQ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y2MtKZi/3KhRozR69OhCZVJSUgotYldUHX/++acyMjKMxe+KKpd/MbfMzExt27at2NjLw/79+5WQkGAkjvP3V506dSRZJpvPnj1rPF68eLHVOvMnpPMvrCdJMTExSktLkyS1bNlSr776qiTp9OnTio2NtVqfyWSS2WwuVFdRLud6AFA5kQQGAMDOPR4UJM8i5vK7UhxNJi27eNGmMeDq0sHbW7dfYsX5itbZx0dvnTihkv27DQAl9/nnnxsLn3Xp0kU1atTQuXPnNH78eKNMRESEpNwpDnr27KnffvtN2dnZ6tmzp9544w2FhoZq9+7d2rp1q7755htdd911aty4sfbu3aszZ87ooYce0sCBA7Vx40b99NNPkiQXFxf169evRDHec889eu2115Senq53331XJpNJHTt2VEpKio4ePaoVK1YoNTVVS5cuLbKOW265RUFBQYqOjtbRo0d1yy236JlnnpGbm5v++usvBQQE6OWXX9Y999yjV199VZmZmZo/f75GjRqlDh066Ouvv9aZM2ckSU2aNFHLli3L2uXFSk5O1v33369nnnlGkZGRxhy4knTXXXdJyk3G55k1a5bq1q2rpKQkvf/++1brzD+adufOnVqwYIECAwMVFhammjVrys3NTWlpadq5c6c+//xzBQcH65133ikyyZs3P/Tp06f17bffqlatWgoODlb9+vWtli/v68GavC8PatWqpaioqDLXA+DqQBIYAAA7527jBLAkeVwFMeDqcjVcE84mk5xMJmVw+yuAChAfH68vvvhCX3zxRaF91apV03PPPWc8/+STT3TDDTfo5MmTioqK0uDBg419Xbp0kZSbkJsxY4ZuvvlmJSYmat68eZo3b55RzmQyadKkSQoNDS1RfDVr1tTHH3+sYcOGKT093epI4LxzF8XDw0MzZsxQnz59lJ6erlWrVmnVqlXG/lGjRkmSQkNDNWnSJD3zzDPKycnR22+/bVGPt7e3ZsyYcclpDMqqVq1aWrduXaFRvYMHDzYWhWvWrJk6duyo9evXKy0tTSNGjJAkI9FakLe3t9q0aaMtW7YoPj5effr0kfTvqOpBgwZpypQpysjI0LBhwyTlLiiXlzQvqFu3bvrxxx+VnZ2thx9+WJI0YMAAzZgxw2qbyvt6AGD/SAIDAFCJfDB3rg6cPGk8d3BwkK+HhxqFhem+bt3k6eZW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pbN06VIjASxJt99+u4YMGaIhQ4bo9ttvN7anp6dr6dKltgjxmvX+++/rk08+uex6lixZomHDhpWobHR0tHr37q3k5GSr+5OSktSjRw+dPXv2suOqTIYNG6YlS5aUe72RkZG6++67y6WuHj166NChQ+VSF+wHI4EBALBz2YnZtg3AfBXEgKtOTnKOzNlmmRxNly5cQbITuC6Bq8XUqVOVnZ2tJUuW6Oeff5Ykbd68WW3btrVxZJVHWlqa9uzZYzx3dXVVRESE8TwiIkJLly41ponYvXu37rzzTrm6ul7xWK82Z8+e1SOPPGIsxufs7KwmTZromWeeUbVq1WwWV1BQkBYuXGiTcycnJ+t///ufNm7cKBcXF9111116+OGHr3gckZGRGj58uNzc3GQymeTt7a2bbrpJjz32mBwcruy4yJdeekl79+6Vo6OjTCaTgoKC9Mgjj6hLly5XNI7LceHCBX344YfauXOnvL299fDDD6tXr162DgslRBIYAAA7F/9bvDLPZsrkbINkm1nKOJuhrPNZV/7cuKplJ2Tr3NRzcq3pKtni0swyK3mb9ZFRAGzD0dFRrVu3NpLAmZmZxZY/fPiwFi1apFOnTikpKUmSFBgYqPbt2+uWW26Ro6OjUTY6OlqLFi3S3r17lZiYKA8PD9WpU0cDBgyQp6en1fr//PNPff/995Kkrl27qn///tq/f78+/PBDSdKAAQN0/fX2M+3MqVOnlJX17+d1cHCwRR86OjoqODhYx48flyRlZWXp1KlTqlOnzhWP9Wr13XffycvLS2lpafroo480ceJEvffee7YOq8L06NGjyBHhU6ZMUWJior799lvFx8frlVdeUXBwsHr06FHq8yxZskSRkZF65ZVXyhSnp6enFixYIEk6duyYXnnlFYWEhOi2224rU30lkZGRIZPJJGdnZ4vtgwcPVt++fWU2m/X3339r9OjRatSokYKDgyssltI4e/ashg8frlmzZlndP378eNWoUUPz5s1TVFSURowYoZCQELVs2fIKR4qyIAkMAICdM2eZlbQxydZhAIVkHMtQxrGMSxcEUClkZ2dr+/btxvMWLVoUW/7kyZPatWuXxbYzZ85owYIFSklJUb9+/STlJjfff/99paWlGeUSExMVGRmp1NRUq0ngDRs26IcffpAkderUSQ888EBZm3XNuHDhgsVzb2/vQmW8vLwKHUMSuDA3Nzd16dLF+MLAmnfffVfbtm1TWlqaQkJCNHToUF133XXG/i1btmjGjBk6ceKEXF1ddffdd6t///6F6lm4cKHmzZuncePGGfM358kbofzTTz/Jy8tLGRkZ+vTTT7Vq1Sp5enpara88pKWlaeXKlZo4caK8vLzk5eWlu+++W7///nuZksDlqVatWmratKkOHDhgJIFPnz6tTz/9VHv37pWrq6t69eql/v37GyOFFyxYoHnz5iktLU133HFHic4ze/ZsRUVF6c0337T4MiWPyWRS+/bt5eXlpRMnTlhNAv/555+aO3euzp07Jy8vL91yyy0aMGCATKbcb89jY2P1+eefa9u2bUpPT1edOnU0YcKEQqPzT548qZEjR6pv376XNd3E6dOntXv3br355ptyd3dX48aNddNNN2nJkiUkga8RJIEBAAAAADZVcI7Tpk2b6sYbbyz2mHr16mn48OGqXr263N3dlZycrJkzZ2rnzp1as2aN+vTpIwcHB82dO9dIAN9xxx3q1q2bsrOztXXrVrm4uBSqd+fOnfr6669lNpvVoUMHPfzww0bSxZ7lT5JLKjSC0dq21NTUCo3pSvvoo4+0fPnyIvePHTtWzZpdevHSlJQUrVixQk2bNi2yzHXXXadnn31Wrq6umj9/vt5++23NmjVLHh4eOnTokEaNGqVXX31VHTt2VHp6uo4dO1aojq+//lp//fWXJk6cqMDAwEvGNXv2bO3Zs0eff/653NzcNH78+EseUxYnT55UZmam6tWrZ2yrW7euvvvuuwo5X2kcPXpUO3fuNBLgaWlpeuWVV9S3b1+99dZbiouL0+uvv64qVaqoZ8+e2rZtm6ZPn64JEyaofv36+uabbxQVFXXJ89x///0aMWKE3n//fb366quFpp7IycnRhg0blJ6errp161qtw8fHR6NGjVJISIgOHz6sESNGKDQ0VN27d1dOTo7efPNN1apVS9OmTZOHh4f27t1b6L1q3759GjNmjJ544onLnnbiyJEjqlKlivz9/Y1t9erV0y+//HJZ9eLKIQkMAAAAALiq7N69WwsXLtSdd95ZZBl/f3+tXr1aO3fuVHx8vLKz/53nOzU1VYmJiXJ3d9fBgwclSWFhYerdu7dRplu3blbr/fzzz5WTk6O2bdtajLqTpIYNG2rq1KmX27xrgtlstnUIV9xzzz2n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47R58+ZLxvfQQw+pQYMGGjp0qJ544gmLaQokadmyZRo8eHAZWl5Y3muof//+euGFF3TbbbepR48e5VL35WrYsKGaN2+u2bNny93dXe+99562bdumhx9+WP369dOECRMUGxsrSWrdurUGDhyot99+W/fff79ycnKsJm0L8vDwsPp+NG3aNPXu3Vu9e/fWCy+8oNatW+uRRx6xevwzzzyjiRMn6q677tLs2bMtFnZzcHDQ22+/rfT0dD322GPq16+fpk+fXijRm5cIPnTokCZOnHjZieCRI0cqJiZG9957r95++20NGTKkxCPRYXsmcymugN27d5doJcyrVqCkfz67w4+GK6p2lFRV0gUbxnSZwsPDS7Qy5dXumm6HHV5XkrRr165iV7MFcPnyPlfzRpeg7CZOnCgPDw/t379fH374oa3DuebRn+Un7x89PleBwvKSCfk5OzsrODhYERER6tGjhzGf6IwZM7R+/XpJMhZmi42N1ezZs3XgwAG5u7ure/fuSk9P16+//iopd67OvOkKoqOj9dtvv2nfvn1KTEyUh4eHateurYEDB8rT09Nq/QcOHND//vc/ZWVlKSgoSK+++qpOnTplvC8OGDCgUBLtavHOO+9o0KBBRSbRixIXF6fJkycbyV6TyWSMZD1+/LiRQHJ1ddWzzz4rPz+/UtUfExOjpUuX6tlnny3VcQCAy8ecwAAAAACAK278+PElLjtw4EANHDjQYluVKlWsznPZu3fvQtuCgoL02GOPlar+Bg0aaMqUKRbbGjZsaCSJ7ZG/v78eeughzZ49W+np6TKbzTp27JhFGVdXVz388MOlTgADAGyLJDAAAAAAAJAk1a1bV88//7z++usvHThwQPHx8ZIkPz8/NWjQQJ06dZK3t7dtgwQAlBpJYAAAAAAAYPD29lbPnj2vmoW8AACXj4XhAAAAAAAAAMCOkQQGAAAAAAAAADtGEhgAAAAAADvi4OCgnJwcW4dRSE5OjhwcSEMAgC3w7gsAAAAAgB0JCAjQhQsXbB1GIRcuXFBAQICtwwCASokkMAAAAAAAdqR169bavn27rcOwYDabFRkZqdatW9s6FAColJxsHQAAAJVdWFiYJk6caOswrmnu7u6SpHr16tGX5YD+LD+HDh2ydQgAKqFWrVpp7dq1WrFihdq1aydPT0+bxpOQkKA1a9bI3d1d9erVs2ks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MLD9FfKsH6284/EqzDyug189IknybthWOYdLrjHoHdFW7vUiVJCWqLxj+xX7dtFDVJqM/FQhF41y6OsV2kIHZj3o0Gb18lejwadC6NCL71Xqhm8lSem7flX6rl8lq7u8wloqN6nkjNqA1v2V9M+s5uRVnyp51aeSpAs/KPurq6EX36v0vxZLKgqmk5ZMksXDW77RFyorfn2p50jdOEeSlLjgZSUueLlEGFua4C5DdGTxG8o+uEX56UflUewBfem7lurv6XeU2Ofosnd1dNm7kqQOL+4/60PoUtZ/pcM/Plei/fCP443XxcciM+5PYzmIoC5DznhsAKjtMjMz9cknn+iTT0r/IPP11183wlxJSk5O1urVqxUYGKiFCxeqdevWkoqWEli0aJH69Omjv/76S7GxsQ5LEWzevFmbN28u9Rxt2rTRY489VuHaH3/8ce3atUsfffSR4uPjddVVV2nFihW66aabNGLECM2YMUMHDx7U/fffX2LfK6+8ssLnKw8/Pz9NmzZNQ4YMUW5uriZNmmTMaD2pSZPKf8MkOjpa0dHRio+PlyR5e3sb49yrV68qD4GfeOIJff755zp06JD27dunm2++WZLUqlUrJSUllej/4osvatmyZdq5c6c2b96sIUMcf67ecsstxjGkoofTde/eXStWnPr72MmlLnr16qUFC05964oQGAAAACgdy0GUIqB1f7Uf/5fCrxgj78gOsnr5yeLuJc8GTdWg10i1Hfunwi/7P4d9LG4eanH/XPk17yWLu6c8ghur4cDnFDX0rVLPYXFzV8t//yD/ln1k9Q4otc9JjW98Qw2vHS+PoEayuHvJv2UfnffoUnlHtDH61Gt3uRrfPFkewY1lcfeSb9PuavXwQvm36F3qMYM6XqvGN74ur9AWkrV8nwUEX3ijood/IK+wVkXhb9NuavXQAvk06lBq/9BL7lP4FWPkWT/aYfmJs2lw0T8hr92m1E1zy73f6ezFnixvcfeq9HEkGWG2xd1L9bsPO0tvAKjdHn/8cV1++eVq3LixvLy85OnpqaZNm2rYsGFasWKFRo8e7dA/NDRUixYt0vz580usNxsREaHFixdr3rx5Du/17NlT9957rzp06KDg4GC5ubkpKChIPXr00IQJE/THH3+UWI+2vN577z0NGDBAUlHQfMMNNyg/P1/Tp0/XjBkz1LdvXwUGBsrT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GwFwdHS0pk6dqgULFujVV19VVFSUJMlut+uOO+4wAr8bb7xRP/30k/773//KarXKbrfrkUce0YEDB0rUs3//fnXt2lVff/215s6dq4svvliHDh3SAw88IJvNpoCAAL399ttauHCh7rjjDknSrl27NHbs2DNeZ1ZWlkaMGGEEwBdffLFmz56tH374QY8++qix5MSBAwf0f//3f7Lb7bJarXrmmWf0008/6aabbpIkpaena9SoUSVCaqkolH711Vc1e/ZsI1xfsGCBduzYoY8++kjvvfee0feDDz4otc6DBw+qd+/emjdvnl544QW5ubkZ/bds2XLGayzN008/ra+//trY7ty5s1auXKmVK1fq7bffliS1bt1ab7zxhubOnatff/1VS5Ys0XvvvScvLy/ZbDa99NJLkqQ777zTWO9XkiIiIoxjffPNN2XWcC73w99//62BAwdq3rx5uuWWW4z2ssYPgGtgJjAAAAAAAE501113acWKFfriiy+Mtry8PP3+++/6/fff9d5772ndunUKDg7W8ePHNX/+fEmSm5ubFixYoLZt20qSrrjiCmP/TZs2aceOHZKKgsKZM2fKw8NDV199tXbs2KFvv/1WeXl5+vbbb0s8WMzf318LFixQ/fr1jbbJkycrNzdXUlGA2LlzZ0nSHXfcodmzZysrK0tffvml3n33XVmtpc8fW7RokZKSkiRJzZo10+LFi+Xl5SVJGjhwoNHvm2++UV5eniRp8ODBeuGFFyRJMTExWrlypRITE7Vjxw5t3rzZqOOkoUOH6oknnpAkzZgxQz/99JMk6f/+7/901113SZLeeecdbd++XceOHdOJEycUGBjocAxfX1999dVXCgwM1LXXXqudO3cavzfff/+9OnbsWOr1laVVq1by8PAwtgMDA9WnTx+HPh07dtSKFSv04osvaufOncrIyHAIuf/8809JRaF/8Ye9eXl5lThWac7lfggLC9Ps2bPl5eWlbt26adasWZKKlpYorrRQHkDtxUxgAAAAAACcyM3NTZ9//rnWrFmjxx57TF26dHEIUvfu3WusyxsbG2t8Lb958+ZGAHy63bt3G68vuOAChxCye/fupfY7qXfv3g4B8On9Pv30U1188cW6+OKLdckllygrK0uSdOLECSUkJJR5ncWPcdlllxkB8Jn69ejRw3jt4eGhLl26nLH24tdW/Bq6du1qvA4JCTFep6amljhGmzZtHILh4sfct29fqTWfq0cffVSPPPKI1q1bp/T09BKBaml1VsS53A89e/Y0fq8aNGjgtJoA1GyEwAAAAAAAVIEePXro9ddf14YNG5SQkKAhQ4YY7xV/eNy5Kv5gsdKEh4dX+tinL13hbGervXh4WzxIr1evXqn9yzN7tbRzFm8rLCw0Xh87duysxztdXl6epk6dKklyd3fXyy+/rKVLl2rlypVGYF2Vs2zPNqbF13l2dz/1BXFm/gKujeUgAABwcUFubmrp7a0z/3Og6uTa7dryz4wioLj2Pj7yLeMrxlXNLml/bq6Siz0ZHgCcZcWKFbrgggvk7+9vtIWHh2vkyJGaM2eOpFNBY8uWLWW1WmWz2bRv3z7t3LlTbdq0KXHM8847z3i9ceNGFRQUGAHe2rVrS+13UmmhYPF+48aN0/jx40v0ycrKKvEQu7KO8csvvygvL894+F1Z/Yo/zC0/P18bN248Y+3OsGvXLqWlpRnBcfHxat68uSTHsDkxMdF4vWDBglKPWTyQLv5gPUlKTk5WTk6OJKlTp04aM2aMJCkhIUHHjx8v9XgWi0V2u73EscpyLvcDgLqJEBgAABd3X3i46rub+yO/XkqKfiv25Gqgq5+fbir2FVQzZNpseuHgQTHvCYCzTZ061XjwWd++fRUZGakjR45owoQJRp9u3bpJKlri4KqrrtJPP/2kwsJCXXXVVXrmmWcUFRWl7du3a8OGDfrss8/UuXNntW3bVn/99ZcOHz6s4cOHa9SoUVq7dq2+++47SZKnp6duuOGGctV444036sknn1Rubq5efvllWSwW9erVS1lZWdq/f7+WLl2q7OxsLV68uMxjXH755QoLC1NSUpL279+vyy+/XA888IC8vb3122+/qUGDBnriiSd04403asyYMcrPz9ecOXM0btw49ezZU9OnT9fhw4clSe3atVOnTp0qO+RnlJmZqaFDh+qBBx7Q5s2bjTVwJen666+XVBTGn/T555+rRYsWysjI0KuvvlrqMYvPpt26davmzp2rkJAQRUdHq3HjxvL29lZOTo62bt2qqVOnKjw8XC+88EKZIe/J9aETEhL0xRdfqEmTJgoPD1erVq1K7e/s+6E0Jz88aNKkieLi4ip9HAA1AyEwAAAuLsjkAFiSgmtADahZasJ96We1ysNiUR5ffwVQBVJTU/Xhhx/qww8/LPFeRESEHnroIWN7ypQp6t27tw4ePKi4uDjdfffdxnt9+/aVVBTITZs2TZdddpnS09P11Vdf6auvvjL6WSwWTZ48WVFRUeWqr3HjxnrnnXd03333KTc3t9SZwCfPXRZfX19NmzZNgwcPVm5urpYvX67ly5cb748bN06SFBUVpcmTJ+uBBx6QzWbT888/73CcgIAATZs27azLGFRWkyZNtGrVqhKzeu+++27joXAdOnRQr169tHr1auXk5Oipp56SJCNoPV1AQIAuvPBCrV+/XqmpqRo8eLCkU7Oq77rrLr377rvKy8vTfffdJ6nogXInQ/PT9e/fX99++60KCwt12223SZJGjhypadOmlXpNzr4fALg+1gQGAAAAAMCJxo0bp1dffVWXX365WrRoIT8/P3l6eqpFixa6//779eeffyoiIsLoHx0drY0bN+o///mP2rRpI29vb/n7+6tz58668cYbjX7du3fX+vXrNXLkSDVq1Eju7u4KDg7WlVdeqUWLFun++++vUJ133323VqxYoSFDhig8PFzu7u4KDw9X9+7d9d///ldTpkw56zGuuuoqrV+/XrfffrsaN24sDw8PNWjQQP369dPFF19s9Bs9erQWL16sq666SvXr15e7u7siIyM1YsQIrV+/3pgZXRWaNm2q5cuXq1+/fvLx8VFERITGjh2r9957z6HfF198oSuuuELe3t4KDQ3Vww8/rK+//rrM43755Ze68sorHWYFn/T666/rkUceUcOGDeXv76/rrrtOS5YskY+PT6nHeuedd3TzzTcrNDS03Nfl7PsBgGuz2Cuw8vf27dvVoUMHaZukfpIqvj56jdG0aVOX+DpDrb6OEElHi1423d9Ucc3ipFBxX9UQ27ZtU/v27c0uA3BpJ3+uzps3T/Pmzauy87wUHW186vv67NnaffCg8Z7ValWgr6/aREfr5v795eftXeHjz1i4ULEJCTqSkiK73a7zGjfW40OHOvT5LT1d81JSzuUyzmjSpEny9fXVrl27NHHixCo7T11RHeN5WWCgYv5Zf9Gs+1KS/nvgQJXOBB44cKAGDhzIz1UAqGZxcXFq1qyZpKIZzcuWLTO3IAAwGTOBAQCog4L8/TXgggvUs21bpWdna/WOHZr5yy+VOtbuQ4cU7O+v+gEBTq4SdQ33JQAAAFA1zF+MDQAA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u0Pbng17JEmNWzcmbIMpuC8BoHL27t2rmTNnKjc316E9KSlJSUlJWrdunW677TY1a8byOwBQmxACAwBQR3W4qIM6XNThrP0uuu4iXXTdRZV+H6gI7ksAME9KSoq++OIL5eXlSSqauRsdHS1Jio+Pl91uV25urj7//HM9+OCDCgoKMrFaAEBFEAIDAAAAAKrd2LFjlZycbGxbLBb5+PgoMjJSffv2Vffu3Y33pk2bptWrV0uSPvjgA6fXUtXHry0WL15sBMCSdM011xgPcVuzZo1+/PFHSVJubq4WL16sm266yZQ6AQAVZzW7AAAAULVsuTazS5Atx/waULPUhHuiJtQA4BS73a6srCzFxsbq448/1p9//ml2SXVKTk6OduzYYWx7eXmpW7duxna3bt3k5eVlbG/fvr3EkhEo26uvvqopU6ac83EWLlyo++67r1x9k5KSNHDgQGVmZpb6fkZGhmJiYpSYmHjOddUlgwYN0ubNm51+3Ir83p5JYmKiYmJilJGR4YSq4EqYCQwAgItLnZ8qW6ZNFg8THsZil/IS8pSfkF/950aNVphSqGNfHJNXUy/JjFsz367039Kr/8QASvXBBx+osLBQCxcu1Pfffy9J+vPPP9W1a1eTK6s7Dh06pIKCAmM7PDxcbm5uxrabm5vCw8MVHx8vSSooKNChQ4fUvHnzaq+1pklMTNTtt98ub29vSZKHh4fatWunBx54QBEREabVFRYWpnnz5ply7mnTpun3339XfHy8rr/+eo0ePdqUOhYuXKiJEyfK09NTFotFwcHBuu6663TDDTdUey233XabUlJSZLVaZbVa1ahRI917773q3LlztddyJsnJyZo8ebJ2796t48eP67333lPLli3NLgtOQAh8DiZNmnTOf1g3bdqk//u//3NOQQAAlMKWaVPq/FSzywBKyNqSpawtWWaXAaCGcHNz0wUXXGCEwPn5Z/4Ace/evZo/f74OHTpkzHgLCQlRjx49dPnllzsEmElJSZo/f77++usvpaeny9fXV82bN9fIkSPl5+dX6vF/+eUXff3115Kkfv36adiwYdq1a5cmTpwoSRo5cqQuush11h4/duyYw3ZAQECJPv7+/iX2IQQ+5csvv5S/v79ycnL01ltvadKkSXrllVfMLqvKxMTEaPHixaW+FxkZqXvuuUfz588/5/PMmDFDkjRixIhK7d+0aVNjmZft27drzJgxat68ubp06XLOtZUlMzNTvr6+slgcP+keO3asevfuLZvNpp9++knjxo3T119/LU9PzyqrpaKsVqu6deum4cOH68EHHzS7HDgRIfA56Ny5s/r162d2GQAAAABQ6xUWFmrTpk3GdseOHc/Y/+DBg9q2bZtD2+HDhzV37lxlZWUZM/0OHTqkV199VTk5OUa/9PR0bd68WdnZ2aWGwGvWrNE333wjSerTp49uueWWyl5WrVF8fKSi2aynO70tOzu7Smuqrby9vdW3b1/jA4PSvPzyy9q4caNycnJKnRG6fv16TZs2TQcOHJCXl5cGDRqkYcOGlTjOvHnz9NVXX+nFF180HuJ30skZyt999538/f2Vl5en9957T8uXL5efn1+px3OWyy+/XJK0bNmyKjtHZbRv315NmjTRnj17jBB4z549+uCDD7Rv3z4FBARo6NChuvrqqyVJNptNM2bM0E8//SSr1apbb721XOd555135O/vr3//+9+lvm+1WhUTE6O33npLSUlJaty4cYk+33zzjebNm6eUlBQFBQVpyJAhGjRokPH+wYMH9cEHH+ivv/6SzWZTx44dNX78+BLH2bFjh55//nn9+9//1sUXX3zW2k/OlobrIQR2hrxUKWVTxfYJ7ix5Bjm/FgAAAACoZU5fB7N9+/a65JJLzrhPy5Yt9fjjj6thw4by8fFRZmamZsyYoa1bt2rlypUaPHiwrFarZs+ebQSc1157rfr376/CwkJt2LCh1Nl3W7du1fTp02W329WzZ0/ddtttJWbz1QV2u93sEqrdW2+9pV9//bXM9//3v/+pQ4cOZz1OVlaWli5dqvbt25fZp3PnznrwwQfl5eWlOXPm6Pnnn9fnn38uX19fxcbGaty4cRozZox69eql3Nxc/f333yWOMX36dP3222+aNGmSQkJCzlrXzJkztWPHDk2dOlXe3t6aMGHCWfdxJXa7XVu3blVcXJyGDx8uSTp+/LjGjBmjhx9+WH369FF8fLyefPJJRURE6IILLtCiRYu0aNEivfHGGwoLC9Pbb79drg8/7r33Xj322GP6+OOPddddd5V4/+TyNyEhIQoPDy/1GOHh4XrttdcUGhqqzZs36+mnn1bLli3VoUMHZWdna8yYMbr00ks1duxYubu7a/v27SWOsXbtWk2cOFFjx45Vp06dKjhi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xEbFkpmaiZOrE6PuGYXRWLPPiAfdMAhugIPbDnL84PE6ilxsmaePB/8YO4LvP/yF/dsPsWXNTo7ujyE9JRNnVyduuv+aGl+XV90cCUSyd+tBog/ouhQRERGRxk0rgUVERBqZ1t1b02VQFwCWzVrGvo37ALjyjivx9PO0ZmjSiHXo0Zpeg7sC8Pu3S9ixfi8A1951Fd66LkVERERELopWAouIiDRCg28ezPEDx0lJSAGgY7+OtOvVzrx9/e/rycvOAyD+SDwAK2avMG+P6BhB807NL2HE0hiMGHMFR6NiSYovvS67X96Jzr3bm7ev+G0tuVml12XskTgAFsxaZt7eunNzWnducQkjFhERERFpGJQEFhERaYQcnBzoeVVPFn9TWhf47AfB7V67m4zkDIu2rcu2ml87uTgpCSy1ztHJgQHDezNv+kIABo/uZ7F965pdpJ11Xa5fusX82tnVSUlgEREREZFKKAksIiLSSBmMhkpfA9z/xv3m1+t+W8f639fz1GdPXbLYpPGyvC4tK5c99b+HzK+Xz/uLFb+t49Wv/n3JYhMRERERaaiUBBYREZGLcnDbQQ5vP0xGypkVmqt+WoWjkyOdBnQitHWoFaOTxmrv1oPs33bQYuXwwtkrcHJ25LKBXWjWRteliIiIiDQeSgKLiIjIRTkVe4o96/dYtB3cehCA0LahSgKLVSTEnGTb2t0WbXu3HAAgom2YksAiIiIi0qgoCSwiItJIderfiU79O523X/9r+9P/2v4XvF2kJnoM6EyPAZ3P2++K6wZwxXUDLni7iIiIiEhjYjx/FxERERERERERERFpqJQEFhERsXUmawcAlFg7AJGKDPXhZ0NERERE5BJQElhERMTG5e7NtWoiuCi5iMKThdYLQOolrwzwTbFuDC2ilQUWERERkcZBNYFFRERsXPa2bLJ3ZWOwN1z6g5vAlK9Em1TkUAS3/mSiwAGwwqVpVwz2xZf+uCIiIiIi1qAksIiISGNQBKYiJWOlfjEATlokLiIiIiJS51QOQkRERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJiSwCIiIiIiIiIiIiI2TElgERERERERERERERumJLCIiIiIiIiIiIiIDVMSWERERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJiSwCIiIiIiIiIiIiI2zL4mnfPz8+sqjkuuoKDA2iHUCp1H/WIr5wG29fMuUl+V/ZxlZ2czevRoK0fTsB06dAg7Oztyc3M1l7WgbD7Jz4cuPa0dToN2KDUN0N9VEREREbGuGiWBY2Nj6yqOSy4uLs7aIdQKnUf9YivnAaU/7z169LB2GCI2rezv6q233mrlSESkrunvqoiIiIhYk8FkMpmq2zktLY1Vq1YRFhaGk5NTXcYlIlaSn59PbGwskZGReHt7WzscEZvWUP6uHjp0iOuuu4558+bRqlUra4fToGkua09DmUv9XRURERGR+qBGSWARERFpfPbs2UOnTp3YvXs3HTt2tHY4DZrmsvZoLkVEREREqk8PhhMRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJiSwCIiInJOAQEBTJw4kYCAAGuH0uBpLmuP5lJEREREpPr0YDgRERERERERERERG6aVwCIiIiIiIiIiIiI2TElgERERERERERERERumJLCIiIiIiIiIiIiIDVMSWERERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIyDm9+OKLdO/eHUdHRwYMGGDtcBosk8nExIkTCQkJwc3NjUGDBrF7925rh2UTli1bxtChQ/Hz88NgMHDo0CFrhyQiIiIiUq8oCSwiIiLn1LJlS1555RUeeOABa4fSoL399tt89dVXLFq0iKSkJC6//HKGDx9OVlaWtUNrMAwGA9HR0RXa3dzcuOuuu/jmm28ufVAiIiIiIg2AksAiIiJyTuPGjWP06NH4+/tbO5QGbdq0aTz99NN07twZFxcXXn31VQoKCvjll1+sHVqD17dvX+6++246duxo7VBEREREROolJYFFRERE6lh6ejrR0dH07t3b3GZvb0/37t3Ztm2bFSMTEREREZHGQElgERERkTqWkZEBgLe3t0W7j4+PeZuIiIiIiEhdURJYREREzGbOnIm7u7v5KyYmxtoh2QRPT08A0tLSLNpTU1PN26Si8ePH4+3tbf4C6NKli/n9NddcY90ARUREREQaCCWBRURExOyOO+4gKyvL/BUeHm7tkGyCl5cXERER/P333+a2oqIitm/fTvfu3a0YWf02bdo00tLSzF8AO3fuNL///fffrRugiIiIiEgDoSSwiIiInFNhYSF5eXkUFRVhMpnIy8sjLy/P2mE1OOPHj+ftt99m9+7d5ObmMnHiRBwcHLj++uutHVqDV1JSQl5eHvn5+QAUFBSQl5dHcXGxlSMTEREREakf7K0dgIiIiNRv999/PzNmzDC/d3FxAcBkMlkrpAbp6aefJjMzkyuvvJKMjAx69uzJwoULcXd3t3ZoDd7q1asZMmSI+X3Hjh0B+Prrrxk7dqyVohIRERERqT8MJv0LTkRERERERERERMRmqRyEiIiIiIiIiIiIiA1TElhERERERERERETEhikJLCIiIiIiIiIiImLDlAQWERERERERERERsWFKAouIiIiIiIiIiIjYMCWBRURERERERERERGyYksAiIiIiIiIiIiIiNkxJYBEREREREREREREbpiSwiIiIiIiIiIiIiA1TElhERERERERERETEhikJLCIiIiIiIiIiImLDlAQWERERERERERERsWFKAouIiIiIiIiIiIjYMCWBRURERERERERERGyYksAiIiIiIiIiIiIiNkxJYBEREREREREREREbpiSwiIiIiIiIiIiIiA1TElhERERERERERETEhikJLCIiIiIiIiIiImLDlAQWERERERERERERsWFKAouIiIiIiIiIiIjYMCWBRURERERERERERGyYksAiIiIiIiIiIiIiNkxJYBEREREREREREREbpiSwiIiIiIiIiIiIiA1TElhERERERERERETEhikJLCIiIiIiIiIiImLDlAQWERERERERERERsWFKAouIiIiIiIiIiIjYMCWBRURERERERERERGyYksAiIiIiIiIiIiIiNkxJYBEREREREREREREbpiSwiIiIiIiIiIiIiA1TElhERERERERERETEhikJLCIiIiIiIiIiImLDlAQWERERERERERERsWFKAouIiIiIiIiIiIjYMCWBRURERERERERERGyYksAiIiIiIiIiIiIiNkxJYBEREREREREREREbpiSw1DvZ0X+z5UEDWx40kHVorVVjyU8+xpaH7dnyoIHULXOsGouIiFQ0ePBgDAYDBoOB6Ohoa4dTKyZNmmQ+p+nTp9fpsepy/qKjo81jDx48uFbHFhERERGRmrG3dgD1UWHGSRKXTSV99wLy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5pITsbGxPPnkk5hMJoxGIy+++CJ//PEHN998MwCZmZmMHTu2QpIaSpPSb731FrNnzzYn1xcuXMjevXv54osv+Pjjj819P/3000rjPH78OJdffjnz58/n1Vdfxc7Oztx/586d5zzHyrzwwgvMmTPH/L5bt26sWbOGNWvW8MEHHwDQtm1b3nnnHebNm8fy5ctZtmwZH3/8MU5OTpSUlPDGG28AcM8995jr/QI0adLEPNZPP/1UZQwXcz0cO3aM0aNHM3/+fG699VZze1XzJyK2QSuBRURERERERGrRvffey+rVq5k5c6a5raCggLVr17J27Vo+/vhj/v77b3x8fEhJSWHBggUA2NnZsXDhQtq3bw/A8OHDzftv376dvXv3AqWJwlmzZuHg4MCoUaPYu3cvP//8MwUFBfz8888VHizm7u7OwoUL8fX1NbdNnTqV/Px8oDSB2K1bNwDGjRvH7NmzycnJ4fvvv+ejjz7CaKx8/djixYtJTEwEoHnz5ixZsgQnJycARo8ebe73008/UVBQAMD111/Pq6++CsCwYcNYs2YNCQkJ7N27lx07dpjjKDNmzBieeeYZAL755hv++OMPAJ588knuvfdeAD788EP27NlDUlIS6enpeHl5WYzh6urKjz/+iJeXF9dccw379+83f29+/fVXunTpUun5VaV169Y4ODiY33t5eTFgwACLPl26dGH16tX85z//Yf/+/WRlZVkkuTdv3gyUJv3LP+zNycmpwliVuZjrITAwkNmzZ+Pk5ESvXr344YcfgNLSEuVVlpQXkYZLK4FFREREREREapGdnR3fffcdGzZs4KmnnqJ79+4WidTDhw+b6/IeOnTIfFt+ixYtzAngsx04cMD8ukePHhZJyN69e1far8zll19ukQA+u9/XX3/NwIEDGThwIIMGDSInJweA9PR04uLiqjzP8mNceeWV5gTwufr16dPH/NrBwYHu3bufM/by51b+HHr27Gl+7e/vb36dlpZWYYx27dpZJIbLj3nkyJFKY75Y//rXv5gwYQJ///03mZmZFRKqlcVZExdzPfTt29f8vfLz86u1mESkflMSWERERERERKQO9OnTh7fffputW7cSFxfHDTfcYN5W/uFxF6v8g8UqExQUdMFjn126oradL/byydvyiXRPT89K+1dn9WplxyzfVlxcbH6dlJR03vHOVlBQwGef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a5pc2rRpE7NmzbJoK1/zeMSIEYwYMaJGY1bllVdeISUlBThTHmbZsmXm7VOnTq32WGU1gYuKiliwYAH79u2jpKQEOzs7kpOT2b17t8V5lJSUmJOI6enpFvPk6elpkbR9+eWXLX7/lMnNzeWDDz6gTZs25gQwwL333ku3bt0wmUzExsbywQcf4O7uTqdOnSqMsXHjRpYsWUJycjImk4mCggJz0jAlJYWAgIAKNYfLW7RoEf379z9vArj8CviSkhIKCwst5qNsBbyTkxO5ubkVztPZ2fmc45e54YYbOHbsGCNHjjSXCzlb2cMVKzNo0CBzTeDU1FS++uor5s2bV+lK6+joaH755RdOnDhBYWEhxcXF5kR+cnIy9vb257z+165dS1BQEJdddtk5z6lt27YsWrSI2NhY/Pz86NatG/PmzSMzM5O4uLhzrr4u/zfOycmJ/Px885ijR4/mt99+Iz4+nvbt23PTTTfVykMmlQQWERERERERqyh7MFxubi7ff/89GzduJCMjg/Xr11eZTDp69CiffPIJJSUllW4vSxiVJdSAat16XPYwOy8vrwq1VW1JZcmX2NhYcxmIvn37WtRVbkxmzpzJxo0bq9z+2GOPWawwrIqdnR29evXi+++/59ChQxXqsG7atIlNmzbxxBNPEBgYiMFg4MknnzRv9/X15dSpU1WO7+fnx/XXX88XX3zBgw8+WGEFaFW8vLxITk42fwhSlmStrt69e1usinzwwQdrlIytiZdfftn8+mIfDFfG3t6e0aNHs3PnTlauXMnQoUPx9fWlW7du3H///ZXu4+XlZTFPGRkZFBUVmd9XlYSfM2cOzZs3r/ThmQAGg4Hw8HBatWrFrl27KiSBU1JSmD59Oo8//jht2rTBzs6OadOmmRPOZdeIyWSqMhH82GOP8cknn+Dq6srw4cOrnJfyK+DP9WC4pk2b8scff1BcXGwuCXH8+PEKq2irEhYWxuOPP877779Ply5dLqokhI+PDz169GD16tWVJoG/+OIL+vfvz/jx43FycmLp0qXmFdx+fn4UFRWRkpJSZSL4lltuYd26dXz22Wc88MADFiUwymvbti1ffPEF27Zto127dri5ueHl5cWKFSsIDQ2tsHK6ugYPHszgwYPJzc1l5syZ/PDDDzz66KPAxX0gabzgPUVERERERERqgYuLC7169TK/T0pKqrLv9u3bzQngRx55hGnTpvHee+9V6Ofu7m5+XVn5h7O1bNkSg8HAyZMn+fjjjy0SPdI43HHHHbz//vtVflUnAQylqym3bNlCbm5upTWl8/LysLe3x93dnaKiIn7//XeLW+oHDhzIpk2b2LZtG8XFxeTm5nLkyBGLMTp16sS9997Lp59+yr59+6oVV69evVi4cCFpaWnk5OTwxx9/VGu/C1FcXExhYSElJSXm1aXFxcV1drzqMhgMjBw5kj///JOCggL69OlDVFQUW7dupbi4mOLiYmJjY4mOjgZKE98rV64kISGBgoIC5s2bd87Vt2Vuvvlm7r777nP2PXHiBAcPHqy0pEHZHQ4eHh4YDAZ27drF3r17zds7d+5MUVERv/32G/n5+RQVFREVFWUxhr+/P0899RSrV6/mzz//rOYMVa1Nmza4ubmxYMECCgsL2bVrFwcOHKBv377VHiMiIoKJEydeVAIYSpPxW7durbIcRF5eHi4uLjg5OREfH8/q1avN2zw9PenatSszZ84kPT2dkpISYmJiLD44dHBwYPz48RQVFfHJJ59U+ffA3d2d4OBgVqxYYf4wpl27dixbtuyc9YDPJTo6msOHD1NUVISDgwNOTk5VJqFrSiuBRURERERExKrKavmWOfv2+fLK/2Pc2dmZwsJC5s2bV6Ff586dzTUWf/75Zzw9PQkJCSE+Pp74+PgKiYv27dtz2WWX8eOPP3LgwAGmT5/Ovffea07ivPPOOxw4cAA/Pz9ef/31izndBu/o0aMWK2bPXlH6+++/m5MWzZs3p0+fPpc0Pmv5v//7P6A00ejv7899991XaRK4X79+7Nu3j+eeew4XFxeuuOIKiwe7hYeH89BDD/Hrr78yffp0nJycuOKKKyo8BKtjx47cf//9fP7559x333106NDhnPFdffXVZGZmMnnyZFxcXBg1ahS7du0yb9+4cSN//vknkyZNuohZKPXtt99a1M5duXIl/fr1Y+zYsRc99sXq3r07v/32GytWrGD48OE8/vjjzJ07l++++w6TyURwcLB51XH//v1JSkri7bffxmAwMGrUqGqVPyj/IVR5X3zxBUaj0dwnMjKSgQMHVugXEhLCqFGjePfddzGZTHTp0sVcxxhKf/dNmDCBOXPm8NxzzwGlq1LPXhXu5+fHU089xbvvvktJSQlXX3119SapEnZ2dowfP57vvvuORYsW4ePjwz333ENgYGCNxjlXqZ9zWbVqFWvXrgVKyyd06NChygdW3nHHHcyZM4dffvmF8PBwevbsyY4dO8zbx40bx9y5c3n99dfJy8ujSZMmPPTQQxZjODg48NBDD/Hpp5/y8ccf89BDD+Hg4FDhWG3btmX16tXmEi7t2rVjyZIl1V6hf7bc3Fx++uknTp06hZ2dHS1atLBYUV62knrw4ME1Httgqqx4SRX27NlTaZ2S+iQiIsL8iU19U59jA8V3MSIiIsxPM27oyn7Od+/eTceOHa0djohNK/t5mz9/vvk2N7kwU6ZMwdXVlaioKN59911rh9PgaT5rz+jRoxk9erT+rorNiYqKYvPmzZXe6vz999/To0ePKv8BvG7dOmbMmFHl2E5OTrz00ksEBASQlJTECy+8AJwpHbF//36mTJlisU9AQID59vnyiabp06dbJKLKlPWpbPzvv/+elStXAjBs2DBuuukmoOEkgb/66is2btyIl5cX48aNq9Y+5ctB3HjjjectB7Fnzx6WLFlSrbHbt29f6a3oM2bMIDU1lZ49e1Z5K76IiNQelYMQERERERERqzIYDHh4eNCtWzeeeeYZAgICquzbrl07br/9dvz8/HBwcKBt27Y88cQTlfa9++67ueOOO4iIiMDR0REHBwdCQkLO+bCeMWPGmBc/LVmyhOXLl1/cyYmIiNQDKgchIiIiIiIil0z//v3p379/tfr6+/vz6aefVmiPjIwkMjLSoq2yfgaDgUGDBjFo0KBqj280Gnnssccq9L2Yh/HUd2FhYUyYMKHa/Tt27Ki7G0REGhitBBYRERERERERERGxYVoJLCIiIiIiIjXi6OhIVFQUL7/8cqXba/K0eBEREal7F5QEDgkJwdHRsbZjqRVNmjSxdghVatKkCcu7t7N2GFW6PT7N2iGcU33/3trKg+GOHz9u7RBEREREpJ5r3rw5r7zyirXDkEoYDAYASkpKrBzJuZU9o74sXhERqVsXlASOi4ur7ThqVXR0tLVDqFJzl/r7hzghIbFezx3U8+9t8+bWDqFW5OTkWDsEERERERG5QC4uLkDp/9cXFRVhb1//bgAuKioiOzsbOBOviIjULdUEFhEREREREbERbdq0AaC4uJi9e/daOZrK7d+/n8LCQgDatm1r5WhERBqH+veRoIiISCMTHh7OlClTrB1Gg1a2iqhVq1aay1qg+aw9hw4dsnYIItLIdOrUCWdnZ/Ly8lixYgUxMTGEhobWixXBRUVFnDhxwvy70cnJic6dO1s5KhGRxsH6fwVEREQaOTs7O1xdXa0dhk3QXNYuzefFs7Ozs3YIItLIODo6Mn78eD744AMKCws5dOhQvfxAysHBgYceeggnJydrhyIi0igoCSwiImJlubm5REVFWTuMBq1169YYjUZycnKIjY21djgNnuaz9uTm5lo7BBFphNq2bctTTz3FypUr2b59O3l5edYOyczZ2ZkuXbowZMgQWrRoYe1wREQaDSWBRURErCwhIYHPP//c2mE0aFOmTMHV1ZXY2Fjeffdda4fT4Gk+a8/o0aOtHYKINFLNmzenefPmFBcXk52dTXFxsbVDws7ODjc3N90lISJiBUoCi4iIiIiIiNgoOzs7PD09rR2GiIhYmdHaAYiIiIiIiIiIiIhI3VESWERERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJiSwCIiIiIiIiIiIiI2TElgERERERERERERERumJLCIiIiIiIiIiIiIDVMSWERERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJiSwCIiIiIiIiIiIiI2TElgERERERERERERERumJLCIiIiIiIiIiIiIDVMSWERERERERERERMSGKQksIiIiIiIiIiIiYsOUBBYRERERERERERGxYUoCi4iIiIiIiIiIiNgwJYFFREREREREREREbJi9tQMQERERERERkbpRGB9P7r59mAoKrHJ8o7MzLp07Y+/nZ5Xji4hIKSWBRURERERERGxM3oEDHLv3Xkpyc3Hu2BGjk9Mlj8FkMmHKyyN3504cgoOJmD4dhyZNLnkcIiKiJLCIiIiIiIiITSk8eZLD//gHIa+9hmv37tYOB4DMFSs4OHw4bdetw87NzdrhiIg0OkoCi4iISAUeHh60atWK4OBg3NzcsLe3Jy8vj9TUVGJiYjh69Cgmk8naYTYImsvao7kUEame5Jkz8b7xxnqTAAbwGDKE7I0bSf/jD3xvucXa4YiINDpKAouIiIiFzp0706lTJ4xGy+fHurq64urqStOm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xxQXF6dVq1bpT3/6kw4fPqzXXntNklRRUaEnnnhCP/rRj7R27VplZ2e7i9UzmT17tuLj4/XYY4+5C+WMjAwVFBToqaee0tNPP60FCxYoOTlZK1eu1J49e7Rs2TKtWbNGaWlpWrp06VnP4XA49Otf/1pjxozRG2+8ocWLF2vNmjX68MMPJUm5ubkqLCyUJO3cuVMpKSnatWuXJGnXrl0aNWqUYmJizmncTufw4cMaM2aMe9lisSg9PV2HD3MnOtAfFqMDAAAAAAACk3VYtkZd+rBKPv+tJCk8dowyLntEkuToaldj2VZJUnvDQX3xfyf02r+h7COl5f3onM9XX7LR/Xr05Y8pNGK4QiOGKzVngQ5/uliOzhY1Hflc8ZnXKW7kDB1tKlVT5edyuVxqOvKlokdcKltTiRorP5PT0amWqu2SpLi0Ge7jjpm+WGOmL+73WBjNEhLtsezo7j2frdPhuc4SGt1rm6Hsxz/+sX784x+f9/4FBQVyOp2y2WyaMmWK5s2bJ0k6cOCAKisr9fzzz8tsNissLEx33HGHnn/+ed19993asmWLcnNzNW3aNElSfn6+3n77bfdxn3zySW3evPmM537nnXf0gx/8QJL0z//8z/r4448VExOjG2+8US6XS++++66WL1+u+Ph4SdI999yj/Px81dTUKCmp99QfJ3zzzTeqq6vT3XffreDgYI0ePVq33HKLNm7cqGuuuUY5OTl68803JUmFhYUqKCjQyy+/LKmnFM7NzT2/wTxFR0eHIiMjPdZFRka674AGcG4ogQEAAAAAhonLmOUugWPTpsts6bkzuMvWIJfrzG+J7+qo79e5OttPvv09NHrkyddRaadsU3s8y5U6WrRa7Q0H1Vjxd3XbGxWberk6IpN1rPivaijbKqejZzqK2JEnS+ChKjw202O5q7261zadbTXf2mf0gGYaal599VVFREToyy+/1PLly9XS0qKIiAhVVVWpra1Nc+bMcW/rcrnkdPY8BLGurk7Dhw/3ONapyz/5yU90//339zqfy+XSCy+8oOrqat14443u9WazWenp6e7itKmpSTabTT/72c9kMpnc21ksFtXW1p6xBD527Jji4+MVHHzyTvcRI0a4S+mcnBw98cQTamlp0d69e/WLX/xCb731lkpLS1VYWKh77733tMdesGCBamp6rqkTdzKfOtXEunXrJEnh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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Simplified weight patterns\n", "W_identity = np.array([[0,0,0],[0,1,0],[0,0,0]]) # W[c,c,:,:]\n", "W_corners_pos = np.array([[1,0,1],[0,0,0],[1,0,1]]) # W[4,2,:,:]: +1 at corners\n", "W_corners_neg = np.array([[-1,0,-1],[0,0,0],[-1,0,-1]]) # W[0,2,:,:]: -1 at corners\n", "\n", "grid = [[0]*5 for _ in range(5)]\n", "grid[2][2] = 2 # Red at center\n", "\n", "W_pos_colors = {1: ('#22AA22', 'white'), -1: ('#CC3333', 'white'), 0: ('none', 'none')}\n", "\n", "def compute_scores_at(out_y, out_x):\n", " \"\"\"Simulate Conv at (out_y, out_x). Returns (scores_dict, input_tile).\"\"\"\n", " score_black, score_red, score_yellow = 0.0, 0.0, 0.0\n", " tile = [[None]*3 for _ in range(3)]\n", " for dy in range(3):\n", " for dx in range(3):\n", " iy, ix = out_y - 1 + dy, out_x - 1 + dx # with pads=[1,1,1,1]\n", " ch = grid[iy][ix] if (0 <= iy < 5 and 0 <= ix < 5) else 0\n", " tile[dy][dx] = ch\n", "\n", " if ch == 2:\n", " score_red += W_identity[dy, dx]\n", " score_yellow += W_corners_pos[dy, dx]\n", " score_black += W_corners_neg[dy, dx]\n", " elif ch == 0:\n", " score_black += W_identity[dy, dx]\n", " return {'Black': score_black, 'Red': score_red, 'Yellow': score_yellow}, tile\n", "\n", "\n", "def draw_weight_cell(ax, dy, dx, ch, W_yellow_val, W_black_val):\n", " \"\"\"Draw one cell of the 3x3 zoom: background = input color, text = weights.\"\"\"\n", " # Background: input pixel color\n", " hex_c = arc_colors[ch].lstrip('#')\n", " bg = np.array([int(hex_c[i:i+2], 16) for i in (0, 2, 4)])\n", " # Lighten it a bit\n", " bg = (bg * 0.6 + np.array([255, 255, 255]) * 0.4).astype(np.uint8)\n", " ax.fill_between([dx-0.5, dx+0.5], dy-0.5, dy+0.5, color=bg/255, ec='white', lw=1.5)\n", "\n", " # Top line: +1 weights (W[4,2] create Yellow)\n", " if W_yellow_val == 1:\n", " ax.text(dx, dy-0.2, 'Y+1', ha='center', va='center', fontsize=8,\n", " fontweight='bold', color='#115511',\n", " bbox=dict(boxstyle='round,pad=0.1', facecolor='#88FF88', alpha=0.9, ec='none'))\n", "\n", " # Bottom line: -1 weights (W[0,2] suppress Black)\n", " if W_black_val == -1:\n", " ax.text(dx, dy+0.2, 'B\\u22121', ha='center', va='center', fontsize=8,\n", " fontweight='bold', color='#551111',\n", " bbox=dict(boxstyle='round,pad=0.1', facecolor='#FF8888', alpha=0.9, ec='none'))\n", "\n", " # Show input channel number in center\n", " ch_color = 'white' if ch in (0, 9) else 'black'\n", " ax.text(dx, dy, str(ch), ha='center', va='center', fontsize=16,\n", " fontweight='bold', color=ch_color, alpha=0.6)\n", "\n", "\n", "cases = [\n", " (2, 2, 'Kernel centered ON Red'),\n", " (1, 1, 'Kernel centered at corner (1,1)'),\n", " (4, 4, 'Kernel centered at (4,4), far from Red'),\n", "]\n", "\n", "fig, axes = plt.subplots(3, 3, figsize=(14, 10))\n", "fig.subplots_adjust(hspace=0.35, wspace=0.3)\n", "\n", "for case_idx, (oy, ox, case_title) in enumerate(cases):\n", " scores, tile = compute_scores_at(oy, ox)\n", "\n", " # --- Column 1: full input grid with marker ---\n", " ax = axes[case_idx, 0]\n", " plot_arc_grid(grid, ax)\n", " rect = patches.Rectangle((ox-1.5, oy-1.5), 3, 3, linewidth=2.5,\n", " edgecolor='lime', facecolor='none')\n", " ax.add_patch(rect)\n", " ax.plot(ox, oy, marker='s', color='orange', markersize=9,\n", " markeredgecolor='white', markeredgewidth=1.5)\n", " ax.set_title(f'Output at ({oy},{ox})', fontsize=10, fontweight='bold', color='#CC6600')\n", "\n", " # --- Column 2: zoomed 3x3 window with weights ---\n", " ax = axes[case_idx, 1]\n", " ax.set_xlim(-0.5, 2.5); ax.set_ylim(-0.5, 2.5)\n", " ax.set_aspect('equal')\n", " ax.set_xticks(range(3)); ax.set_yticks(range(3))\n", " ax.set_xticklabels(['-1','0','+1']); ax.set_yticklabels(['-1','0','+1'])\n", " ax.tick_params(labelsize=8)\n", "\n", " for dy in range(3):\n", " for dx in range(3):\n", " # Note: matrix (dy,dx) vs plot (x=dx, y=dy) — matplotlib uses (x,y)\n", " ch = tile[2-dy][dx] if tile[2-dy][dx] is not None else 0 # flip y for visual\n", " # Actually, tile[dy][dx] is already row dy, so in plot coords it's y=dy, x=dx\n", " # Just need to invert y for display since images have y=0 at top\n", " draw_weight_cell(ax, 2-dx, dy, tile[dy][dx],\n", " W_corners_pos[dy, dx], W_corners_neg[dy, dx])\n", "\n", " ax.set_title('3\\u00d73 kernel window', fontsize=10, fontweight='bold')\n", "\n", " # --- Column 3: score breakdown ---\n", " ax = axes[case_idx, 2]\n", " ax.axis('off')\n", "\n", " # Compute per-channel contributions\n", " contrib_black = {'identity': 0.0, 'suppress_from_red': 0.0}\n", " contrib_red = {'identity': 0.0}\n", " contrib_yellow = {'create_from_red': 0.0}\n", " for dy in range(3):\n", " for dx in range(3):\n", " ch = tile[dy][dx]\n", " if ch == 2:\n", " contrib_red['identity'] += W_identity[dy, dx]\n", " contrib_yellow['create_from_red'] += W_corners_pos[dy, dx]\n", " contrib_black['suppress_from_red'] += W_corners_neg[dy, dx]\n", " elif ch == 0:\n", " contrib_black['identity'] += W_identity[dy, dx]\n", "\n", " ax.text(0.5, 0.92, 'Score computation:', ha='center', fontsize=10, fontweight='bold')\n", "\n", " lines = [\n", " ('Black', scores['Black'],\n", " f\"Black id. {contrib_black['identity']:+.0f} + Red\\u2192Black {contrib_black['suppress_from_red']:+.0f}\",\n", " '#666666'),\n", " ('Red', scores['Red'],\n", " f\"Red id. {contrib_red['identity']:+.0f}\",\n", " '#CC0000'),\n", " ('Yellow', scores['Yellow'],\n", " f\"Red\\u2192Yellow {contrib_yellow['create_from_red']:+.0f}\",\n", " '#BB8800'),\n", " ]\n", "\n", " winner_name = max(scores, key=scores.get)\n", " for i, (name, total, formula, c) in enumerate(lines):\n", " y_pos = 0.72 - i * 0.22\n", " is_winner = (name == winner_name)\n", " marker = '\\u2b50' if is_winner else ' '\n", " total_str = f'{total:+.0f}' if total != 0 else ' 0 '\n", " winner_label = f' \\u2190 {name} wins!' if is_winner else ''\n", "\n", " # Total score (bold)\n", " ax.text(0.05, y_pos, f'{marker} {name}:', fontsize=9, color=c, fontweight='bold', va='center')\n", " ax.text(0.35, y_pos, total_str, fontsize=13, color=c, fontweight='bold', va='center',\n", " bbox=dict(boxstyle='round,pad=0.2', facecolor=c+'22' if not is_winner else c+'44',\n", " ec=c, lw=1.5 if is_winner else 0.5))\n", " ax.text(0.55, y_pos, f'= {formula}{winner_label}', fontsize=7.5,\n", " color='#444444' if not is_winner else c, va='center')\n", "\n", "fig.suptitle('Three output positions, one kernel, three different results',\n", " fontsize=13, fontweight='bold', y=1.01)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "7a123ae8", "metadata": { "papermill": { "duration": 0.005954, "end_time": "2026-05-31T09:46:18.425178+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.419224+00:00", "status": "completed" }, "tags": [] }, "source": [ "## 2.3 Blue Triggers Orange — Same Strategy, Different Pattern\n", "\n", "The second rule is:\n", "\n", "> **Every Blue (1) pixel must have Orange (7) pixels at its Top, Bottom, Left, and Right (a cross shape).**\n", "\n", "Same logic as Red → Yellow, but with a different 3×3 stencil: the **cross** instead of the corners.\n", "\n", "| Kernel | Expression | Effect |\n", "|--------|-----------|--------|\n", "| `W[7, 1, :, :]` = cross pattern × **+1** | Each cross arm adds 1.0 to Orange's score | **Creates** Orange in the cardinal directions |\n", "| `W[0, 1, :, :]` = cross pattern × **−1** | Each cross arm subtracts 1.0 from Black's score | **Suppresses** Black at those same spots |\n", "\n", "The cross pattern is:\n", "$$\n", "\\begin{bmatrix}\n", "0 & 1 & 0 \\\\\n", "1 & 0 & 1 \\\\\n", "0 & 1 & 0\n", "\\end{bmatrix}\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "09544002", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:18.439048Z", "iopub.status.busy": "2026-05-31T09:46:18.438783Z", "iopub.status.idle": "2026-05-31T09:46:18.670627Z", "shell.execute_reply": "2026-05-31T09:46:18.669445Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.241396, "end_time": "2026-05-31T09:46:18.672643+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.431247+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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7oAe7RujoZcztEUCEu5kYueJa1i6+TQSU7Iq31Edwvpcs2SCIAiVb2YbsbGxaNeuHc7N7Ii2/nVn/lh7tHLd0co3IouYMKbujEu0R7HJuYhYcAbnz59H27ZtK38DkYWVtl1PfvEbfJq0sHVx6rRvl2+1dRHqjfEvDLV1Eeq8tIR/sOHl4TZvv6p1QzIREREREdU9DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMDIiIiIiLSYXBAREREREQAGBwQEREREZEOgwMiIiIiIgLA4ICIiIiIiHQYHBAREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEiHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0lHYugDm+GXLORxxktm6GHXahDFdbV2EemPluqO2LkKdditPsHURiAAAm348AAfXy7YuRp02/oWhti5CvfHt8q22LkKdV5ydbOsiAOCVAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMDIiIiIiLSYXBAREREREQAGBwQEREREZEOgwMiIiIiIgIAKGxdgNrGOywcgZG94NemE/zadoJncBhkDmUx1t5Zz+Pylu8skleD9l3QZuREBET2grNvAIoKC5CdFI/EIzvx1w+LkJty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IiIiIiIADA6IiIiIiEiHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKSjsHUBzDFyWATa+jvbuhh12sp1R21dhHpjwpiuti5CnRabnIu5l87YuhhEeOyJXvBp0sLWxajTvl2+1dZFqDfGvzDU1kWo89IS/sGGIwttXQxeOSAiIiIiohIMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgAMDoiIiIiISIfBARERERERAWBwQEREREREOgwOiIiIiIgIAIMDIiIiIiLSYXBAREREREQAAIWtC1Bb7biUjjXHb+NofBbuZBfC2VGOZj4qDGntjek9A+HlfP9f7dH4LHxzJBkHrt5DUmYhlAoZgr1UGBDmiRm9AtHIQ2WBT2KfvMPCERjZC35tOsGvbSd4BodB5lAWy+6d9Twub/nOInk1aN8FbUZOREBkLzj7BqCosADZSfFIPLITf/2wCLkptyySjz1jfSaqHxLOHMKF3ZuQfPks8u7dhUKlhnvDIIRE9kb4w2OhdvW47zySL51DbNSPuPX3SeSkp0CucISbXyCCOnRHxMPj4OrT0AKfxPbaN/NDz/DGiAzzR2RLf7Ro5A0HB5m4fuKn27FuZ6xF8urcKgDjh0agZ3hj+Hu7oEBbjITbmdh16jqWbDqFW2nZFsmntmF9rhkMDqqosKgYz2/4B+vPpErSNVotTiVqcSoxB8uik7Dpudbo3tS92vm8vuUaPj9wC4JQlpavBWKSchGTlIsVR5Kx5qkwPNrep9p52LPur32OwE69azyfri9/jPCx/5UEHgq1E1Ru4fAJC0eb0ZOx991ncW3P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Y+HmG1D5zkj0xop92HTgEiY83AE92jdGQy9naIsEJNzJxM4T17B082kkpmRVvqM6hPW5ZskEQX9UsX2JjY1Fu3btcG5mR7T1rzvzx9qjleuOVr4RWcSEMXVnXKI9ik3ORcSCMzh//jzatm1b+RuILKy07Xryi9/g06SFrYtTp327fKuti1BvjH9hqK2LUOelJfyDDS8Pt3n7xRuSiYiIiIgIAIMDIiIiIiLSYXBAREREREQAGBwQEREREZEOgwMiIiIiIgLA4ICIiIiIiHQYHBAREREREQAGB0REREREpMPggIiIiIiIADA4ICIiIiIiHQYHREREREQEgMEBERERERHpMDggIiIiIiIADA6IiIiIiEiHwQEREREREQFgcEBERERERDoMDoiIiIiICACDAyIiIiIi0mFwQEREREREABgcEBERERGRDoMDIiIiIiICwOCAiIiIiIh0GBwQEREREREABgdERERERKTD4ICIiIiIiAAwOCAiIiIiIh0GB0REREREBIDBARERERER6TA4ICIiIiIiAAwOiIiIiIhIh8EBEREREREBYHBAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAAha0LUBGNRgMAiEvNs3FJ6r5beYKti1BvxCbn2roIdVrp8aL0+EFkbaV1715Sgo1LUvcVZyfbugj1RlrCP7YuQp1Xesywdftl18HBjRs3AAAj11y0cUmILGfupTO2LkK9cOPGDTzwwAO2LgbVQ6Vt1/aPp9m4JESWs+HIQlsXod6wdfslEwTBbruMMzIysH//fgQFBUGlUtm6OGaJi4vDiBEjsHnzZoSGhtq6OHUWv2frqI3fs0ajwY0bN9C7d294enraujhUD7HtovLwe7aO2vo920v7ZddXDjw9PTF8+HBbF6NaQkND0bZtW1sXo87j92wdte175hUDsiW2XVQZfs/WURu/Z3tov3hDMhERERERAWBwQEREREREOgwOiIiIiIgIAIMDi/Pz88Ps2bPh5+dn66LUafyerYPfM1H9wN+6dfB7tg5+z/fHrmcrIiIiIiIi6+GVAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgcWlpSUhDfffBMPPfQQ3NzcIJPJsG/fPlsXq87QaDR44403EBgYCCcnJ3Tp0gU7d+60dbHqnOzsbMyePRuDBw+Gt7c3ZDIZ1qxZY+tiEVENYdtVs9h2WQfbLstgcGBhly5dwscff4ybN2+iffv2ti5OnfPss8/is88+w3/+8x8sWrQIcrkcQ4YMwaFDh2xdtDolNTUVc+fOxYULFxAREWHr4hBRDWPbVbPYdlkH2y7LYHBgYZGRkUhLS8Ply5fxyiuv2Lo4dcrx48exYcMGfPjhh/j0008xadIk7NmzB8HBwXj99ddtXbw6JSAgAElJSYiPj8enn35q6+IQUQ1j21Vz2HZZD9suy2BwYGFubm7w9va2dTHqpJ9//hlyuRyTJk0S09RqNcaPH48jR47gxo0bNixd3aJSqeDv72/rYhCRlbDtqjlsu6yHbZdlMDigWuPMmTMICwuDu7u7JL1z584AgLNnz9qgVEREROVj20W1DYMDqjWSkpIQEBBglF6aduvWLWsXiYiIqEJsu6i2YXBAtUZeXh5UKpVRulqtFtcTERHZE7ZdVNsobF2A2qqgoAB3796VpPn5+UEul9uoRHWfk5MTNBqNUXp+fr64noiIyse2y/rYdlFtwysH1XT48GEEBARIXrypqGaVzkJgqDQtMDDQ2kUiIqpV2HZZH9suqm145aCaIiIijB5gwjvka1aHDh2wd+9eZGZmSm7sOnbsmLieiIjKx7bL+th2UW3DKwfV5OXlhf79+0tepeMHqWaMGjUKRUVF+Prrr8U0jUaD1atXo0uXLggKCrJh6YiI7B/bLutj20W1Da8c1ID3338fABAbGwsA+P7778WnIL7zzjs2K1dt16VLF4wePRpvvfUW7ty5g9DQUKxduxbXr1/Ht99+a+vi1TlLlixBRkaGOJPGli1bkJiYCACYNm0aPDw8bFk8IrIwtl01g22XdbHtun8yQRAEWxeirpHJZOWu49d9f/Lz8/Huu+9i3bp1SE9PR3h4OObNm4dBgwbZumh1TkhICOLj402uu3btGkJCQqxbICKqUWy7ag7bLuth23X/GBwQEREREREA3nNAREREREQ6DA6IiIiIiAgAgwMiIiIiItJhcEBERERERAAYHBARERERkQ6DAyIiIiIiAsDggIiIiIiIdBgcEBERERERAAYHRERERESkw+CAiIiIiIgAMDggIiIiIiIdBgdERERERASAwQEREREREekwOCAiIiIiIgDA/wO/gLRT5sU8pgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Blue at center → Orange created at cross positions, Black suppressed there.\n" ] } ], "source": [ "k_cross_pos = np.array([[ 0, 1, 0],\n", " [ 1, 0, 1],\n", " [ 0, 1, 0]])\n", "k_cross_neg = np.array([[ 0, -1, 0],\n", " [-1, 0, -1],\n", " [ 0, -1, 0]])\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(7.5, 3))\n", "for ax, kernel, title, cm in zip(axes,\n", " [k_cross_pos, k_cross_neg],\n", " [r'W[7, 1, :, :] — Write Orange (7)', r'W[0, 1, :, :] — Suppress Black (0)'],\n", " ['Oranges', 'Blues_r']):\n", " im = ax.imshow(kernel, cmap=cm, vmin=-1.2, vmax=1.2)\n", " for i in range(3):\n", " for j in range(3):\n", " val = kernel[i, j]\n", " c = 'white' if abs(val) > 0.5 else 'black'\n", " ax.text(j, i, f'{val:+.1f}', ha='center', va='center',\n", " color=c, fontweight='bold', fontsize=14)\n", " ax.set_xticks(range(3), ['-1','0','1'])\n", " ax.set_yticks(range(3), ['-1','0','1'])\n", " ax.set_title(title, fontsize=10, fontweight='bold')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"Blue at center → Orange created at cross positions, Black suppressed there.\")" ] }, { "cell_type": "markdown", "id": "a64bd615", "metadata": { "papermill": { "duration": 0.006752, "end_time": "2026-05-31T09:46:18.686341+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.679589+00:00", "status": "completed" }, "tags": [] }, "source": [ "## 2.4 Putting It All Together — Constructing the Model\n", "\n", "We have now defined **five** distinct 3×3 kernels:\n", "\n", "| # | From | To | Pattern | Weight | Purpose |\n", "|---|------|----|---------|--------|---------|\n", "| 1 | Any color `c` | Same color `c` | Center (0,0) only | +1.0 | **Identity** — pixel stays |\n", "| 2 | Red (2) | Yellow (4) | Corners | +1.0 | Create Yellow at diagonals |\n", "| 3 | Red (2) | Black (0) | Corners | −1.0 | Suppress Black at diagonals |\n", "| 4 | Blue (1) | Orange (7) | Cross | +1.0 | Create Orange at cardinal dirs |\n", "| 5 | Blue (1) | Black (0) | Cross | −1.0 | Suppress Black at cardinal dirs |\n", "\n", "**All other (input, output) pairs are zero — no other color influences another.**\n", "\n", "When we run the convolution, each output channel accumulates votes from all input channels. The final output is processed in a way that all elements grather than zero becomes $1.0$ and all the others becomes $0.0$." ] }, { "cell_type": "code", "execution_count": 8, "id": "5bc1aa3b", "metadata": { "execution": { "iopub.execute_input": "2026-05-31T09:46:18.701546Z", "iopub.status.busy": "2026-05-31T09:46:18.701188Z", "iopub.status.idle": "2026-05-31T09:46:18.710303Z", "shell.execute_reply": "2026-05-31T09:46:18.709392Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.018548, "end_time": "2026-05-31T09:46:18.711716+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.693168+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def create_task015_model():\n", " W = np.zeros((10, 10, 3, 3), dtype=np.float32)\n", " # 1. Identity for all colors\n", " for c in range(10):\n", " W[c, c, 1, 1] = 1.0\n", " # 2. Red (2) -> Yellow (4) at corners\n", " for r, c in [(0,0), (0,2), (2,0), (2,2)]:\n", " W[4, 2, r, c] = 1.0\n", " W[0, 2, r, c] = -1.0\n", " # 3. Blue (1) -> Orange (7) at cross\n", " for r, c in [(0,1), (2,1), (1,0), (1,2)]:\n", " W[7, 1, r, c] = 1.0\n", " W[0, 1, r, c] = -1.0\n", " input_info = helper.make_tensor_value_info('input', TensorProto.FLOAT, [1, 10, 30, 30])\n", " output_info = helper.make_tensor_value_info('output', TensorProto.FLOAT, [1, 10, 30, 30])\n", " W_init = helper.make_tensor('W', TensorProto.FLOAT, [10, 10, 3, 3], W.flatten())\n", " conv_node = helper.make_node('Conv', ['input', 'W'], ['output'], kernel_shape=[3, 3], pads=[1, 1, 1, 1])\n", " graph = helper.make_graph([conv_node], 'task015', [input_info], [output_info], [W_init])\n", " model = helper.make_model(graph, opset_imports=[helper.make_operatorsetid('', 11)])\n", " return model\n", "\n", "model = create_task015_model()\n", "onnx.save(model, 'task015_demo.onnx')" ] }, { "cell_type": "markdown", "id": "493c8830", "metadata": { "papermill": { "duration": 0.006222, "end_time": "2026-05-31T09:46:18.724487+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.718265+00:00", "status": "completed" }, "tags": [] }, "source": [ "# 3. Running the Model\n", "Let's run the model on a test case." ] }, { "cell_type": "code", "execution_count": 9, "id": "c920c2fb", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:18.738628Z", "iopub.status.busy": "2026-05-31T09:46:18.738331Z", "iopub.status.idle": "2026-05-31T09:46:19.327363Z", "shell.execute_reply": "2026-05-31T09:46:19.326560Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.598313, "end_time": "2026-05-31T09:46:19.329088+00:00", "exception": false, "start_time": "2026-05-31T09:46:18.730775+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABgsAAASBCAYAAAAKfa7IAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAAW5lJREFUeJzs3Xuc3fOd+PH3pMlMSJBEyDHIRaRCRcWtREh0WUv5UVsa0Qqa/vSittVuL6xfQmvbPva3paLbduu27sStW4nbIpGWSv2EtRRVRtUYdQtbIbHJ+f2RR05nzERmxhwn5/t+Ph+PPEzOnMvnfb4j30/ymjmnoVwulwMAAAAAAEirX60XAAAAAAAA1JZYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWADrqalTp0ZDQ0M0NDRES0tLrZcDAFSB8z0A1B/n7965+OKLK8/b7NmzK5dX8/lcsGBB5b6PO+64Pr1vKCKxANZh9OjRlRPLun4tWLCg1svtlldeeSW+9a1vxZQpU2LDDTfs1Ymz/Ql39OjRVVvre7VgwYKYPXt2zJ49Ox588MFaLweA9ZTzfWfHHXdct5+T9n/hX58tXbq0si+4+OKLa70cAN4j5++utf/7evtfG264YXzoQx+K008/Pf785z9Xb4j32TnnnFM5vwPvTf9aLwDo2pw5c+K1116LiIgtttiiT+/7D3/4Q3zve9/r0/tcXy1YsCDOOOOMiFi9kdx5551ruyAAaMf5/v21dOnSyr5gypQpvsMQgF6p1/P3m2++GY8++mg8+uij8fOf/zzuueeeGDx4cFUeqyfe6/N5zjnnxDPPPBMR0SkYTJw4MRYtWhQRESNGjHhvC4UExAJYh2uvvTbeeuutyu+PPPLIaGtri4iIc889NyZOnFj53IQJE7q8jzfeeCMGDRrUo8dd2331hcbGxth3331j0qRJ8ac//SkuvPDCqj0WANQD5/vOTjvttJg5c2bl9//4j/8YN998c0REHH/88XHCCSdUPjdy5Mj3vN7ePH8A5Ob8vW6lUinmzp0bK1eujMWLF8dpp50Wb7/9djz88MPxk5/8JL72ta+96+3fj/NzNZ/PTTbZJCZPnly1+4ei8TJEsA677bZbTJ48ufKrqamp8rkJEyZULt9qq61iyJAh0dDQEFOnTo2777479tprr9hggw3ii1/8YkREXHDBBXHggQfGyJEjY9CgQTFw4MAYN25cfOlLX4qXXnqpw+N29Zp9LS0tlcumTp0av/nNb2K//faLDTfcMEqlUvzDP/xDrFq1ap0z7bDDDrFw4cL47ne/G7vvvnvfPVnR+fUAb7311th9991j4MCBMXLkyDj33HM7XH/27NmV61900UVx9tlnx9ixY2PgwIGx6667xu23397h+mt7LcP297PmZQUaGhoq3z0YsfofNt55HQCIcL7vyrhx4zo8J5tvvnnlcyNHjuzwuR/+8IcxadKk2GKLLaKpqSkGDx4cu+yyS/zf//t/43/+53863G/7lzF8+OGH44ADDojBgwfHxz72scp1rr322thxxx1j4MCBseOOO8Y111zT5bl+jf/8z/+Mo48+OrbYYotobGyMLbfcMmbOnBl//OMfK9c57rjjYsyYMZXfL1y4sMPzDED9cf5et6amppg8eXJMmTIl/v7v/z6OOeaYyufWfMf9O/8ef/3118fOO+8cTU1N8U//9E8drv+//tf/is022ywaGxtjzJgxccopp8Srr77a6XHvvPPOyr8FjB07Nn70ox+tdY3v9p4Ft9xySxx88MGVx9xyyy3jE5/4RDzzzDOV90BY81MFEX/ZZzQ0NHQ5W3ttbW1x8sknx9ixY6OpqSmGDBkSU6dOjblz53a4Xl8dW6gHfrIAquB3v/tdHHjggR2+wyEiYu7cuXHbbbd1uOzJJ5+M8847L+6444544IEHYuDAgd16jCeeeCKmTJkSb775ZkSs/nHCs846K0aPHt3huwBracGCBXHppZdWTprPPvts/N3f/V3ssMMOsf/++3e6/ve///14/PHHK79/4IEH4mMf+1jccccdsc8++7xv6waA7nC+/4sf/ehHsXz58srvV6xYEUuWLIklS5bEo48+2uV3RS5dujT222+/ePnllztcfv3118dRRx0V5XI5IiIeeeSR+OQnPxkf/vCHu3zsm2++OT7+8Y93ePzW1ta44IILYt68eXHPPfd0iAQA5Jb9/L3JJptUPl6xYkWnz999991xySWXVM7Da5x//vlx4okndvhH8ZaWljj77LNj/vz5ce+998bQoUMjIuKee+6Jgw46qHL/Tz31VJx00kmx00479WitZ555ZsyaNavDZa2trXHdddfFSSed1KP7eqenn346Jk2aVPlJlIjVz8fChQtj4cKF8Y1vfKPLl4Nan48t9AU/WQBV0NraGltttVVcdtllMX/+/Dj88MMjIuKTn/xkXHjhhTFv3rxYsGBBzJs3L4499tiIiPjtb38b119/fbcf4/nnn49ddtklfv7zn8fJJ59cufynP/1pn87yXjzzzDNx6KGHxi9+8YuYNm1a5fK1rfHJJ5+MM888M2666aY48MADIyLi7bffji9/+cu9evxFixbF8ccfX/n9qaeeGosWLYpFixbFwQcf3Kv7BIA1nO//4rTTTosrr7wybrnllliwYEFcf/318ZGPfCQiIi6++OIO3+G/xmuvvRYf+MAH4l//9V/j1ltvjZkzZ8bKlSvjy1/+cuUfKI488siYN29enHzyyfHQQw91uo9ly5bFjBkzYvny5dG/f/8466yz4rbbbouvf/3rEbH6Owa/8IUvVNbY/jsFd95558q+YM6cOX3+nACwfsp6/l61alXcd999ccUVV1Qu6+rlf55++unYbbfdYu7cuXHjjTfGPvvsE88991ycdNJJsWrVqthoo41izpw5ceutt1b+vv3444/HqaeeWrmPr371q5VQsP/++8cvfvGL+Pa3vx2PPPJIt9d7//33dwgFn/nMZ+IXv/hFXHnllXHkkUdGv3794uCDD45FixZFqVSqXG/NuX3NT02szRe+8IVKKJg6dWr8+7//e/zgBz+oBKHvf//7cd9993W63fp4bKEv+ckCqIJ+/frFTTfdFNttt12Hy/fff//49re/Hf/xH/8Rra2tHb4DLmL1yXD69OndeozGxsa47rrrYsSIEXHIIYfE+eefH8uWLYsnn3yyz+Z4rzbffPO4+uqro6mpKXbfffe46qqrIiLWusZp06bF6aefHhERkydPjubm5li2bFk88MAD8eyzz8bWW2/do8efPHly/Md//Efl92teTgEA+oLz/V989KMfjX/6p3+K++67L1566aUOLz1ULpfjgQceiK222qrT7S677LI44IADKr9fvHhxPPvssxGx+jWWL7/88hgwYEAcfPDBsXjx4vj1r3/d4fa33XZbvPjiixERccABB8S+++4bERGHHnpoXHPNNdHS0hK33nprvPTSSzFu3LgYMGBA5bZewxggp2zn72eeeabykjztDRkypPISTO0NHjw4brnllhg2bFjlsnPOOafyfHziE5+InXfeOSJWv9Tv1VdfHcuWLYsrr7wyfvSjH8VLL71UOV83NTXF1VdfHcOGDYtDDjkkHnvssbj88su7te7LLrus8vHRRx8d559/fuX37b8ZcfPNN+/w8lPdObe/8sorceutt1bWeO2118amm24aERHPPfdc/PM//3NERFx55ZWVb35YY306tlANYgFUwbhx4zptPP77v/87Jk2a1OV31q2xdOnSbj/G+PHjY8SIERGxerMzdOjQWLZsWY/uo9r23HPPykl7zYk3Yu1ztj8Jb7LJJrHddtvFkiVLImL1jy32NBYAQDU536+2ePHi2G+//eLtt99e63W6Wu/AgQM7hIKI1ef7NXbZZZcO/7i/1157dYoFTzzxROXjm2++ufIGzO2Vy+V47LHHhAEAIsL5OyJin332iTlz5sSoUaM6fW7vvffuEAoiOp5vL7roorjooos63e61116L1tbWDs/h2LFjO9zXHnvs0e1Y0P4xDznkkG7dprt+97vfVX6KcezYsR3+vWKPPfbocg1rrO/HFt4rL0MEVbDmxNHeDTfcUDlpjh8/Pq6++upYtGhRnH322ZXr9OQNcda8FuAa/fuvf+2v/Rrbr++dr324Nl1990P7y1auXFn5+J1vOAUA1eZ8v9pPfvKTSig45JBDYv78+bFo0aLKSzdEdD1z+zdM7kpX+4DeeuONN/rsvgCob9nO36VSqfKyPL/5zW/i5Zdfjrvvvnut7wXU1fPTXes63/blub1a1rXG9enYQjWIBVAFXZ1cnnvuucrHX/ziF+Ooo46KyZMnd3pTpcwWL15c+fi1117r8GbH22yzTUR0fDOmNa8vuGrVqrj99tu7vM9+/f7yx1xPNncAsC7O96u1n/m73/1uHHTQQTF58uR44YUX3vV2XT1/Y8eOrXy8ZMmSDt8YcO+993a6/gc/+MHKxzNmzIhyudzp1xtvvFF5LyT7AgCynb+bmppi8uTJMXny5Nhtt906/dTAO3X1/LQ/386aNWut59vtttsuxowZU7nuU089Fa+++mrl9129B8DatH/MefPmvet1e3p+33bbbStz/v73v4+XX365yzW2XwNkIX/B+6T9j/ddeOGFsc0228STTz4Z3/nOd973tSxbtizmz58fEVF5mZ+I1a9leO2110ZExO67797ljyRW05VXXhnjx4+PiRMnxnnnnVf5roSJEydWXoJo2223rVz/S1/6UsycOTNuuummLn88MKJj9b/uuutizJgxMWDAgNh99907vK4hAPSFjOf79rf/7ne/GzNmzIibb7658lrAPbHLLrvE1ltvHc8++2y0trbGscceG8ccc0zceuutnV6CKGL1+xRsttlm8eKLL8Yll1wSw4YNiwMOOCBWrlwZLS0t8atf/SoeeuihePTRRyOi477g4YcfjhtvvDGGDx8eI0eOjJEjR/ZiegCKIOP5uyc+8YlPxDe/+c1Yvnx5fO9734uGhobYa6+9YtmyZfH000/HXXfdFW+++WbcfvvtMWLEiPjIRz4S9913X7z11lsxbdq0OPnkk+Ohhx6qvI9hdxxzzDHxwx/+MCIirrjiihg0aFAcdthh8cYbb8TPf/7zOPHEEyvvVTR06NB4+umnIyJizpw5seuuu8Ymm2zS5Rs4R6x+meQDDzwwbrnllli+fHkcddRR8ZWvfCV+//vfx7/8y79Urnf00Uf39imD+lUGemTUqFHliChHRPmuu+6qXP70009XLp8yZUqn273++uvlLbbYonKdNb/23nvvysczZsyoXH/KlCmVy59++ul1Pkb7da1L+/tZ26+LLrroXe/jrrvuqlx31KhRXV7efp5yudzl9WfNmlW5fKedduq0jv79+3d4nh999NFyv379Ol1v/PjxXa79P//zP8sNDQ2drr/mOQWArjjfdzZjxozK7WbNmlW5/L777ut0rm1oaCjvtddeXT5OV/uB9q677rouz90TJkzo8v7mzZtXbmpqWuuM73ycXXfdtdN12s8DQP1y/l5tbX9f78713/n3+DV+9rOfdfl38a5mvvvuu8sDBgzodJ1x48Z1ee7t6vksl8vl//N//s9aH6/98f3qV7+61vWsbbbf//735VKptNb7/8Y3vlG5bl8dW6gHXoYI3icbbbRR3H777fHRj340Bg8eHFtuuWWceeaZceaZZ9Z6aeuNr3zlK3HeeefF2LFjo7GxMSZOnBg33XRTTJ06tXKd7bffPi6//PLYdttto7GxMXbccce45ppr4pOf/GSX9zlhwoS45JJLYvvtt/eTBABUXcbz/R577BE33HBDTJgwIQYOHBgf+tCHYu7cufHXf/3Xvbq/I444Iq655prYYYcdorGxMbbffvu44oor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7+5ZtGhRlMvleOSRR+Kb3/xmvPbaa/HHP/4x/vEf/zHOO++8d73t+3F+HjduXIwbN64q993U1BSTJ0+uyn1DIZWBHhk1alQ5IsoRUb7rrrsqlz/99NOVy6dMmVJeuHBhec899ywPHDiwPGPGjHK5XC6ff/755b/+678ub7311uUNN9yw3NTUVN52223LJ510UvnFF1/s8DhTpkyp3N/TTz/d5WMsXry4PHXq1PIGG2xQHjFiRPm0004rr1y5cp0zLFq0qPzGG290uOzBBx+s3HdElF944YV3vY/2a2n/R0lP13jRRRdVrj9r1qzypZdeWt5hhx3KTU1N5e233758+eWXd3jcGTNmdPn8v/N+yuWOx+qdv9ZcBwC64nzf2axZsyq3WzPrGt/97nfLU6ZMKW+55ZblgQMHljfYYIPy9ttvXz7ttNM6raH9c/vMM8+UjzjiiPLGG29cHj16dOU6CxYsKO+2227lpqam8jbbbFOeM2dOl+f6NZ566qnyzJkzyyNHjiw3NjaWN9tss/JRRx1VfvTRR7tc/zt/jRo1qtvPAwDrL+fvzvO+85/+Zs+eXbl8p5126vbzUy6Xyw899FB52rRp5VKpVB4wYEC5ubm5/JnPfKb87LPPdlrDkiVLylOmTCkPHDiwvOWWW5Znz55dvv3227vcS6zt7/nlcrl87733lj/xiU+Ut9hii/KAAQPKI0aMKB900EHlJUuWlO+66661ntvXHJt3ztbea6+9Vj711FPL48ePLw8cOLA8ePDg8h577FH+yU9+Ul61alWH67bfMzzxxBPlQw89tDxo0KDy0KFDyyeeeGL5zTfffNdjAvXCTxZAFfzud7+LAw88sMN3OEREzJ07N2677bYOlz355JNx3nnnxR133BEPPPBADBw4sFuP8cQTT8SUKVPizTffjIiIN998M84666wYPXp05cf31qarqv7Oir/hhht2ax19ucarrroqHn/88crvf/vb38YxxxwTDQ0NcfTRR7/n9QBAX3K+/4uLL764wzk8YvV5/Kyzzop77rkn7rzzzi5vt99++8VTTz0VERFDhw6NiIhf//rXceCBB8by5csjIuKpp56KL33pS/HhD3+4y/t44IEH4q/+6q86vEbxiy++GNdcc03Mnz8/7rjjjthjjz3e64gAFET283f7l+JZsWJFp8+v7fm5+eab4+Mf/3jl/BwR0draGhdccEHMmzcv7rnnnhgzZkxErH7epk6dWnmppueeey5mz54dO+20U4/WetFFF8VnP/vZWLlyZeWyF154IW6++eY46qijYvTo0T26v/ZeffXVmDRpUjz22GMdLl+8eHEsXrw4FixYEFdeeWWXt9trr73i5ZdfjojVP3nx05/+NIYPHx7f+c53er0eWF94g2OogtbW1thqq63isssui/nz58fhhx8eERGf/OQn48ILL4x58+bFggULYt68eXHsscdGxOq/UF9//fXdfoznn38+dtlll/j5z38eJ598cuXyd762YXddd911lY/32WefGDx4cK/u572s8fHHH4+/+7u/i3nz5sWnPvWpyuWnnHJKvP322z1+/GuvvbbDSyQcf/zxsWjRoli0aFGccMIJPb4/AGjP+f4vPve5z8Wll14a8+fPjwULFsS///u/x8EHHxwREXfddVfcc889Xd7uhRdeiB/84Adx2223Vc7Zp5xySuUfIvbbb7/4xS9+EWeccUY8/PDDnW5fLpdjxowZlVDw1a9+NW677bb4/ve/Hx/4wAfiz3/+cxx//PFRLpfjhBNO6PDGkKVSqbIvuPbaa/vkeQBg/Zf1/F0ul+PRRx+NH//4x5XLuno5pa6en2XLlsWMGTNi+fLl0b9//zjrrLPitttui69//esREdHW1hZf+MIXKvdx+umnV0LBxIkT48Ybb4w5c+bEk08+2e31Pvfcc/H5z3++EgoOP/zwuOGGG+Laa6+Nz372s9HY2BgTJ06MRYsWxc4771y53dy5cyvn93d7P4lTTz21EgomTJgQ119/fZx//vmVb1646qqr4uqrr+50u9dffz0222yzuO666+Lb3/525fLeHltY79T4Jxug7nTnxxr79etXfuyxxzrd9g9/+EP5s5/9bHnMmDHlpqamTj8i95WvfKVy3XX9WGNjY2O5ra2tXC6XyytXrixvuOGG5YgoDxkypMcz3X///eVNNtmkHBHlpqam8v3337/O23TnZYi6s8b2Lymw9957Vy7/n//5n/LIkSMrn7v77rvL5XLPXobo3S4HgHfjfN/Zu70M0X/913+Vp02bVt5qq63KAwYM6DTzD3/4w8p12z+3//qv/9rhfl544YXK55qamsovvfRS5XPTpk3rdE5fsmRJ5bKdd965vGjRosqvvfbaq/K59rOuucxLDwEUj/N353nX9quxsbG8ePHibj0/N9xwQ+XzBx10UIfz7ejRo8sRUW5oaCi/+OKL5ZUrV5YHDx5cuf4jjzxSuZ/TTjut2y9DdPbZZ1cumzRp0rvO29Xx6Oq5WPMyRCtXriwPHTq0cvnDDz9cuf6cOXMqlx922GGVy9s/d0uWLKlcPn78+MrlS5cuXceRgfWflyGCKhg3blxst912HS777//+75g0aVL88Y9/XOvt2v/4/LqMHz++8maC/fr1i6FDh8ayZct6dB8REb/85S/jYx/7WLz++uvRv3//uPLKK2PXXXft0X301Ro/8pGPVD7+wAc+ELvuumv84Q9/iIjVL0Gwzz779Mm6AKAvON+v9swzz8SkSZPi9ddfX+t11rbeQw89tMPv17wkUUTE2LFjY9NNN638fq+99oqrrrqqw/WfeOKJyscPPvjgWvcKv/3tb/tsXgDqm/N3xM477xw/+MEPYvfdd+/0ua6en/bn25tvvjluvvnmTrcrl8vx2GOPxbbbbht//vOfIyJi0KBBscMOO1Su05OXBWz/mB/72Me6fbvuePHFF+PVV1+NiNUv6bTjjjtWPtd+je3XsMbGG2/c4ScZ2u9Vli5d2uFlnqAeeRkiqII1m4L2brjhhsrGY/z48XH11VfHokWL4uyzz65cZ9WqVd1+jDU/GrdG//49b3+33XZbHHjggfH6669HU1NTXHvttfHxj3+8x/ezNu91jQ0NDe96WfvXLXzppZd6uDoAeG+c71f7t3/7t0oo2GuvveLGG2+MRYsWVV6aIGLtM3f1HK7R1T6gt954440+uy8A6lvG8/eal+VZvHhxPP/887FkyZLYb7/9urzuu52b12Vd59u+PLf3lXeuaV1rfLdjWy6X+25hUCNiAVRBVyeX5557rvLxF7/4xTjqqKNi8uTJnd406P1yww03xKGHHhrLli2LQYMGxbx58+Kwww6ryVrWWLx4ceXjlStXxv3331/5/TbbbBMRHd+Mqa2trfLxLbfc0uV99uv3lz/merK5A4B1cb5frf3Mp556ahx22GExefLkymsVv5t3Podjx46tfPz73/++8l1/ERH33ntvp9t/8IMfrHw8ZcqUKJfLnX698cYbceKJJ3Z6TPsCgJwynr8nT54ckydPjt133z1KpdK7Xrer56f9+XbGjBlrPd8eeOCBsfnmm8egQYMiYnU8+O1vf1u57X333dftNbd/zPnz57/rdXv69/7NNtsshgwZUlnjI4880uUa268BsvAyRPA+GTVqVOXjCy+8MLbZZpt48skn4zvf+c77vpa5c+fG0UcfHStXroyGhoaYNWtWNDU1xS9/+cvKdXbfffdoamp6X9f1y1/+Mk455ZQ44IAD4qqrrqq8BNGIESNizz33jIiIbbfdtnL9f/iHf4ilS5fGPffcE3fccUeX99m++t9yyy2x7777xsCBA2PChAl+PBCAPpfxfN9+5nPPPTcaGxvjvvvuiwsuuKDH97XZZpvFpEmT4p577om33norpk2bFieffHI88MADcc0113S6/oc//OHYcccd47/+679i4cKFceyxx8aRRx4ZAwYMiJaWlli8eHHccMMNHaLD0KFD45VXXonW1ta4/PLLY9SoUTFixIgYN25c754AAOpexvN3TxxwwAGx2WabxYsvvhiXXHJJDBs2LA444IBYuXJltLS0xK9+9at46KGH4tFHH41+/frFIYccUnlz4E9/+tNx+umnx3PPPRfnnHNOtx/zyCOPjG9+85uxfPny+NWvfhV/+7d/G8cee2ysWrUqbr/99th7773jmGOOiYiOf+//2c9+FgcffHBssMEGsdtuu3V53/369Ytp06bFT37yk4iIOOaYY2LWrFnx6quvxqxZsyrXO/roo3v6VEH9q81bJUD96s4bJq1505z2Xn/99fIWW2zR6U2F9t577y7f4Gddb5j0zsdov651af/mQWv79c43BXqn7rzBcXfW2P4NiCdMmNDlWi699NLK9V966aUOb5a05tf222/f6U0Py+Vy+cUXX+zyzanaHzsAeCfn+87W9gbHzzzzTOWNG9c2c/tz87pmuPfee8uNjY2d7m+nnXbq8v7+3//7f+UhQ4a865zt/e3f/m2nz7/zDZsBqE/O353n7c5jruv5KZfL5Xnz5nX5d+s1v0aNGlW57hNPPFHeeOONO11n3LhxXT6fXb3BcblcLv/sZz8r9+vXr8vHu+iiiyrXa/+mxO9cz9pme/nllzu8OfE7f02bNq28atWqyvW7mrNcfvc3V4Z65GWI4H2y0UYbxe233x4f/ehHY/DgwbHlllvGmWeeGWeeeWatl7beOOKII+Lqq6+OD33oQ9HY2BjbbbddXHrppfGpT32qcp1NN900brzxxthpp52isbExxo4dGz/6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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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c05EbH4jilNPPTUuvvjibX797jRx4sTq58OHD69+vnbt2l63/+hHP1r9fMyYMTFs2LB444034r333ov29vYYPXp0n2UFgL1Fimv+fffdF2efffZ2t+lt/R8zZkyMHTu222UvvfRS9fOus0H//v3j5JNPjldeeaXb9i+88EL184ULF8bChQt73M6bb75ZfZY6AOxuKa3d9fX1MW3atJg/f34MGTKkx/VnnHFG9O/fvXLrutZec8011Tf17Or555+PiO7r+Pjx47vta8KECfGjH/1oh3J2vc1PfvKTO/Q1O6rrvk844YQYMGBA9f8nTJgQ9957b4/ttvjYxz5WPe/8jvQc0JecVgV68c4770RExLhx4+KnP/1pfP7zn4+PfvSjMXTo0PjFL34R3/ve9+L000+Pf/iHf+jzLMOGDat+3nVBLP775VXvp7c34+h62caNG6ufv/7667VEBIBk7U1r/te+9rXq5zNnzowHH3wwVq5cGVOnTq1evuXl412NGDFiu/ut9Q3Ce7PleAFAWcpYu8ePHx8rV66MJ554Ip5++ulYu3ZtLFmypPqGlVt7v7V5WzZs2BDr1q3b7ja7c13vK++XcVd7DtidlONk5eCDD67+I7z//vvH22+/HUVRdPvYuHFj9dlSRVHEMcccEzfeeGP8+Mc/jrVr11bPubVp06ZYvHhxdd/19f/z69TbA9c95amnnqp+/uKLL8aaNWsiImLgwIHR1NQUEZvfaXuLjo6OiIh4++23t/nX573lewOAHZXimv/qq69WP58/f35MnTo1fu3Xfq3b5b3p7QHoEUccUf38Jz/5SfXzDRs2dPv/LY466qjq57Nnz+5xrIqiiHfeeaf6DHWzAQC72968dg8dOjRaW1vj1FNPjeOPP77XZ4t31dva3HWtXbhw4TbX2sbGxjj88MOr2/7sZz/r9qS2J598codzd73NpUuX7lDmHT0+Xff9zDPPxIYNG3rN2HU72Bs5rQpZqa+vj09/+tOxYMGC+K//+q847bTT4vOf/3wcfPDB8corr8S//Mu/xH333Re33XZbTJo0Ka699tpYsWJFfOITn4hRo0bFfvvtF8uWLavur+tfdIcNGxarVq2KiM0PaE888cQYOnRor2/O0ZfmzZsXI0aMiFGjRsXVV19dvfzMM8+svszpyCOPjGeffTYiIj772c/G2WefHXfdddc2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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Results on ARC-AGI examples: 4 pass, 0 fail\n", "Results on ARC-GEN examples: 261 pass, 0 fail\n", "\n", "Your network IS READY for submission!\n", "\n", "Performance stats (memory values reported here are approximate):\n", "Name Type Forward_MACs FPercent Memory MPercent Params PPercent InShape OutShape\n", "------ ------ -------------- ---------- -------- ---------- -------- ---------- ---------- ----------\n", "Conv_0 Conv 810,000 100.00% 39,600 100.00% 900 100.00% 1x10x30x30 1x10x30x30\n", "Total _ 810,000 100% 39,600 100% 900 100% _ _\n", "\n", "It appears to require 0 bytes + 900 params, yielding 18.198 points.\n", "\n", "Next steps:\n", " * Click the link below to download task015.onnx onto your local machine.\n", " * Create a zip file containing that network along with all others.\n", " * Submit that zip file to the Kaggle competition so that it can be officially scored.\n", "\n" ] }, { "data": { "text/html": [ "task015.onnx
" ], "text/plain": [ "/kaggle/working/task015.onnx" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sys\n", "sys.path.append(\"/kaggle/input/competitions/neurogolf-2026/neurogolf_utils\")\n", "from neurogolf_utils import *\n", "\n", "def run_inference(grid, model_path):\n", " oh = np.zeros((1, 10, 30, 30), dtype=np.float32)\n", " for r in range(len(grid)):\n", " for c in range(len(grid[0])):\n", " oh[0, grid[r][c], r, c] = 1.0\n", " sess = ort.InferenceSession(model_path)\n", " out = sess.run(None, {'input': oh})[0]\n", " return np.argmax(out[0], axis=0)\n", "\n", "# Test on all train examples\n", "fig, axes = plt.subplots(2, 3, figsize=(13, 11))\n", "for i in range(2):\n", " inp = task['train'][i]['input']\n", " target = task['train'][i]['output']\n", " pred = run_inference(inp, 'task015_demo.onnx')\n", " H, W = len(inp), len(inp[0])\n", " plot_arc_grid(inp, axes[i, 0], f'Train {i+1} Input')\n", " plot_arc_grid(target, axes[i, 1], f'Train {i+1} Target')\n", " plot_arc_grid(pred[:H, :W], axes[i, 2], f'Train {i+1} Prediction')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "# Test on test example\n", "test_inp = task['test'][0]['input']\n", "test_tgt = task['test'][0]['output']\n", "test_pred = run_inference(test_inp, 'task015_demo.onnx')\n", "fig, axes = plt.subplots(1, 3, figsize=(13, 4))\n", "plot_arc_grid(test_inp, axes[0], 'Test Input')\n", "plot_arc_grid(test_tgt, axes[1], 'Test Target')\n", "plot_arc_grid(test_pred[:len(test_inp), :len(test_inp[0])], axes[2], 'Test Prediction')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "# Verify with official checker\n", "passed = verify_network(model, 15, task)" ] }, { "cell_type": "markdown", "id": "858babc8", "metadata": { "papermill": { "duration": 0.007599, "end_time": "2026-05-31T09:46:19.344381+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.336782+00:00", "status": "completed" }, "tags": [] }, "source": [ "# 4. Beyond Hand-Design: Task 151 and the Bias Term\n", "\n", "Not all ARC tasks have rules as clean as task 015. Consider **task 151**: whenever a vertical line crosses a horizontal line, a 3×3 Yellow block appears around the intersection, but the center pixel keeps its original color.\n", "\n", "**Our result:** Mem=0, Params=910, **18.187 points**\n", "\n", "Let's look at some examples:" ] }, { "cell_type": "code", "execution_count": 10, "id": "88674250", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:19.361067Z", "iopub.status.busy": "2026-05-31T09:46:19.360737Z", "iopub.status.idle": "2026-05-31T09:46:19.588095Z", "shell.execute_reply": "2026-05-31T09:46:19.586987Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.23835, "end_time": "2026-05-31T09:46:19.590087+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.351737+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAOzCAYAAACyG2AJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAATWFJREFUeJzt3X2YnfO9L/5PIlmTR5IIGZEnSZAgCKlGhBH1cCiH6qGqtojqr/qAVvdPD3p+Qml3995FPXS3+xDa0CLBtARJi6SjtCkR5cim2UwanQ6JiBCSsZP790fOLLMyE5k1eVhr+b5e1zXXNWvN/fBe96x8v++15l53OmVZlgUAACSmc6kDAABAKSjCAAAkSREGACBJijAAAElShAEASJIiDABAkhRhAACSpAgDAJAkRRgAgCQpwgAAJEkRBgAgSYrwx9iRRx4ZnTp1ik6dOkV9fX2p4wBQBGM4bHuK8HYwbNiw/GC2ua+5c+eWOm67rFixIi699NKoqamJHj165POfc8457d7G3Llz8+sNGzZsm2XdUnPnzo2pU6fG1KlTY+HChaWOA2xnxvDWzjnnnHYfk6lTp27Tx7K1rFy5Mj/W33777UWv/8orr8QFF1wQo0aNip49e0bPnj1j1KhR8fWvfz1eeeWVLc63cOHCfL5SPM9uv/32/P5Xrly53fe/rXQpdQC2nRtvvDHefvvtiIjYbbfdtuq2//rXv8Y//dM/bdVtlqu5c+fGlVdeGREbJsQDDzywtIGAJBjDt6+VK1fmx/qampqi3tiZOXNm/MM//EOsWbOm4P6XXnopXnrppbj11ltj+vTp8T/+x//ocL6FCxfm80Vs+IvB9nT77bfHvHnzImLDC6E+ffps1/1vK4rwdjBz5syCfxynnXZaNDY2RkTEDTfcEGPHjs3/bMyYMW1uY/Xq1dGzZ8+i9rupbW0NuVwujjjiiJgwYUK88cYbMW3atG22L4BSMoa3dvnll8d5552Xv/29730vHn744YiImDJlSpx77rn5nw0ZMmSL83bk+G0vzz77bHzhC1+IpqamiIj47//9v8eXvvSliIi45ZZb4le/+lWsWbMmzjrrrBg5cqQ3U8pNxnY3dOjQLCKyiMgef/zx/P2vvvpq/v6ampps3rx52fjx47Nu3bplkydPzrIsy2655Zbs2GOPzQYPHpz16NEjq6qqykaOHJl9/etfz5YtW1awn5qamvz2Xn311Tb3MX/+/OzII4/Munfvng0YMCC7/PLLs3Xr1hX1eP7t3/4tv83mnO3x+OOP59cbOnRom/dPnjw5e+SRR7Jx48ZlVVVV2eDBg7Mf/ehHBdu54oor8stPmzYtu/baa7Phw4dnVVVV2UEHHZTNmTNns8dl4+3cdtttWZZl+dttfTUvA6TFGN7a5MmT89u44oorCn528cUXZ4ceemhWXV2d5XK5rGfPntnYsWOzf/mXf8k++OCDgmVbzgl//vOfs6OPPjrr2bNnVlNTk19mxowZ2b777ptVVVVl++67b3b33Xe3OX43e+6557Izzjgjq66uzrp27ZoNHDgw++IXv5gtXbq0zfwbf7Xcd1tOOumk/LKTJk3K1q9fn//Z+vXrs0mTJuV/ftJJJ7W5z5bPo9tuu63VsWz5nNv4q3mZls+XP//5z9lXv/rVrH///lmPHj2yT3/609nixYs3eaxb2vh513JObuur5TxaibwjXKb+8pe/xHHHHdfqzywzZsyIOXPmFNy3ePHiuOmmm+LRRx+NBQsWRLdu3dq1j5dffjlqamri/fffj4iI999/P6655poYNmxYwSv9Upo7d25Mnz491q9fHxERS5cujYsuuij22WefOProo1st/4Mf/CBeeuml/O0FCxbEpz/96Xj00Ufj8MMP3265gbQZwz908803x9q1a/O3m5qa4tlnn41nn302XnzxxTbfjV65cmVMmjQp3nzzzYL777vvvjj99NMjy7KIiPg//+f/xOc+97k44IAD2tz3ww8/HJ/5zGcK9t/Q0BC33nprzJo1K5588snYY489OvzY3n///Zg9e3b+9re+9a3o1KlT/nanTp3i4osvjscffzwiImbPnh1r1qxp9++4o0477bSCuXDWrFmxcOHCeO6552LnnXfepvuuND4sV6YaGhpi0KBBcccdd8RDDz0Up5xySkREfO5zn4tp06bFrFmzYu7cuTFr1qw4++yzIyJi0aJFcd9997V7H3//+9/joIMOil/96ldx4YUX5u//6U9/ulUfy5ZYsmRJnHTSSfHAAw/EGWeckb9/UxkXL14cV111VTz44INx3HHHRUTEBx98EN/4xjc6tP+6urqYMmVK/vZll10WdXV1UVdXFyeccEKHtgl8/BnDP3T55ZfHL3/5y3jkkUdi7ty5cd9998UnP/nJiNhw3ulrr73Wap233347dthhh/j3f//3mD17dpx33nmxbt26+MY3vpEvwaeddlrMmjUrLrzwwnjuuedabeO9996LyZMnx9q1a6NLly5xzTXXxJw5c+KSSy6JiIjGxsb46le/ms84Y8aM/LoHHnhgfqy/8cYbN/nYFi9enD8lonm9jbW8r6mpKRYvXvwRR6ttM2fOjMsuuyx/e8qUKfl8LU9Dafbmm2/GbbfdFjNmzIjhw4dHRMTf/va3+N73vlf0vseOHRt1dXUFj2PGjBn5/W/t89e3N+8Il6nOnTvHgw8+GHvvvXfB/UcffXR897vfjd/+9rfR0NBQ8Co3IuLpp5+OM888s137yOVyce+998aAAQPixBNPjFtuuSXee++9Dv0j3VZ23XXXuPvuu6Oqqio+8YlPxF133RURscmMZ5xxRvyv//W/IiJi4sSJMXDgwHjvvfdiwYIFsXTp0hg8eHBR+584cWL89re/zd/ec889Y+LEiR18NEAqjOEfOuqoo+Jf/uVf4o9//GMsX748/uu//iv/syzLYsGCBTFo0KBW691xxx1xzDHH5G/Pnz8/li5dGhER1dXVceedd0bXrl3jhBNOiPnz58cf/vCHgvXnzJkTy5Yti4iIY445Jo444oiIiDjppJPinnvuifr6+pg9e3YsX7489txzz+jatWt+3Z122qldY/2qVasKbu+yyy6tltn4vuYPQBZj3Lhx8cILL+RvDxky5CPzff/7389/2K9Pnz7541hbWxs//OEPi9p387HYaaedCvKU89WeiqEIl6k999yz1QD6zjvvxIQJE9p89dysmEuajBo1KgYMGBARGwbtvn37xnvvvVdWl0UZP358VFVVRUQU/DlnUxmb32WI2PCPd++9945nn302IjZc2qbYIgzQEcbwDebPnx+TJk2KDz74YJPLtJW3W7duBSU4IgouQXbQQQcVFNdDDz20VRF++eWX898//PDD+Q/ztZRlWfzHf/xHh9/g2HHHHQtuL1u2LHbfffdW97XUslBuKy3nwkMOOST/fX19fWRZVnD6RuqcGlGmmge3lu6///78ADpq1Ki4++67o66uLq677rr8Ms3n0rZH3759C2536VJ+r4taZmyZr/lPY5vT1j/2lvetW7cu//3y5cs7EhGgFWP4Bj/5yU/yJfjEE0+Mhx56KOrq6vKng0S0/Zh33XXXj9zu1ixyq1ev7vC6I0eOjFwul7/d1rXmW562kcvlYuTIkRGx/eaizR2rlvveFvsvd4pwmWrrifu3v/0t//3Xvva1OP3002PixImtPoyRsvnz5+e/f/vttws+LNB8nlTLV+PNl0Bav359/OY3v2lzm507f/jPpJhJCkiXMXyDlo/5+9//fhx//PExceLEeP311z9yvbaO34gRI/LfP/vsswUF7qmnnmq1/F577ZX/fvLkyZFlWauv1atX5z9P0pGxvnv37nHsscfmb1933XUFb9RkWVbwQue4447Lf1CurbkoIuKRRx5pc1/F5Gs5F/7xj3/Mf9/8n8O03P+bb76Zf7FSX18f//Ef/7HF+68k5ffykU0aOnRo/vtp06bF8OHDY/HixXH11Vdv9yzvvfdePPTQQxER+VMPIjZ8uG3mzJkREfGJT3yiIPP28Mtf/jJGjRoVY8eOjZtuuin/Sn/s2LH50yKaX41HRFxwwQVx3nnnxYMPPljwZ7SWWr7rcu+998Yee+wRXbt2jU984hP50zYANifFMbzl+t///vdj8uTJ8fDDDxdcaaG9DjrooBg8eHAsXbo0Ghoa4uyzz44vfOELMXv27FanRURsOC94l112iWXLlsXPf/7z6NevXxxzzDGxbt26qK+vj9///vfx3HPPxYsvvhgRhWP9888/H7W1tdG/f/8YMmTIR14LeerUqTF79uz44IMP4tFHH41TTz01vvjFL0anTp3i1ltvjUcffTQiNrwb3PJ/2Ws5F33nO9+JlStXxpNPPplffmMt8z3yyCNxxBFHRLdu3WLMmDGtTre49NJLo0uXLtGzZ8+49NJL8/effPLJBft/5pln4v33348zzzwzjjjiiPjxj3/c6h3itvb/v//3/44TTjghunfvHuPGjdvksakIJbloW+Laew3Kja1atSrbbbfdWl3D77DDDmvzGpDtuQblpnJtTsvtbOprc9fZbe91hFtqa/mW14/cf//9W+Xo0qVLwXF+8cUXs86dO7dabtSoUW1m//Of/5x16tTpY3ftRKBjjOGtbeo6wn/84x9bjZ+dOnXKDj300Db309YY39K9997b5ng8ZsyYNrc3a9asrKqqapOPceP9HHzwwa2W2fi6yG355S9/mXXr1m2T++nWrVt21113FayzfPnyrFevXq2WHT16dJv7XrZsWZuPpfk52PL5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ill47dq12ypHxXq3flWseXt1qWOUjaamplJHKCuOR2vGETbHc6Q1c00hY2shx6O19o4jRRXhpUuXdijMx9n88x8rdQTKWENDQ6kjlJ2lS5fGQQcdVOoYlDFzTWvmGj6Kuaa19s41nbIsy9q70ZUrV8a8efNi8ODBUVVVtUUBgbSsXbs2li5dGjU1NdGnT59Sx6GMmWuAjip2rimqCAMAwMeFD8sBAJAkRRgAgCQpwgAAJEkRBgAgSYowAABJUoQBAEiSIgwAQJIUYQAAkqQIAwCQJEUYAIAkKcIAACRJEQYAIEmKMAAASVKEAQBIkiIMAECSFGEAAJKkCH+MHXnkkdGpU6fo1KlT1NfXlzoOAEUwhsO2pwhvB8OGDcsPZpv7mjt3bqnjtsuzzz4b//N//s+YMGFC7L777pHL5WKXXXaJk046Kerq6tq1jfr6+oLHXq4WLlwYU6dOjalTp1bM7wfYeozhrU2dOrXdx+Scc87Z9g9oK2ke66+//vqi13399dfj0ksvjQMOOCB69+4d3bt3j+HDh8eUKVPiueee2+Js9fX1+Xy1tbVbvL1i1dbW5vf/sXphlrHNDR06NIuIdn09/vjjW22/f/7zn7O6urqsrq4uW7NmzVbbbpZl2Ze//OVNPobOnTtn995772a38eqrrxasV65uu+22fMYrrrii1HGA7cwY3toVV1zR7mMyefLkrZp9W2rOPHTo0KLWmzdvXtavX7+PPKY/+tGPtijb448/XtJjOnny5G3yPC+1LlupT/MRZs6cGWvWrMnfPu2006KxsTEiIm644YYYO3Zs/mdjxoxpcxurV6+Onj17FrXfTW1ra6muro4vfvGLMXHixHjrrbfiyiuvjJdeeinWr18fF198cZx66qnbdP8A24MxvLVzzz03jj766PztadOmxW233RYREccff3xcdtll+Z8NGDBgi7N25PhtL6+99lqccsop8dZbb0VExOGHHx4XXXRR9OrVK+65556YNm1arF+/Pr7xjW/EyJEj44QTTihxYgqUuomnqOW7Cy1fVbV8h7SmpiabN29eNn78+Kxbt275V3+33HJLduyxx2aDBw/OevTokVVVVWUjR47Mvv71r2fLli0r2E9NTU1+e6+++mqb+5g/f3525JFHZt27d88GDBiQXX755dm6des2+xjq6uqy1atXF9y3cOHCglfAr7/++kduY1PvCBebceN3bKdPn57ts88+WVVVVTZ69OjszjvvLNjvpl7VtvXO70e9E+TdYUiTMby1lu8Qb/xu5fe///2spqYm23333bNu3bpl3bt3z0aPHp1dfvnlrTK0PLZLlizJTj311GzHHXfMhg0bll9m7ty52bhx47Kqqqps+PDh2Y033viRf7l75ZVXsvPOOy8bMmRIlsvlsl122SU7/fTTsxdffLHN/Bt/be7d4QsuuCC/7N57793q3ftzzjkn//MxY8a0uc/bbrstf39b7/y2fC5s/NW8TMu5bc6cOdl3vvOdbODAgVm3bt2yww8/PHvmmWc2eaxb2niO3Hiu3vir0t8d9o5wmfrLX/4Sxx13XMG7EBERM2bMiDlz5hTct3jx4rjpppvi0UcfjQULFkS3bt3atY+XX345ampq4v3334+IiPfffz+uueaaGDZsWJx33nkfue7EiRNb3bfnnnsW3O7Ro0e7cmzNjHfddVe89NJL+duLFi2KL3zhC9GpU6f4/Oc/v8V5ANrDGP6h22+/vWBcjtgwNl9zzTXx5JNPxmOPPdbmepMmTYpXXnklIiL69u0bERF/+MMf4rjjjou1a9dGRMQrr7wSF1xwQRxwwAFtbmPBggXxqU99KlauXJm/b9myZXHPPffEQw89FI8++mgccsghW/T47r///vz3F1xwQVRVVRX8/Fvf+lbcfvvtERHx/PPPxyuvvBLDhw/fon1uzgUXXFBwzOvq6mLSpEnxpz/9Kfbaa69tuu9K48NyZaqhoSEGDRoUd9xxRzz00ENxyimnRETE5z73uZg2bVrMmjUr5s6dG7NmzYqzzz47IjYMLPfdd1+79/H3v/89DjrooPjVr34VF154Yf7+n/70px3KfO+99+a/P/zww6NXr14d2s6WZHzppZfioosuilmzZsVZZ52Vv//iiy+ODz74oOj9z5w5s+BPfFOmTIm6urqoq6uLc889t+jtAWkwhn/o/PPPj+nTp8dDDz0Uc+fOjV//+tf50wMef/zxePLJJ9tc7/XXX49rr7025syZkx+HL7744nwJnjRpUjzwwANx5ZVXxvPPP99q/SzLYvLkyfkS/K1vfSvmzJkTP/jBD2KHHXaId999N6ZMmRJZlsW5555b8CHB6urq/Fg/c+bMTT62d955J1577bX87QMPPLDVMvvuu2907do1f/vFF1/c5PY25cYbb4wbbrghf/v444/P57v88stbLb906dL40Y9+FLW1tTFu3LiIiFi1alVceumlRe97t912i7q6ujj++OPz991www35/bc8NagSeUe4THXu3DkefPDB2HvvvQvuP/roo+O73/1u/Pa3v42Ghob8gNDs6aefjjPPPLNd+8jlcnHvvffGgAED4sQTT4xbbrkl3nvvvVi8eHHReZ955pm44IILIiKiqqoqrrvuuqK3sTUyHnbYYflP+x533HHxu9/9Lv76179GY2Nj/OEPf4jDDz+8qP2PGzcuXnjhhfztIUOGtPlOCkBLxvAPHXPMMXH11VfHE088Ea+//nqrNyWefvrpmDBhQqv1rrvuuvjSl76Uv/3GG2/EU089lc84Y8aM2HnnnePEE0+MRYsWxV133VWw/nPPPZcfvw888MD8i5EJEybEIYccEk899VS8+OKLsWDBgjj44INjyJAh+XWrqqraNdavWrWq4PYuu+zSaplOnTrFzjvvnD+v/O23397sdjc2ZsyYePPNN/O3d91114/M981vfjP/4mifffbJvwv80EMPxQcffFBQzDen+VjsuuuuBXk+LnOhIlym9txzz1YD6DvvvBMTJkwoePW5sZZ//tmcUaNG5T/E0Llz5+jbt2+89957RW0jIuKJJ56IT3/607Fq1aro0qVL/PKXv4yDDz64qG1srYyf/OQn89/vsMMOcfDBB8df//rXiNjwJ7RiizBARxjDN1iyZElMmDChVWFsaVN5TzrppILbzadJRESMGDEidt555/ztQw89tFURfvnll/PfL1y4cJPj/6JFizr8eHfccceC28uWLWt16kGWZQUldqeddurQvorRci7cc889o2/fvvHWW2/FmjVroqGhIYYOHbrNM1QKp0aUqbY+ZXv//ffnB9BRo0bF3XffHXV1dQWv3NevX9/ufTSfc9WsS5fiXxfNmTMnjjvuuFi1alVUVVXFzJkz4zOf+UzR29mULc3Y1vWJW963bt26/PfLly8vMh1A24zhG/zsZz/Ll+BDDz00amtro66uLi655JL8Mpt6zB91tYmtee351atXd3jd3r17x6BBg/K3Fy5c2GqZF198seBd8H322Scitu9cZC7cNEW4TLX1pP3b3/6W//5rX/tanH766TFx4sRWH8bYXu6///446aST4r333ouePXvGrFmz4uSTTy5Jlmbz58/Pf79u3bp4+umn87ebP5zQ8tV485+qIiIeeeSRNrfZufOH/0yKmaSAdBnDN2j5mC+77LI4+eSTY+LEie06PWDjYzhixIj89//5n/+Zv1xZRORPmWip5TuzNTU1kWVZq6/Vq1fHl7/85Vb7LGasbz7lIiLi5ptvjqampoKfX3vttfnvx4wZs13mopZz4eLFi2PFihUREdGtW7cYOHDgJvf/zjvvxO9///st3n8lcWpEBWn5p4xp06bF8OHDY/HixXH11Vdv9ywzZsyIz3/+87Fu3bro1KlTXHHFFVFVVRVPPPFEfplPfOITrT49u6098cQTcfHFF8cxxxwTd911V/60iAEDBsT48eMjImLkyJH55b/zne/EypUr48knn4xHH320zW22fNflkUceiSOOOCK6desWY8aM2S5/4gI+HlIcw1s+5htuuCFyuVz88Y9/jFtvvbXobe2yyy4xYcKEePLJJ2PNmjVxxhlnxIUXXhgLFiyIe+65p9XyBxxwQOy3337xwgsvxLx58+Lss8+O0047Lbp27Rr19fUxf/78uP/++wsKdd++fWPFihXR0NAQd955ZwwdOjQGDBjQ6ooaLV1yySVxxx13xMqVK2PRokVxzDHHxEUXXRQ9e/aMmTNnxrRp0/LLfu9738t/33Iuuvbaa6NXr16xePHiguVbajkXPfHEE/Hwww9H7969Y6+99io4fzdiw/nVAwYMiCFDhsQ111yTv//444/Pnx88cuTI/P94d/bZZ8dnP/vZmD59+iZPVWm5/zvuuCN22GGH2GGHHSr/XOHSXbktXe29BuXGVq1ale22226truF32GGHtXn9xvZcg3JTuTan5XUGN/XVvM9Nae91hDeXseX1I8eMGdNmlunTp+eXX758edarV69Wy4wePbrN61AuW7Ysq6qq+thdOxHoGGN4a5u6jvCSJUuyHj16fORjbjnebu4xPPXUU1kul2u1vf3337/N7T3zzDNZnz59PvJxtvTZz3621c/b87+4PfbYYx+5n86dO2fXXnttwTpNTU3ZkCFDPnIuarnvDz74IKuurm61fPM1iFv+Tlsej+avXr16ZYsWLcpvb/bs2a2W6dKlSzZy5Mg2n98PPPDAZo9fJXJqRAXp3bt3/OY3v4mjjjoqevXqFbvvvntcddVVcdVVV5U6Wtk49dRT4+6774599903crlc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3l6xamtr8/v/OL0w61LqAGw7N954Y7z99tsREbHbbrtt1W0/99xzceeddxbc9+abb8Zjjz0Wjz32WCxZsiQuvfTSrbrPUlm4cGFceeWV+dtHHnlk6cIAyTCGb3/NY/3QoUPjG9/4RrvX+93vfhef+cxnYsWKFQX3v/rqq/Hqq6/Gz3/+87juuuviwgsv7HC2+vr6fL7JkyfHKaec0uFtdURtbW387Gc/i4gN8+CwYcO26/63FUV4O5g5c2asWbMmf/u0006LxsbGiIi44YYbYuzYsfmfjRkzps1trF69Onr27FnUfje1ra2hX79+8aUvfSmOOOKI2G233WLFihVx3XXXxVNPPRURGx5XioMo8PFjDG/t3HPPjaOPPjp/e9q0aXHbbbdFRMTxxx8fl112Wf5nAwYM2OK8HTl+28trr70Wp5xySrz11lsREXH44YfHRRddFL169Yp77rknpk2bFuvXr49vfOMbMXLkyDjhhBNKnJgCGdvd0KFDs4jIIiJ7/PHH8/e/+uqr+ftramqyefPmZePHj8+6deuWTZ48OcuyLLvllluyY489Nhs8eHDWo0ePrKqqKhs5cmT29a9/PVu2bFnBfmpqavLbe/XVV9vcx/z587Mjjzwy6969ezZgwIDs8ssvz9atW9ehx/Xss8/mt92zZ8/NLt8yS8unYrEZb7vttvzyV1xxRTZ9+vRsn332yaqqqrLRo0dnd955Z8F+J0+e3Obx33g7WVb4u9r4q3kZIC3G8NauuOKK/LrNj7XZ97///aympibbfffds27dumXdu3fPRo8enV1++eXZ6tWrC5ZteWyXLFmSnXrqqdmOO+6YDRs2LL/M3Llzs3HjxmVVVVXZ8OHDsxtvvLHN8bvZK6+8kp133nnZkCFDslwul+2yyy7Z6aefnr344ott5t/4a+jQoR/52C+44IL8snvvvXe2Zs2agp+fc845+Z+PGTOmzX3edttt+fsff/zxVsey5XNh46/mZVrObXPmzMm+853vZAMHDsy6deuWHX744dkzzzyzyWPd0sZz5MZz9cZfLf8NVCLvCJepv/zlL3HccccVvAsRETFjxoyYM2dOwX2LFy+Om266KR599NFYsGBBdOvWrV37ePnll6Ompibef//9iIh4//3345prrolhw4bFeeed1+6s69evj8bGxvjpT3+av2/SpEntXn9rZrzrrrvipZdeyt9etGhRfOELX4hOnTrF5z//+a2SCWBzjOEfuv322wvG5YgNY/M111wTTz75ZDz22GNtrjdp0qR45ZVXIiKib9++ERHxhz/8IY477rhYu3ZtRES88sorccEFF8QBBxzQ5jYWLFgQn/rUp2LlypX5+5YtWxb33HNPPPTQQ/Hoo4/GIYccskWP7/77789/f8EFF0RVVVXBz7/1rW/F7bffHhEbzs1+5ZVXYvjw4Vu0z8254IILCo55XV1dTJo0Kf70pz/FXnvttU33XWl8WK5MNTQ0xKBBg+KOO+6Ihx56KH8u0Oc+97mYNm1azJo1K+bOnRuzZs2Ks88+OyI2DCz33Xdfu/fx97//PQ466KD41a9+VXDeUsvBcHPGjx8fO+ywQ+y+++7xk5/8JDp16hQnnnhi3Hrrre3extbM+NJLL8VFF10Us2bNirPOOit//8UXXxwffPBB0fufOXNmwZ/4pkyZEnV1dVFXVxfnnntu0dsD0mAM/9D5558f06dPj4ceeijmzp0bv/71r/OnBzz++OPx5JNPtrne66+/Htdee23MmTMnPw5ffPHF+RI8adKkeOCBB+LKK6+M559/vtX6WZbF5MmT8yX4W9/6VsyZMyd+8IMfxA477BDvvvtuTJkyJbIsi3PPPTfq6ury61ZXV+fH+pkzZ27ysb3zzjvx2muv5W8feOCBrZbZd999o2vXrvnbL7744ia3tyk33nhj3HDDDfnbxx9/fD7f5Zdf3mr5pUuXxo9+9KOora2NcePGRUTEqlWrOnTK4m677RZ1dXVx/PHH5++74YYb8vtveWpQJfKOcJnq3LlzPPjgg7H33nsX3H/00UfHd7/73fjtb38bDQ0N+QGh2dNPPx1nnnlmu/aRy+Xi3nvvjQEDBsSJJ54Yt9xyS7z33nuxePHiLcrdpUuXWL9+fYe3sSUZDzvssPynfY877rj43e9+F3/961+jsbEx/vCHP8Thhx9e1P7HjRsXL7zwQv72kCFDYuLEiR1+PEAajOEfOuaYY+Lqq6+OJ554Il5//fVWb0o8/fTTMWHChFbrXXfddfGlL30pf/uNN97In8NcVVUVM2bMiJ133jlOPPHEWLRoUdx1110F6z/33HP58fvAAw/MvxiZMGFCHHLIIfHUU0/Fiy++GAsWLIiDDz44hgwZkl+3qqqqXWP9qlWrCm7vsssurZbp1KlT7Lzzzvnzyps/AFmMMWPGxJtvvpm/veuuu35kvm9+85v5F0f77LNP/l3ghx56KD744IOCYr45zcdi1113LcjzcZkLFeEyteeee7YaQN95552YMGFCwavPjbX888/mjBo1Kv8hhs6dO0ffvn3jvffeK2ob//7v/x5vvfVWLF26NP7t3/4tnnzyyaitrY3XXnst/vSnP7V7O1sr4yc/+cn89zvssEMcfPDB8de//jUiNvwJrdgiDNARxvANlixZEhMmTGhVGFvaVN6TTjqp4HbzaRIRESNGjIidd945f/vQQw9tVYRffvnl/PcLFy7c5Pi/aNGiOPjggzeZ76PsuOOOBbeXLVvW6tSDLMsKSuxOO+3UoX0Vo+VcuOeee0bfvn3jrbfeijVr1kRDQ0MMHTp0m2eoFE6NKFNtfcr2/vvvzw+go0aNirvvvjvq6uriuuuuyy9TzKv45nOumnXpUvzrov333z9qamrirLPOit/85jf5c9uefvrpgkGoo7Y0Y1vXJ25537p16/LfL1++vMh0AG0zhm/ws5/9LF+CDz300KitrY26urq45JJL8sts6jF/1NUmtua151evXt3hdXv37h2DBg3K3164cGGrZV588cWCd8H32WefiNi+c5G5cNMU4TLV1pP2b3/7W/77r33ta3H66afHxIkTW30YY3to/nDGxlrmLuZdia1l/vz5+e/XrVsXTz/9dP5284cTWr4ab/5TVUTEI4880uY2O3f+8J/J1vxzIfDxZQzfoOVjvuyyy+Lkk0+OiRMntuv0gI2P4YgRI/Lf/+d//mf+cmURkT9loqWW78zW1NRElmWtvlavXh1f/vKXW+2zmLG+5fV8b7755mhqair4+bXXXpv/fsyYMdtlLmo5Fy5evDh/feNu3brFwIEDN7n/d955J37/+99v8f4riVMjKkjLP2VMmzYthg8fHosXL46rr756u2cZN25cjB8/PiZOnBhDhgyJN954I3784x/nB9fu3bvH6NGjt3uuJ554Ii6++OI45phj4q677sqfFjFgwIAYP358RESMHDkyv/x3vvOdWLlyZTz55JPx6KOPtrnNlu+6PPLII3HEEUdEt27dYsyYMdvlT1zAx0OKY3jLx3zDDTdELpeLP/7xjx36MN4uu+wSEyZMiCeffDLWrFkTZ5xxRlx44YWxYMGCuOeee1otf8ABB8R+++0XL7zwQsybNy/OPvvsOO2006Jr165RX18f8+fPj/vvv7+gUPft2zdWrFgRDQ0Nceedd8bQoUNjwIABseeee24y1yWXXBJ33HFHrFy5MhYtWhTHHHNMXHTRRdGzZ8+YOXNmTJs2Lb/s9773vfz3Leeia6+9Nnr16hWLFy8uWL6llnPRE088EQ8//HD07t079tprr4LzdyM2nF89YMCAGDJkSFxzzTX5+48//vj8+cEjR47M/493Z599dnz2s5+N6dOnb/IFUMv933HHHbHDDjvEDjvsUPnnCpfuym3pau81KDe2atWqbLfddmt1Db/DDjuszes3tucalJvKVcxjaOvr5ptv3uw22nsd4c1lbHn9yDFjxrSZZ/r06fnlly9fnvXq1avVMqNHj27zOpTLli3LqqqqPnbXTgQ6xhje2qauI7xkyZKsR48eH/mYW463m3sMTz31VJbL5Vptb//9929ze88880zWp0+fj3ysLX32s5/d5HV6P8pjjz32kfvp3Llzdu211xas09TUlA0ZMuQj56KW+/7ggw+y6urqVss3X4O45fV/Wx6P5q9evXplixYtym9v9uzZrZbp0qVLNnLkyDaf3w888MBmj18lcmpEBendu3f85je/iaOOOip69eoVu+++e1x11VVx1VVXbfcs//iP/xjHHntsDBo0KKqqqiKXy8WwYcPi85//fPzud7+Lr371q9s9U0TEqaeeGnfffXfsu+++kcvlYu+9947p06cXXEpt5513jtra2th///0jl8vFiBEj4uabby44Z62l/v37R21tbYwdOza6d+++vR4K8DGT4hg+ZMiQmDNnThxyyCHRvXv3GDFiRPz4xz8u6jrHLY0fPz5mz54d48aNy2e+/vrrCy5n2aNHj/z3Bx10UCxcuDDOP//8GD58eORyuejTp0/st99+cf7557f6S+BNN90Up59+eptXf/gokyZNikWLFsW3v/3t2G+//aJnz55RVVUVw4YNi8mTJ8fTTz8d3/zmNwvW6dq1a9TW1sahhx4auVwuBg0aFFdeeWXBZdJa6tKlS/z617+OiRMnRu/evT8yzw9/+MOYOnVq7L777vmrPjz++OMxatSo/DLHHntsXH/99fnnwCGHHBKzZ8+Oww47rM1tnnjiifGv//qvMWLEiA6dj16uOmVZlpU6BGyJ22+/PaZMmRIREVdc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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with open('/kaggle/input/competitions/neurogolf-2026/task151.json') as f:\n", " task151 = json.load(f)\n", "\n", "fig, axes = plt.subplots(3, 2, figsize=(8, 8))\n", "for i in range(3):\n", " plot_arc_grid(task151['train'][i]['input'], axes[i, 0], f'Train {i+1} Input')\n", " plot_arc_grid(task151['train'][i]['output'], axes[i, 1], f'Train {i+1} Target Output')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "b5293b29", "metadata": { "papermill": { "duration": 0.007512, "end_time": "2026-05-31T09:46:19.605236+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.597724+00:00", "status": "completed" }, "tags": [] }, "source": [ "Notice the pattern: there is always a vertical line of one color and a horizontal line of another. Where they intersect, a 3×3 Yellow block appears, but the center pixel keeps its original line color.\n", "\n", "This is still solvable with a **single 3×3 Conv** — the same architecture as task 015! — but the weights are no longer simple $\\pm 1.0$ patterns. Instead, we train the convolution, and the resulting weights are floating-point values.\n", "\n", "### What is the Bias?\n", "\n", "In a standard Conv, each output channel also gets a **bias** term — a single scalar added to every pixel of that output channel:\n", "\n", "$$\\text{Output}_c(x, y) = \\sum_{i=0}^{9} \\sum_{r=-1}^{1} \\sum_{c=-1}^{1} \\text{Input}_i(x+r, y+c) \\cdot W_c[i, r, c] \\; + \\; \\text{Bias}[c]$$\n", "\n", "The bias shifts the *baseline activation* for a channel. In task 015 we had no bias (it defaults to 0), for task 151, we need to introduce them." ] }, { "cell_type": "markdown", "id": "effb073e", "metadata": { "papermill": { "duration": 0.007581, "end_time": "2026-05-31T09:46:19.620269+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.612688+00:00", "status": "completed" }, "tags": [] }, "source": [ "### Building and Running the Task 151 Model\n", "\n", "The only difference from task 015 is that we pass `\"B\"` as the third input to the Conv node, and include the bias tensor in the initializers. The trained kernel weights replace our hand-crafted ±1.0 patterns." ] }, { "cell_type": "code", "execution_count": 11, "id": "10cc41c1", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:19.638965Z", "iopub.status.busy": "2026-05-31T09:46:19.638644Z", "iopub.status.idle": "2026-05-31T09:46:19.675691Z", "shell.execute_reply": "2026-05-31T09:46:19.674809Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.048982, "end_time": "2026-05-31T09:46:19.677063+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.628081+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bias vector (10 output channels):\n", " [0] black : -0.0100\n", " [1] blue : -0.0100\n", " [2] red : -0.0100\n", " [3] green : -0.0100\n", " [4] yellow : -0.0133\n", " [5] gray : -0.0100\n", " [6] magenta : -0.0100\n", " [7] orange : -0.0100\n", " [8] teal : -0.0100\n", " [9] maroon : -0.0100\n", "\n", "Total params: 910 (900 weights + 10 biases)\n" ] } ], "source": [ "# Build the task151 model using trained weights from src/task151.py\n", "import sys, os\n", "sys.path.insert(0, os.path.abspath('..'))\n", "\n", "# Copy the model-building code from src/task151.py\n", "W = np.zeros((10, 10, 3, 3), dtype=np.float32)\n", "W[0, 0, 1, 1] = 0.03999999911\n", "W[0, 1, 0, 1] = -0.01999999955\n", "W[0, 1, 1, 0] = -0.01999999955\n", "W[0, 1, 1, 2] = -0.01999999955\n", "W[0, 1, 2, 1] = -0.01999999955\n", "W[0, 2, 0, 1] = -0.01999999955\n", "W[0, 2, 1, 0] = -0.01999999955\n", "W[0, 2, 1, 2] = -0.01999999955\n", "W[0, 2, 2, 1] = -0.01999999955\n", "W[0, 3, 0, 1] = -0.01999999955\n", "W[0, 3, 1, 0] = -0.01999999955\n", "W[0, 3, 1, 2] = -0.01999999955\n", "W[0, 3, 2, 1] = -0.01999999955\n", "W[0, 5, 0, 1] = -0.01999999955\n", "W[0, 5, 1, 0] = -0.01999999955\n", "W[0, 5, 1, 2] = -0.01999999955\n", "W[0, 5, 2, 1] = -0.01999999955\n", "W[0, 6, 0, 1] = -0.01999999955\n", "W[0, 6, 1, 0] = -0.01999999955\n", "W[0, 6, 1, 2] = -0.01999999955\n", "W[0, 6, 2, 1] = -0.01999999955\n", "W[0, 7, 0, 1] = -0.01999999955\n", "W[0, 7, 1, 0] = -0.01999999955\n", "W[0, 7, 1, 2] = -0.01999999955\n", "W[0, 7, 2, 1] = -0.01999999955\n", "W[0, 8, 0, 1] = -0.01999999955\n", "W[0, 8, 1, 0] = -0.01999999955\n", "W[0, 8, 1, 2] = -0.01999999955\n", "W[0, 8, 2, 1] = -0.01999999955\n", "W[0, 9, 0, 1] = -0.01999999955\n", "W[0, 9, 1, 0] = -0.01999999955\n", "W[0, 9, 1, 2] = -0.01999999955\n", "W[0, 9, 2, 1] = -0.01999999955\n", "W[1, 1, 1, 1] = 0.01999999955\n", "W[1, 2, 0, 0] = -0.01999999955\n", "W[1, 2, 2, 2] = -0.01999999955\n", "W[1, 3, 0, 2] = -0.01999999955\n", "W[1, 3, 2, 0] = -0.01999999955\n", "W[1, 5, 0, 0] = -0.01999999955\n", "W[1, 5, 2, 2] = -0.01999999955\n", "W[1, 6, 0, 2] = -0.01999999955\n", "W[1, 6, 2, 0] = -0.01999999955\n", "W[1, 7, 0, 2] = -0.01999999955\n", "W[1, 7, 2, 0] = -0.01999999955\n", "W[1, 8, 0, 0] = -0.01999999955\n", "W[1, 8, 2, 2] = -0.01999999955\n", "W[1, 9, 0, 0] = -0.01999999955\n", "W[1, 9, 2, 2] = -0.01999999955\n", "W[2, 1, 0, 2] = -0.01999999955\n", "W[2, 1, 2, 0] = -0.01999999955\n", "W[2, 2, 1, 1] = 0.01999999955\n", "W[2, 3, 0, 0] = -0.01999999955\n", "W[2, 3, 2, 2] = -0.01999999955\n", "W[2, 5, 0, 2] = -0.01999999955\n", "W[2, 5, 2, 0] = -0.01999999955\n", "W[2, 6, 0, 2] = -0.01999999955\n", "W[2, 6, 2, 0] = -0.01999999955\n", "W[2, 7, 0, 0] = -0.01999999955\n", "W[2, 7, 2, 2] = -0.01999999955\n", "W[2, 8, 0, 2] = -0.01999999955\n", "W[2, 8, 2, 0] = -0.01999999955\n", "W[2, 9, 0, 2] = -0.01999999955\n", "W[2, 9, 2, 0] = -0.01999999955\n", "W[3, 1, 0, 2] = -0.01999999955\n", "W[3, 1, 2, 0] = -0.01999999955\n", "W[3, 2, 0, 2] = -0.01999999955\n", "W[3, 2, 2, 0] = -0.01999999955\n", "W[3, 3, 1, 1] = 0.01999999955\n", "W[3, 5, 0, 0] = -0.01999999955\n", "W[3, 5, 2, 2] = -0.01999999955\n", "W[3, 6, 0, 0] = -0.01999999955\n", "W[3, 6, 2, 2] = -0.01999999955\n", "W[3, 7, 0, 0] = -0.01999999955\n", "W[3, 7, 2, 2] = -0.01999999955\n", "W[3, 8, 0, 2] = -0.01999999955\n", "W[3, 8, 2, 0] = -0.01999999955\n", "W[3, 9, 0, 0] = -0.01999999955\n", "W[3, 9, 2, 2] = -0.01999999955\n", "W[4, 0, 0, 0] = -0.006666666828\n", "W[4, 0, 0, 1] = -0.02333333343\n", "W[4, 0, 0, 2] = -0.006666666828\n", "W[4, 0, 1, 0] = -0.02333333343\n", "W[4, 0, 1, 1] = -0.003333333414\n", "W[4, 0, 1, 2] = -0.02333333343\n", "W[4, 0, 2, 0] = -0.006666666828\n", "W[4, 0, 2, 1] = -0.02333333343\n", "W[4, 0, 2, 2] = -0.006666666828\n", "W[4, 1, 0, 0] = 0.02666666731\n", "W[4, 1, 0, 2] = 0.02666666731\n", "W[4, 1, 1, 1] = 0.02999999933\n", "W[4, 1, 2, 0] = 0.02666666731\n", "W[4, 1, 2, 2] = 0.02666666731\n", "W[4, 2, 0, 0] = 0.02666666731\n", "W[4, 2, 0, 2] = 0.02666666731\n", "W[4, 2, 1, 1] = 0.02999999933\n", "W[4, 2, 2, 0] = 0.02666666731\n", "W[4, 2, 2, 2] = 0.02666666731\n", "W[4, 3, 0, 0] = 0.02666666731\n", "W[4, 3, 0, 2] = 0.02666666731\n", "W[4, 3, 1, 1] = 0.02999999933\n", "W[4, 3, 2, 0] = 0.02666666731\n", "W[4, 3, 2, 2] = 0.02666666731\n", "W[4, 5, 0, 0] = 0.02666666731\n", "W[4, 5, 0, 2] = 0.02666666731\n", "W[4, 5, 1, 1] = 0.02999999933\n", "W[4, 5, 2, 0] = 0.02666666731\n", "W[4, 5, 2, 2] = 0.02666666731\n", "W[4, 6, 0, 0] = 0.02666666731\n", "W[4, 6, 0, 2] = 0.02666666731\n", "W[4, 6, 1, 1] = 0.02999999933\n", "W[4, 6, 2, 0] = 0.02666666731\n", "W[4, 6, 2, 2] = 0.02666666731\n", "W[4, 7, 0, 0] = 0.02666666731\n", "W[4, 7, 0, 2] = 0.02666666731\n", "W[4, 7, 1, 1] = 0.02999999933\n", "W[4, 7, 2, 0] = 0.02666666731\n", "W[4, 7, 2, 2] = 0.02666666731\n", "W[4, 8, 0, 0] = 0.02666666731\n", "W[4, 8, 0, 2] = 0.02666666731\n", "W[4, 8, 1, 1] = 0.02999999933\n", "W[4, 8, 2, 0] = 0.02666666731\n", "W[4, 8, 2, 2] = 0.02666666731\n", "W[4, 9, 0, 0] = 0.02666666731\n", "W[4, 9, 0, 2] = 0.02666666731\n", "W[4, 9, 1, 1] = 0.02999999933\n", "W[4, 9, 2, 0] = 0.02666666731\n", "W[4, 9, 2, 2] = 0.02666666731\n", "W[5, 1, 0, 2] = -0.01999999955\n", "W[5, 1, 2, 0] = -0.01999999955\n", "W[5, 2, 0, 2] = -0.01999999955\n", "W[5, 2, 2, 0] = -0.01999999955\n", "W[5, 3, 0, 0] = -0.01999999955\n", "W[5, 3, 2, 2] = -0.01999999955\n", "W[5, 5, 1, 1] = 0.01999999955\n", "W[5, 6, 0, 2] = -0.01999999955\n", "W[5, 6, 2, 0] = -0.01999999955\n", "W[5, 7, 0, 0] = -0.01999999955\n", "W[5, 7, 2, 2] = -0.01999999955\n", "W[5, 8, 2, 0] = -0.01999999955\n", "W[5, 8, 2, 2] = -0.01999999955\n", "W[5, 9, 0, 0] = -0.01999999955\n", "W[5, 9, 2, 2] = -0.01999999955\n", "W[6, 1, 0, 2] = -0.01999999955\n", "W[6, 1, 2, 0] = -0.01999999955\n", "W[6, 2, 0, 2] = -0.01999999955\n", "W[6, 2, 2, 0] = -0.01999999955\n", "W[6, 3, 0, 0] = -0.01999999955\n", "W[6, 3, 2, 2] = -0.01999999955\n", "W[6, 5, 0, 2] = -0.01999999955\n", "W[6, 5, 2, 0] = -0.01999999955\n", "W[6, 6, 1, 1] = 0.01999999955\n", "W[6, 7, 0, 0] = -0.01999999955\n", "W[6, 7, 2, 2] = -0.01999999955\n", "W[6, 8, 0, 2] = -0.01999999955\n", "W[6, 8, 2, 0] = -0.01999999955\n", "W[6, 9, 0, 2] = -0.01999999955\n", "W[6, 9, 2, 0] = -0.01999999955\n", "W[7, 1, 0, 2] = -0.01999999955\n", "W[7, 1, 2, 0] = -0.01999999955\n", "W[7, 2, 0, 2] = -0.01999999955\n", "W[7, 2, 2, 0] = -0.01999999955\n", "W[7, 3, 0, 0] = -0.01999999955\n", "W[7, 3, 2, 2] = -0.01999999955\n", "W[7, 5, 0, 2] = -0.01999999955\n", "W[7, 5, 2, 0] = -0.01999999955\n", "W[7, 6, 0, 2] = -0.01999999955\n", "W[7, 6, 2, 0] = -0.01999999955\n", "W[7, 7, 1, 1] = 0.01999999955\n", "W[7, 8, 0, 2] = -0.01999999955\n", "W[7, 8, 2, 0] = -0.01999999955\n", "W[7, 9, 0, 2] = -0.01999999955\n", "W[7, 9, 2, 0] = -0.01999999955\n", "W[8, 1, 0, 2] = -0.01999999955\n", "W[8, 1, 2, 0] = -0.01999999955\n", "W[8, 2, 0, 2] = -0.01999999955\n", "W[8, 2, 2, 0] = -0.01999999955\n", "W[8, 3, 0, 0] = -0.01999999955\n", "W[8, 3, 2, 2] = -0.01999999955\n", "W[8, 5, 0, 2] = -0.01999999955\n", "W[8, 5, 2, 2] = -0.01999999955\n", "W[8, 6, 0, 0] = -0.01999999955\n", "W[8, 6, 2, 2] = -0.01999999955\n", "W[8, 7, 0, 2] = -0.01999999955\n", "W[8, 7, 2, 0] = -0.01999999955\n", "W[8, 8, 1, 1] = 0.01999999955\n", "W[8, 9, 0, 0] = -0.01999999955\n", "W[8, 9, 2, 2] = -0.01999999955\n", "W[9, 1, 0, 2] = -0.01999999955\n", "W[9, 1, 2, 0] = -0.01999999955\n", "W[9, 2, 0, 2] = -0.01999999955\n", "W[9, 2, 2, 0] = -0.01999999955\n", "W[9, 3, 0, 0] = -0.01999999955\n", "W[9, 3, 2, 2] = -0.01999999955\n", "W[9, 5, 0, 2] = -0.01999999955\n", "W[9, 5, 2, 0] = -0.01999999955\n", "W[9, 6, 0, 2] = -0.01999999955\n", "W[9, 6, 2, 0] = -0.01999999955\n", "W[9, 7, 0, 0] = -0.01999999955\n", "W[9, 7, 2, 2] = -0.01999999955\n", "W[9, 8, 0, 2] = -0.01999999955\n", "W[9, 8, 2, 0] = -0.01999999955\n", "W[9, 9, 1, 1] = 0.01999999955\n", "\n", "B = np.array([-0.01, -0.01, -0.01, -0.01, -0.01333333333,\n", " -0.01, -0.01, -0.01, -0.01, -0.01], dtype=np.float32)\n", "\n", "print(\"Bias vector (10 output channels):\")\n", "for i, (name, val) in enumerate(zip(\n", " ['black','blue','red','green','yellow','gray','magenta','orange','teal','maroon'], B)):\n", " print(f\" [{i}] {name:8s}: {val:+.4f}\")\n", "\n", "input_info = helper.make_tensor_value_info('input', TensorProto.FLOAT, [1, 10, 30, 30])\n", "output_info = helper.make_tensor_value_info('output', TensorProto.FLOAT, [1, 10, 30, 30])\n", "W_init = helper.make_tensor('W', TensorProto.FLOAT, [10, 10, 3, 3], W.flatten().tolist())\n", "B_init = helper.make_tensor('B', TensorProto.FLOAT, [10], B.tolist())\n", "conv_node = helper.make_node('Conv', ['input', 'W', 'B'], ['output'],\n", " kernel_shape=[3, 3], pads=[1, 1, 1, 1])\n", "graph = helper.make_graph([conv_node], 'task151', [input_info], [output_info], [W_init, B_init])\n", "model151 = helper.make_model(graph, opset_imports=[helper.make_operatorsetid('', 11)])\n", "onnx.save(model151, 'task151_demo.onnx')\n", "print(f\"\\nTotal params: {900 + B.size} (900 weights + 10 biases)\")" ] }, { "cell_type": "code", "execution_count": 12, "id": "2381497d", "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2026-05-31T09:46:19.694141Z", "iopub.status.busy": "2026-05-31T09:46:19.693837Z", "iopub.status.idle": "2026-05-31T09:46:20.318831Z", "shell.execute_reply": "2026-05-31T09:46:20.318206Z" }, "jupyter": { "source_hidden": true }, "papermill": { "duration": 0.635494, "end_time": "2026-05-31T09:46:20.320206+00:00", "exception": false, "start_time": "2026-05-31T09:46:19.684712+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABgsAAASBCAYAAAAKfa7IAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAAU7pJREFUeJzs3X2Y1WWd+PEPBDMIiIggI8qzJJoYqJgiCpZmmq5maZglavTTytyy3a10XdByy31IE9tsU3F9VvBpE1RcE5zSJBd0XU3NZAidRkUEFRRc+P7+4OI0wwwyMwxzwM/rdV1zXTNnzvme+z5nmPse3jPf06EoiiIAAAAAAIC0OpZ7AAAAAAAAQHmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQWwlRo/fnx06NAhOnToEDU1NeUeDgCwBVjvAWDbY/1unWuvvbb0uE2ZMqV0+ZZ8POfMmVM69mmnndamx4YPIrEANmHQoEGlhWVTb3PmzCn3cJtl6dKl8b3vfS/GjRsXXbt2bdXCWX/BHTRo0BYb6+aaM2dOTJkyJaZMmRJPPPFEuYcDwFbKet/Yaaed1uzHpP4P/FuzZcuWlfYF1157bbmHA8Bmsn43rf7P6/XfunbtGh/5yEfiggsuiLfffnvLTaKdXXbZZaX1Hdg8nco9AKBpU6dOjeXLl0dExC677NKmx/7Tn/4UP/rRj9r0mFurOXPmxIUXXhgR6zaSI0eOLO+AAKAe6337WrZsWWlfMG7cOL9hCECrbKvr9zvvvBPPPPNMPPPMM3H33XfHI488Et27d98i99USm/t4XnbZZbFo0aKIiEbBYNSoUVFdXR0REX379t28gUICYgFswowZM+Ldd98tfXziiSdGXV1dRERcfvnlMWrUqNLnRowY0eQxVqxYEd26dWvR/W7sWG2hoqIiDj300BgzZky8+uqrcc0112yx+wKAbYH1vrHzzz8/Jk2aVPr4H//xH+Pee++NiIjTTz89zjjjjNLnBgwYsNnjbc3jB0Bu1u9Nq6qqiunTp8eaNWti3rx5cf7558d7770XTz31VFx55ZXxN3/zN+97+/ZYn7fk47nDDjvE2LFjt9jx4YPGaYhgE/bff/8YO3Zs6a2ysrL0uREjRpQu32233aJnz57RoUOHGD9+fDz88MNx0EEHxXbbbRdf//rXIyLi6quvjiOPPDIGDBgQ3bp1iy5dusSwYcPiG9/4RixZsqTB/TZ1zr6amprSZePHj4/f/e53cdhhh0XXrl2jqqoq/v7v/z7Wrl27yTnttddeMXfu3PjhD38Yo0ePbrsHKxqfD/D++++P0aNHR5cuXWLAgAFx+eWXN7j+lClTStefNm1aXHrppTF06NDo0qVL7LfffvHAAw80uP7GzmVY/zjrTyvQoUOH0m8PRqz7j40NrwMAEdb7pgwbNqzBY7LzzjuXPjdgwIAGn/vJT34SY8aMiV122SUqKyuje/fuse+++8a//Mu/xP/93/81OG790xg+9dRTccQRR0T37t3j05/+dOk6M2bMiL333ju6dOkSe++9d9x2221NrvXr/c///E+cfPLJscsuu0RFRUXsuuuuMWnSpHjppZdK1znttNNi8ODBpY/nzp3b4HEGYNtj/d60ysrKGDt2bIwbNy7+9m//Nk455ZTS59b/xv2GP8ffcccdMXLkyKisrIx//ud/bnD9v/qrv4o+ffpERUVFDB48OM4999x44403Gt3vr371q9L/BQwdOjR++tOfbnSM7/eaBffdd18cffTRpfvcdddd43Of+1wsWrSo9BoI6/+qIOIv+4wOHTo0Obf66urq4pxzzomhQ4dGZWVl9OzZM8aPHx/Tp09vcL22em5hW+AvC2AL+MMf/hBHHnlkg99wiIiYPn16zJ49u8FlL7zwQlxxxRXx4IMPxvz586NLly7Nuo/nn38+xo0bF++8805ErPtzwosvvjgGDRrU4LcAy2nOnDlx/fXXlxbNxYsXx1//9V/HXnvtFYcffnij619yySXx3HPPlT6eP39+fPrTn44HH3wwDjnkkHYbNwA0h/X+L37605/GqlWrSh+vXr06FixYEAsWLIhnnnmmyd+KXLZsWRx22GHx+uuvN7j8jjvuiJNOOimKooiIiKeffjo+//nPx0c/+tEm7/vee++Nz3zmMw3uv7a2Nq6++uqYOXNmPPLIIw0iAQC5ZV+/d9hhh9L7q1evbvT5hx9+OK677rrSOrzeVVddFWeeeWaD/xSvqamJSy+9NGbNmhWPPvpo7LjjjhER8cgjj8RRRx1VOv6LL74YZ599duyzzz4tGutFF10UkydPbnBZbW1t3H777XH22We36FgbWrhwYYwZM6b0lygR6x6PuXPnxty5c+M73/lOk6eD2pqfW2gL/rIAtoDa2trYbbfd4oYbbohZs2bF8ccfHxERn//85+Oaa66JmTNnxpw5c2LmzJlx6qmnRkTE73//+7jjjjuafR9//vOfY99994277747zjnnnNLlP//5z9t0Lptj0aJFceyxx8Yvf/nLmDBhQunyjY3xhRdeiIsuuijuueeeOPLIIyMi4r333otvfvObrbr/6urqOP3000sfn3feeVFdXR3V1dVx9NFHt+qYALCe9f4vzj///Lj55pvjvvvuizlz5sQdd9wRH/vYxyIi4tprr23wG/7rLV++PD70oQ/Fv//7v8f9998fkyZNijVr1sQ3v/nN0n9QnHjiiTFz5sw455xz4sknn2x0jJUrV8bEiRNj1apV0alTp7j44otj9uzZ8Xd/93cRse43Br/2ta+Vxlj/NwVHjhxZ2hdMnTq1zR8TALZOWdfvtWvXxmOPPRY33XRT6bKmTv+zcOHC2H///WP69Olx1113xSGHHBIvv/xynH322bF27drYfvvtY+rUqXH//feXft5+7rnn4rzzzisd49vf/nYpFBx++OHxy1/+Mr7//e/H008/3ezxPv744w1CwZe//OX45S9/GTfffHOceOKJ0bFjxzj66KOjuro6qqqqStdbv7av/6uJjfna175WCgXjx4+P//zP/4wf//jHpSB0ySWXxGOPPdbodlvjcwttyV8WwBbQsWPHuOeee2KPPfZocPnhhx8e3//+9+O//uu/ora2tsFvwEWsWwy/8IUvNOs+Kioq4vbbb4++ffvGMcccE1dddVWsXLkyXnjhhTabx+baeeed49Zbb43KysoYPXp03HLLLRERGx3jhAkT4oILLoiIiLFjx0a/fv1i5cqVMX/+/Fi8eHH079+/Rfc/duzY+K//+q/Sx+tPpwAAbcF6/xcf//jH45//+Z/jscceiyVLljQ49VBRFDF//vzYbbfdGt3uhhtuiCOOOKL08bx582Lx4sURse4cyzfeeGN07tw5jj766Jg3b1789re/bXD72bNnx2uvvRYREUcccUQceuihERFx7LHHxm233RY1NTVx//33x5IlS2LYsGHRuXPn0m2dwxggp2zr96JFi0qn5KmvZ8+epVMw1de9e/e47777olevXqXLLrvsstLj8bnPfS5GjhwZEetO9XvrrbfGypUr4+abb46f/vSnsWTJktJ6XVlZGbfeemv06tUrjjnmmHj22WfjxhtvbNa4b7jhhtL7J598clx11VWlj+v/MuLOO+/c4PRTzVnbly5dGvfff39pjDNmzIiddtopIiJefvnl+Nd//deIiLj55ptLv/yw3tb03MKWIBbAFjBs2LBGG4+33norxowZ0+Rv1q23bNmyZt/H8OHDo2/fvhGxbrOz4447xsqVK1t0jC3twAMPLC3a6xfeiI3Ps/4ivMMOO8Qee+wRCxYsiIh1f7bY0lgAAFuS9X6defPmxWGHHRbvvffeRq/T1Hi7dOnSIBRErFvv19t3330b/Of+QQcd1CgWPP/886X377333tILMNdXFEU8++yzwgAAEWH9jog45JBDYurUqTFw4MBGnzv44IMbhIKIhuvttGnTYtq0aY1ut3z58qitrW3wGA4dOrTBsQ444IBmx4L693nMMcc06zbN9Yc//KH0V4xDhw5t8P8VBxxwQJNjWG9rf25hczkNEWwB6xeO+u68887Sojl8+PC49dZbo7q6Oi699NLSdVrygjjrzwW4XqdOW1/7qz/G+uPb8NyHG9PUbz/Uv2zNmjWl9zd8wSkA2NKs9+tceeWVpVBwzDHHxKxZs6K6urp06oaIpudc/wWTm9LUPqC1VqxY0WbHAmDblm39rqqqKp2W53e/+128/vrr8fDDD2/0tYCaenyaa1PrbVuu7VvKpsa4NT23sCWIBbAFNLW4vPzyy6X3v/71r8dJJ50UY8eObfSiSpnNmzev9P7y5csbvNjxkCFDIqLhizGtP7/g2rVr44EHHmjymB07/uXbXEs2dwCwKdb7derP+Yc//GEcddRRMXbs2HjllVfe93ZNPX5Dhw4tvb9gwYIGvxjw6KOPNrr+hz/84dL7EydOjKIoGr2tWLGi9FpI9gUAZFu/KysrY+zYsTF27NjYf//9G/3VwIaaenzqr7eTJ0/e6Hq7xx57xODBg0vXffHFF+ONN94ofdzUawBsTP37nDlz5vtet6Xr++67716a5x//+Md4/fXXmxxj/TFAFvIXtJP6f953zTXXxJAhQ+KFF16IH/zgB+0+lpUrV8asWbMiIkqn+YlYdy7DGTNmRETE6NGjm/yTxC3p5ptvjuHDh8eoUaPiiiuuKP1WwqhRo0qnINp9991L1//GN74RkyZNinvuuafJPw+MaFj9b7/99hg8eHB07tw5Ro8e3eC8hgDQFjKu9/Vv/8Mf/jAmTpwY9957b+lcwC2x7777Rv/+/WPx4sVRW1sbp556apxyyilx//33NzoFUcS61yno06dPvPbaa3HddddFr1694ogjjog1a9ZETU1N/OY3v4knn3wynnnmmYhouC946qmn4q677orevXvHgAEDYsCAAa2YPQAfBBnX75b43Oc+F9/97ndj1apV8aMf/Sg6dOgQBx10UKxcuTIWLlwYDz30ULzzzjvxwAMPRN++feNjH/tYPPbYY/Huu+/GhAkT4pxzzoknn3yy9DqGzXHKKafET37yk4iIuOmmm6Jbt25x3HHHxYoVK+Luu++OM888s/RaRTvuuGMsXLgwIiKmTp0a++23X+ywww5NvoBzxLrTJB955JFx3333xapVq+Kkk06Kb33rW/HHP/4x/u3f/q10vZNPPrm1DxlsuwqgRQYOHFhERBERxUMPPVS6fOHChaXLx40b1+h2b775ZrHLLruUrrP+7eCDDy69P3HixNL1x40bV7p84cKFm7yP+uPalPrH2djbtGnT3vcYDz30UOm6AwcObPLy+vMpiqLJ60+ePLl0+T777NNoHJ06dWrwOD/zzDNFx44dG11v+PDhTY79f/7nf4oOHTo0uv76xxQAmmK9b2zixIml202ePLl0+WOPPdZore3QoUNx0EEHNXk/Te0H6rv99tubXLtHjBjR5PFmzpxZVFZWbnSOG97Pfvvt1+g69ecDwLbL+r3Oxn5eb871N/w5fr1f/OIXTf4s3tScH3744aJz586NrjNs2LAm196mHs+iKIp/+Id/2Oj91X9+v/3tb290PBub2x//+Meiqqpqo8f/zne+U7puWz23sC1wGiJoJ9tvv3088MAD8fGPfzy6d+8eu+66a1x00UVx0UUXlXtoW41vfetbccUVV8TQoUOjoqIiRo0aFffcc0+MHz++dJ0999wzbrzxxth9992joqIi9t5777jtttvi85//fJPHHDFiRFx33XWx5557+ksCALa4jOv9AQccEHfeeWeMGDEiunTpEh/5yEdi+vTp8clPfrJVxzvhhBPitttui7322isqKipizz33jJtuuik+8YlPlK7TtWvX0vtHH310PP744/GlL30pdtttt+jcuXP07t07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CwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAgObEAAAAAAACSEwsAAAAAACA5sQAAAAAAAJITCwAAAAAAIDmxAAAAAAAAkhMLAAAAAAAguU4tufKqVau21DjYSr1d82a8u3xFuYdBO1m9enW5h0A78nzns7nruH1APvYBuVgXcvF852MfQEvZB+RiXcjF851Pc9fxFsWCxYsXt2owbLvmnfWrcg8B2EJqa2vLPQTa2eLFi2PffffdrNuTi30AfHDZB+RjH0BL2QfAB5d9QD7N3Qd0KIqiaO5Bly1bFnPnzo3+/ftHZWXlZg0QAGgfq1atisWLF8e4ceOiZ8+erT6OfQAAbHvsAwAgr5buA1oUCwAAAAAAgA8eL3AMAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAAAAAAAAyYkFAAAAAACQnFgAAAAAAADJiQUAAAAAAJCcWAAAAAAAAMmJBQAAAAAAkJxYAFup8ePHR4cOHaJDhw5RU1NT7uEAAFuA9R4Atj3W79aZM2dO6XE77bTTSpefdtpppcvnzJnTpvdZU1NTOvb48ePb9NjwQSQWwCYMGjSotLBs6q2tF7UtZcGCBfHd7343xowZE7vuumtUVFREnz594thjj43q6upmHaP+gtuhQ4ctPOLWe+KJJ2LKlCkxZcqUbeb5AaD9We8bmzJlSrMfk/o/8G/t1u8LLrvssnIPBYDNZP1u2oY/r69/69KlSwwbNizOOeecePXVV7fwTNrPtddeW1rfly1bVu7hwDatU7kHADRt6tSpsXz58oiI2GWXXdr02D//+c/j5z//eYPLlixZEvfcc0/MmjUrpk+fHieccEKb3me5PPHEE3HhhReWPvabBABsTaz37W/9vmDgwIHxzW9+s7yDAWCbtK2u36tWrYoXXnghpk6dGnfeeWc89thj0a9fv7YY9mY5//zzY9KkSRERMWLEiBbf/tprr425c+dGxLq/UujZs2fpc7vsskspsuywww6bP1j4gBMLYBNmzJgR7777bunjE088Merq6iIi4vLLL49Ro0aVPrexRW3FihXRrVu3Ft1vaxbIlqiqqoovf/nLMXbs2HjjjTfiwgsvjOeeey7Wrl0b5557bsr/PAAgL+t9Y2eccUYcfvjhpY+vueaamDZtWkREHHXUUXHeeeeVPte3b9/NHmtrHj8AcrN+N091dXUURRFPP/10fPe7343ly5fHSy+9FP/4j/8YV1xxxfvetj3W52HDhsWwYcO2yLErKytj7NixW+TY8IFUAC0ycODAIiKKiCgeeuih0uULFy4sXT5u3Lhi7ty5xYEHHlh06dKlmDhxYlEURXHVVVcVn/zkJ4v+/fsXXbt2LSorK4vdd9+9OPvss4vXXnutwf2MGzeudLyFCxc2eR/z5s0rxo8fX2y33XZF3759i/PPP79Ys2bNJudQXV1drFixosFlTzzxROnYEVG88sor73uM+mOp/62kpWOcNm1a6fqTJ08urr/++mKvvfYqKisriz333LO48cYbG9zvxIkTm3z8NzxOUTR8rjZ8W38dAGiK9b6xyZMnl263fq7r/fCHPyzGjRtX7LrrrkWXLl2K7bbbrthzzz2L888/v9EY6j+2ixYtKk444YSiR48exaBBg0rXmTNnTrH//vsXlZWVxZAhQ4qpU6c2udav9+KLLxaTJk0qBgwYUFRUVBR9+vQpTjrppOKZZ55pcvwbvg0cOLDZjwMAWy/rd+P5bvhff1OmTCldvs8++zT78SmKonjyySeLCRMmFFVVVUXnzp2Lfv36FV/+8peLxYsXNxrDggULinHjxhVdunQpdt1112LKlCnFAw880OReYmM/5xdFUTz66KPF5z73uWKXXXYpOnfuXPTt27c46qijigULFhQPPfTQRtf29c/NhnOrb/ny5cV5551XDB8+vOjSpUvRvXv34oADDiiuvPLKYu3atQ2uW3/P8PzzzxfHHnts0a1bt2LHHXcszjzzzOKdd9553+cEthX+sgC2gD/84Q9x5JFHNvgNh4iI6dOnx+zZsxtc9sILL8QVV1wRDz74YMyfPz+6dOnSrPt4/vnnY9y4cfHOO+9ERMQ777wTF198cQwaNKj053sb01RV37Did+3atVnjaMsx3nLLLfHcc8+VPv79738fp5xySnTo0CFOPvnkzR4PALQl6/1fXHvttQ3W8Ih16/jFF18cjzzySPzqV79q8naHHXZYvPjiixERseOOO0ZExG9/+9s48sgjY9WqVRER8eKLL8Y3vvGN+OhHP9rkMebPnx+f+MQnGpyj+LXXXovbbrstZs2aFQ8++GAccMABmztFAD4gsq/f9U/Fs3r16kaf39jjc++998ZnPvOZ0vocEVFbWxtXX311zJw5Mx555JEYPHhwRKx73MaPH186VdPLL78cU6ZMiX322adFY502bVp85StfiTVr1pQue+WVV+Lee++Nk046KQYNGtSi49X3xhtvxJgxY+LZZ59tcPm8efNi3rx5MWfOnLj55pubvN1BBx0Ur7/+ekSs+8uLn//859G7d+/4wQ9+0OrxwNbCCxzDFlBbWxu77bZb3HDDDTFr1qw4/vjjIyLi85//fFxzzTUxc+bMmDNnTsycOTNOPfXUiFj3A/Udd9zR7Pv485//HPvuu2/cfffdcc4555Qu3/Dchs11++23l94/5JBDonv37q06zuaM8bnnnou//uu/jpkzZ8YXv/jF0uXnnntuvPfeey2+/xkzZjQ4RcLpp58e1dXVUV1dHWeccUaLjwcA9Vnv/+Kss86K66+/PmbNmhVz5syJ//zP/4yjjz46IiIeeuiheOSRR5q83SuvvBI//vGPY/bs2aU1+9xzzy39R8Rhhx0Wv/zlL+PCCy+Mp556qtHti6KIiRMnlkLBt7/97Zg9e3Zccskl8aEPfSjefvvtOP3006MoijjjjDMavDBkVVVVaV8wY8aMNnkcANj6ZV2/i6KIZ555Jn72s5+VLmvqdEpNPT4rV66MiRMnxqpVq6JTp05x8cUXx+zZs+Pv/u7vIiKirq4uvva1r5WOccEFF5RCwahRo+Kuu+6KqVOnxgsvvNDs8b788svx1a9+tRQKjj/++LjzzjtjxowZ8ZWvfCUqKipi1KhRUV1dHSNHjizdbvr06aX1/f1eT+K8884rhYIRI0bEHXfcEVdddVXplxduueWWuPXWWxvd7s0334w+ffrE7bffHt///vdLl7f2uYWtTpn/sgG2Oc35s8aOHTsWzz77bKPb/ulPfyq+8pWvFIMHDy4qKysb/Ynct771rdJ1N/VnjRUVFUVdXV1RFEWxZs2aomvXrkVEFD179mzxnB5//PFihx12KCKiqKysLB5//PFN3qY5pyFqzhjrn1Lg4IMPLl3+f//3f8WAAQNKn3v44YeLomjZaYje73IAeD/W+8be7zRE//u//1tMmDCh2G233YrOnTs3mvNPfvKT0nXrP7b//u//3uA4r7zySulzlZWVxZIlS0qfmzBhQqM1fcGCBaXLRo4cWVRXV5feDjrooNLn6s91/WVOPQTwwWP9bjzfjb1VVFQU8+bNa9bjc+edd5Y+f9RRRzVYbwcNGlRERNGhQ4fitddeK9asWVN07969dP2nn366dJzzzz+/2achuvTSS0uXjRkz5n3n29Tz0dRjsf40RGvWrCl23HHH0uVPPfVU6fpTp04tXX7ccceVLq//2C1YsKB0+fDhw0uXL1u2bBPPDGz9nIYItoBhw4bFHnvs0eCyt956K8aMGRMvvfTSRm9X/8/nN2X48OGlFxPs2LFj7LjjjrFy5coWHSMi4te//nV8+tOfjjfffDM6deoUN998c+y3334tOkZbjfFjH/tY6f0PfehDsd9++8Wf/vSniFh3CoJDDjmkTcYFAG3Ber/OokWLYsyYMfHmm29u9DobG++xxx7b4OP1pySKiBg6dGjstNNOpY8POuiguOWWWxpc//nnny+9/8QTT2x0r/D73/++zeYLwLbN+h0xcuTI+PGPfxyjR49u9LmmHp/66+29994b9957b6PbFUURzz77bOy+++7x9ttvR0REt27dYq+99ipdpyWnBax/n5/+9KebfbvmeO211+KNN96IiHWndNp7771Ln6s/xvpjWK9Hjx4N/pKh/l5l2bJlDU7zBNsipyGCLWD9pqC+O++8s7TxGD58eNx6661RXV0dl156aek6a9eubfZ9rP/TuPU6dWp5+5s9e3YceeSR8eabb0ZlZWXMmDEjPvOZz7T4OBuzuWPs0KHD+15W/7yFS5YsaeHoAGDzWO/X+Y//+I9SKDjooIPirrvuiurq6tKpCSI2PuemHsP1mtoHtNaKFSva7FgAbNsyrt/rT8szb968+POf/xwLFiyIww47rMnrvt/avCmbWm/bcm1vKxuOaVNjfL/ntiiKthsYlIlYAFtAU4vLyy+/XHr/61//epx00kkxduzYRi8a1F7uvPPOOPbYY2PlypXRrVu3mDlzZhx33HFlGct68+bNK72/Zs2aePzxx0sfDxkyJCIavhhTXV1d6f377ruvyWN27PiXb3Mt2dwBwKZY79epP+fzzjsvjjvuuBg7dmzpXMXvZ8PHcOjQoaX3//jHP5Z+6y8i4tFHH210+w9/+MOl98eNGxdFUTR6W7FiRZx55pmN7tO+ACCnjOv32LFjY+zYsTF69Oioqqp63+s29fjUX28nTpy40fX2yCOPjJ133jm6desWEeviwe9///vSbR977LFmj7n+fc6aNet9r9vSn/v79OkTPXv2LI3x6aefbnKM9ccAWTgNEbSTgQMHlt6/5pprYsiQIfHCCy/ED37wg3Yfy/Tp0+Pkk0+ONWvWRIcOHWLy5MlRWVkZv/71r0vXGT16dFRWVrbruH7961/HueeeG0cccUTccsstpVMQ9e3bNw488MCIiNh9991L1//7v//7WLZsWTzyyCPx4IMPNnnM+tX/vvvui0MPPTS6dOkSI0aM8OeBALS5jOt9/TlffvnlUVFREY899lhcffXVLT5Wnz59YsyYMfHII4/Eu+++GxMmTIhzzjkn5s+fH7fddluj63/0ox+NvffeO/73f/835s6dG6eeemqceOKJ0blz56ipqYl58+bFnXfe2SA67LjjjrF06dKora2NG2+8MQYOHBh9+/aNYcOGte4BAGCbl3H9bokjjjgi+vTpE6+99lpcd9110atXrzjiiCNizZo1UVNTE7/5zW/iySefjGeeeSY6duwYxxxzTOnFgb/0pS/FBRdcEC+//HJcdtllzb7PE088Mb773e/GqlWr4je/+U189rOfjVNPPTXWrl0bDzzwQBx88MFxyimnRETDn/t/8YtfxNFHHx3bbbdd7L///k0eu2PHjjFhwoS48sorIyLilFNOicmTJ8cbb7wRkydPLl3v5JNPbulDBdu+8rxUAmy7mvOCSetfNKe+N998s9hll10avajQwQcf3OQL/GzqBZM2vI/649qU+i8etLG3DV8UaEPNeYHj5oyx/gsQjxgxosmxXH/99aXrL1mypMGLJa1/23PPPRu96GFRFMVrr73W5ItT1X/uAGBD1vvGNvYCx4sWLSq9cOPG5lx/bd7UHB599NGioqKi0fH22WefJo/33//930XPnj3fd571ffazn230+Q1fsBmAbZP1u/F8m3Ofm3p8iqIoZs6c2eTP1uvfBg4cWLru888/X/To0aPRdYYNG9bk49nUCxwXRVH84he/KDp27Njk/U2bNq10vfovSrzheDY2t9dff73BixNv+DZhwoRi7dq1pes3Nc+ieP8XV4ZtkdMQQTvZfvvt44EHHoiPf/zj0b1799h1113joosuiosuuqjcQ9tqnHDCCXHrrbfGRz7ykaioqIg99tgjrr/++vjiF79Yus5OO+0Ud911V+yzzz5RUVERQ4cOjZ/+9KcNzotcX+/eveOuu+6KUaNGxXbbbddeUwEgqYzr/YABA2L27NlxwAEHxHbbbRdDhw6Nf/u3f4tJkya16ngHHnhg3H///bH//vtHRUVFDBo0KC677LI444wzStfp2rVr6f199903nnjiiTjrrLNiyJAhUVFRET179oy99947zjrrrEZ/fXjFFVfESSedFH369GndhAH4wMm4frfU0UcfHY8//nh86Utfit122y06d+4cvXv3jpEjR8a5554b06dPL1132LBh8dBDD8Whhx4alZWVUVVVFd/5zndi6tSpLbrPSZMmRXV1dZxwwgnRt2/f6NSpU+y8885x1FFHNXiR4TPPPDO+853vxIABAxqckuj99OrVK37729/G9773vdhjjz2isrIyunXrFqNHj46f/exncdNNN22Vr7EAW1qHovDqG0D5XHvttXH66adHRMTkyZNjypQp5R0QAFBWRVE0+cP5hAkTSqc0uOOOO9r0RZoBAACvWQAA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABccAAAHbCAYAAAAOMSLQAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAASdAAAEnQB3mYfeAAALYZJREFUeJzt3XuUXXV9N/53QphMMmBIQZgOkAzXqATkGqWkBVru2sIq0EWLFbBdvdDWQi9LBSkgleWPUrkp6rJyEVosCoYiSrg0QLAV/QnSdhX1sWRYyJjVUghg4GQCnOcPnmwnZOaQjBnPN/m+XmvNWpNz9tnznr0P7M95zzl7T2m32+0AAAAAAEBFpnY7AAAAAAAA/KwpxwEAAAAAqI5yHAAAAACA6ijHAQAAAACojnIcAAAAAIDqKMcBAAAAAKiOchwAAAAAgOooxwEAAAAAqI5yHAAAAACA6ijHAQAAAACojnIcAAAAAIDqKMcBAAAAYBNwwQUXZMqUKZkyZUquu+665vbBwcHm9o3tuuuua9Z9wQUXbPT1Qzcpx9lsjD4QvNHXfffdt9F//uWXX54LLrhggw4Uow8whx122EbPtLEsWrSo+d2Ghoa6HQeAym1qx/zDDjtsvfOOfpFbsqGhoWYbLFq0qNtxACjcpnbsTtZ+vT76a6uttsr++++fSy+9NKtXr97oWbtlzfa5/PLLux0FfqamdTsAbC4uv/zyPPHEE0my2f0lddGiRbn++uuTvPYCf3BwsLuBAKCLNudj/voaGhrKhRdemCQ57bTTcsIJJ3Q3EAB0sDGP3StXrswjjzySRx55JIsXL87ixYszdWr333v6pS99Ka1Wa8KPX3Ncnzt3bs4666y17jvuuOOydOnSJMmcOXMm/DOgRMpxNhuvPxCcfPLJWb58eZLkyiuvzH777dfct/fee//M8wEAG8emdsy/6qqr8txzzzX//pM/+ZN85zvfSZKcc845OfbYY5v79txzz5/6561cuTJ9fX0/9XoAYGPZ1I7dr7fvvvvmqquuyurVq3PPPffk4osvTpLcc889ufXWW3PSSSd1fPyLL76YmTNnTmrGAw88cNLWvf3222f77beftPVDN3X/T1uwkRx44IFZuHBh8zV9+vTmvr333nut+7bYYotccMEFmT9/fmbMmJE3velNOeyww/K1r31tnfXecsstWbhwYWbNmpWenp709/dn4cKF+cAHPpB2u9181GrNX6GTrPWRq4l4/fm8brzxxsyfPz/Tp0/PnnvumZtvvnmt5U8//fRm+bvvvjvnnXdedtxxx8yYMSO/9Eu/lIcffnit5cc7F9no9dx3330ZGhrKlClTmneNJ8nhhx8+qR93A4A3sqkd81+fadasWc19e+yxR3P7fvvtl/PPPz8HHnhgdthhh/T09GTWrFk5+OCD87nPfW6tda45Rq85NdsDDzyQgw8+ODNmzMgf/dEfNctdffXV2W233TJjxowsWLAg//zP/7zO8X60pUuX5td+7dfy5je/OT09Pdlll13yZ3/2Z3n22WebZQ477LAcfvjhzb+vv/76Zn2nn376+DsOgGptasfu15s1a1YWLlyYww8/PB/96EfXOi3qmndUv/51/Kc//enMmzcvW2655Vqv4W+77bYcccQRmT17dqZPn5558+blwgsvzEsvvbTOz7355puz1157pbe3N/Pnz1+nCxit0znHb7rpphx++OHNzxwcHMxv//Zv57nnnmvOYb7GE0880axnzafGO51z/Ac/+EHOOOOM7Lzzzunp6cm2226b4447Lvfee+9ay913331rzQuLFy/OQQcdlN7e3syZMydXXnnluL8bTKo2bKbmzp3bTtJO0l6yZElz+4oVK9p77713c9/rvz75yU82y953333tqVOnjrvs6tWr29dee+2497/Rf2KjH3vooYeOefuuu+66zjqnTp3a/u53v9ssf9pppzX3zZs3b53l3/SmN7W/973vjbltRhu9niVLlrSXLVvW8XcbvV0BoFs2hWP+aIceemjzmGuvvba5/Uc/+lHH9V944YXNsqOP0QMDA+3e3t7m36eddlq73W63P/7xj6+zji233LL9tre9bczt9dnPfnbcbTBv3rz2M888s07+13+t+dkA0MmmcOwe7/V6u91uH3/88c19f/AHf7DO8q9/Hb/meH/eeeeNm+UXf/EX26tWrWp+xs0339yeMmXKOsvts88+Y84R473Of9/73jfuz1y2bFn7/PPPH/f+uXPnrvO7nX/++c26H3roofbWW2895mOnTJnSvvrqq5tllyxZstZ6x9p3d999d8d9ApPBO8epzrnnnpt///d/T/LaebPuuOOOfP7zn09/f3+S5Oyzz86TTz6ZJLn99tvz6quvJkkuvvji3HvvvfnCF76QD3/4w3nb296WKVOmNOfeWvP45LW/HK/5+mk9/vjj+Z3f+Z185Stfya/8yq8kSV599dX83d/93ZjLP/nkk7niiiuyaNGi5mNVzz//fD70oQ9t8M/++Z//+SxdunStj3tfeeWVze82+qNvAFCaTe2YP3PmzHzkIx/JzTffnLvuuitLlizJF77wheyxxx5Jkr/5m7/JyMjIOo8bHh7OTjvtlBtvvDFf/epXc8IJJ2TFihX58Ic/3Cxz5pln5o477shJJ52U//zP/1xnHU899VT++I//OK+++mq23nrrXHXVVVm8eHHOOOOMJMn3vve9nHPOOUleO03M6Hd3HXvssc02OPfcc3/q7QBAvUo/dr/88stZvHhx7rzzzua2sU4D8/jjj+foo4/OokWLmnd/f+tb38pFF12U5LXX2p/73Ody55135l3veleT67LLLkuSvPLKKzn77LPTbreTJKecckruuOOOnH322fm3f/u39c57yy235JprrkmSbLHFFvmLv/iLfPWrX83nP//5HHnkkZkyZUre9773rbUt+vv7m+3zpS99adx1t9vtnHHGGXnhhReSJCeddFLuuOOOnHfeeZk6dWra7XbOOuusZn+N9sQTT+RXf/VXc/vtt+eUU05pbv/MZz6z3r8bbDRdLudh0oz1l+hXXnmlPXv27HaSdk9PT/uee+5pL126tL106dL2mWee2Sx/6aWXttvtdvuDH/xgc9sXv/jF9tNPP71eP299rc87x9/+9rc3t3/jG99obj/hhBOa20e/4/vcc89tbv/+97/f3N7b29seGRnpmPX17xx/o9sBoASbwjF/tPHeOd5ut9u33357+8gjj2xvt9127S222GKdd1Q9+uij7XZ77XeOv/4TZe12u/2P//iPzf0HHHBAc/vq1avbO+200zrb67LLLmtuO+OMM5pt9cADD7RnzpzZTtKeNWtW+5VXXmm322u/+8u7xQHYUJvCsfuN3nWepD1nzpz2888/v87yc+fOba9evXqt9f3pn/5pc/8555zT/G633357c/v8+fPb7fZr78hec9vAwMBa6zrkkEPW+53jo9/h/qEPfajj7zs6e6dtsead4w8//HBzW39/f9M3tNvt9oknntjcd9lll7Xb7bVnh+23377darXa7Xa7vXz58ub2fffdt/NOgUnggpxU5emnn27OmTkyMpIjjjhizOUee+yxJMmpp56ayy67LKtWrcrJJ5+c5LULURxyyCE588wzx338xnTooYc232+77bbN9ytWrBhz+Xe84x3N93vssUdmz56dZ599Nq1WK8PDw5k7d+6kZQWAUmyKx/xbb701J554Ysdlxjr+77HHHpk3b95atz3++OPN96Nng2nTpuWggw7KD3/4w7WW//73v998f+211+baa69d5+c899xzzbvUAWBj25SO3VOnTs1xxx2Xq666KltvvfU69x9zzDGZNm3tym30sfbiiy9uLuo52ne/+90kax/H991337XWtWDBgnz9619fr5yjf+a73/3u9XrM+hq97v333z9bbrll8+8FCxbklltuWWe5Nd75znc2551fn54DJpPTqsAYVq5cmSSZP39+vv3tb+f9739/3vGOd2TWrFn57//+73z5y1/O0UcfnX/5l3+Z9CyzZ89uvh99QGz/v49XvZGxLsYx+rZXXnml+f7pp5+eSEQA2GSVdMz/xCc+0Xx/+umn56677srSpUtz5JFHNrev+fj4aDvssEPH9U70AuFjWbO9AKBbunHs3nfffbN06dI8+OCDefjhh7NixYrcfvvtzQUrX++Njs3jefnll7Nq1aqOy2zM4/pkeaOMP23PARuTcpyqbLfdds3/hLfaaqu88MILabfba3298sorzbul2u129tprr1xxxRX5xje+kRUrVjTn3Hr11VezaNGiZt1Tp/7kP6exXrj+rHzzm99svv/BD36QZ555JknS29ubgYGBJK9daXuN5cuXJ0leeOGFcf/6XMrvBgDra1M85j/11FPN91dddVWOPPLI/MIv/MJat49lrBegu+22W/P9t771reb7l19+ea1/r7Hnnns2359//vnrbKt2u52VK1c271A3GwCwsZV87J41a1YWLlyYQw45JPvtt9+Y7xYfbaxj8+hj7bXXXjvusXb69OnZddddm2W/853vrPWmtoceemi9c4/+mXfcccd6ZV7f7TN63Y888khefvnlMTOOXg5K5LQqVGXq1Kn5zd/8zVx99dX58Y9/nKOOOirvf//7s9122+WHP/xh/uM//iO33nprrrnmmhx22GG55JJLct999+Vd73pX5syZk76+vixevLhZ3+i/6M6ePTvLli1L8toL2gMOOCCzZs0a8+Ick+myyy7LDjvskDlz5uSjH/1oc/uxxx7bfMxp9913z6OPPpokee9735sTTzwxN9xww7gfYRr9V90bb7wxW2yxRbbYYossXLhw8n4RAPgpbIrH/Llz5zYfPf6rv/qrHH300bnhhhvGvIDmGznyyCMzc+bMvPjii/nmN7+Zs846q1nf60+pkrx2Ea0PfvCDWbVqVT72sY9lypQpOfjgg/Piiy9m2bJlWbJkSV566aXcfffdSdaeDR588MF87Wtfy9Zbb50999wz22+//QS3AAA12xSP3Rvit37rt3LFFVckee3Cos8880z22WefrFixIv/1X/+Vu+66K3Pnzs0111yTAw44IDvuuGOeeuqpDA8P573vfW/e85735N57713vU6okyXve857cdtttSZJLLrkkL7/8cg4//PD87//+b2688cZ8+tOfbk69Onv27DzzzDMZHh7O3//932fu3LnZYYcdmguDv96+++6bt771rXnsscfyox/9KKeeempOP/30PPTQQ/nyl7+cJOnp6XnDU8ZB1/2Mzm0OP3NjXeCj3W63n3322fbee+/d8aIaa5a/6KKLxl1m6tSp7QcffLBZ75//+Z+vs8zoi2yOZX0uyLnmYhft9toX3xq9/OgLZu6zzz7r5Nhqq63ajz32WLP84sWL11lm2rRp7d13333MbTb6AiGjvwCgBJvCMX+08S7I+cUvfnGd9fb29rYPOOCAdfKONxOM9vGPf3yd9W255Zbtt7zlLWNur89+9rPtqVOnjrsdRv+c1atXt/v7+9dZ5vUXGAWAsWwKx+7xXq+vz/KjX8ePdt5553X83UZf5Pqmm24ac5nRr9vf6IKc7fbafcHrv5YtW9YsN/oimq/PM97v9tBDD7W33nrrMdc9ZcqU9tVXX90s2+li3mtuH+tioDDZnFaF6myzzTb513/911x00UV5+9vfnhkzZmTmzJnZY489ctJJJ+Wmm27KO9/5ziTJcccdl9///d/P/PnzM3v27GyxxRb5uZ/7uRx11FFZvHhxDjnkkGa9559/fn7v934vAwMDXT0H2N/+7d/mggsuyI477pjp06dn4cKFWbJkSd7ylrc0yxx11FG5/PLLs9NOO2X69OlZsGDBOr/PaO9+97tz6aWXZrfddlvnoiIAUKpN7Zh/0kkn5TOf+Uz22GOP9Pb25qCDDsqdd96Z+fPnT2h9Z599dj75yU9ml112yfTp07P//vvnjjvuWGsmmDlz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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Results on ARC-AGI examples: 4 pass, 0 fail\n", "Results on ARC-GEN examples: 262 pass, 0 fail\n", "\n", "Your network IS READY for submission!\n", "\n", "Performance stats (memory values reported here are approximate):\n", "Name Type Forward_MACs FPercent Memory MPercent Params PPercent InShape OutShape\n", "------ ------ -------------- ---------- -------- ---------- -------- ---------- ---------- ----------\n", "Conv_0 Conv 819,000 100.00% 39,640 100.00% 910 100.00% 1x10x30x30 1x10x30x30\n", "Total _ 819,000 100% 39,640 100% 910 100% _ _\n", "\n", "It appears to require 0 bytes + 910 params, yielding 18.187 points.\n", "\n", "Next steps:\n", " * Click the link below to download task151.onnx onto your local machine.\n", " * Create a zip file containing that network along with all others.\n", " * Submit that zip file to the Kaggle competition so that it can be officially scored.\n", "\n" ] }, { "data": { "text/html": [ "task151.onnx
" ], "text/plain": [ "/kaggle/working/task151.onnx" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Test on all train examples\n", "fig, axes = plt.subplots(2, 3, figsize=(13, 11))\n", "for i in range(2):\n", " inp = task151['train'][i]['input']\n", " target = task151['train'][i]['output']\n", " pred = run_inference(inp, 'task151_demo.onnx')\n", " H, W = len(inp), len(inp[0])\n", " plot_arc_grid(inp, axes[i, 0], f'Train {i+1} Input')\n", " plot_arc_grid(target, axes[i, 1], f'Train {i+1} Target')\n", " plot_arc_grid(pred[:H, :W], axes[i, 2], f'Train {i+1} Prediction')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "# Test on test example\n", "test_inp = task151['test'][0]['input']\n", "test_tgt = task151['test'][0]['output']\n", "test_pred = run_inference(test_inp, 'task151_demo.onnx')\n", "fig, axes = plt.subplots(1, 3, figsize=(13, 4))\n", "plot_arc_grid(test_inp, axes[0], 'Test Input')\n", "plot_arc_grid(test_tgt, axes[1], 'Test Target')\n", "plot_arc_grid(test_pred[:len(test_inp), :len(test_inp[0])], axes[2], 'Test Prediction')\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "# Verify with official checker\n", "passed = verify_network(model151, 151, task151)" ] }, { "cell_type": "markdown", "id": "806f8e91", "metadata": { "papermill": { "duration": 0.007983, "end_time": "2026-05-31T09:46:20.336574+00:00", "exception": false, "start_time": "2026-05-31T09:46:20.328591+00:00", "status": "completed" }, "tags": [] }, "source": [ "# Summary\n", "- **Spatial Locality:** Kernel size 3x3 is enough to detect a pixel and its neighbors.\n", "- **Cross-Channel Power:** The 4D weights allow us to say 'If I see Color A, I should write Color B at this offset'.\n", "- **Competition via Negative Weights:** For every 'create' kernel (+1.0 for the target color), we add a matching 'suppress' kernel (−1.0 for Black) so the new color wins against the background.\n", "- **The Bias Term:** A learnable scalar per output channel that shifts the baseline activation. Used in trained models like task151 to fine-tune when a color activates.\n", "- **Trained vs Hand-Designed:** Both task015 and task151 share the exact same Conv 3×3 architecture — the only difference is whether weights are hand-crafted or learned." ] }, { "cell_type": "code", "execution_count": 13, "id": "a5f3e3e2", "metadata": { "execution": { "iopub.execute_input": "2026-05-31T09:46:20.354180Z", "iopub.status.busy": "2026-05-31T09:46:20.353913Z", "iopub.status.idle": "2026-05-31T09:46:22.515898Z", "shell.execute_reply": "2026-05-31T09:46:22.515033Z" }, "papermill": { "duration": 2.173124, "end_time": "2026-05-31T09:46:22.517723+00:00", "exception": false, "start_time": "2026-05-31T09:46:20.344599+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import shutil\n", "import os\n", "import zipfile\n", "\n", "# --- CONFIGURATION ---\n", "SOURCE_FOLDER = '/kaggle/input/datasets/massimilianoghiotto/neurogolf2026-6112/submission'\n", "OUTPUT_ZIP = '/kaggle/working/submission.zip'\n", "\n", "# Package the ZIP (Ensuring files are at the root)\n", "with zipfile.ZipFile(OUTPUT_ZIP, 'w', zipfile.ZIP_DEFLATED) as zipf:\n", " for root, dirs, files in os.walk(SOURCE_FOLDER):\n", " for file in files:\n", " if file.endswith('.onnx'):\n", " file_path = os.path.join(root, file)\n", " zipf.write(file_path, os.path.relpath(file_path, SOURCE_FOLDER))" ] }, { "cell_type": "markdown", "id": "b55edb8b", "metadata": { "papermill": { "duration": 0.008256, "end_time": "2026-05-31T09:46:22.534193+00:00", "exception": false, "start_time": "2026-05-31T09:46:22.525937+00:00", "status": "completed" }, "tags": [] }, "source": [ "### **This is the best that we are able to do for the moment, if anyone has any suggestion, please write it in the comments, we are happy to have some brainstorning between people.**" ] } ], "metadata": { "kaggle": { "accelerator": "none", "dataSources": [ { "databundleVersionId": 17255611, "isSourceIdPinned": false, "sourceId": 116438, "sourceType": "competition" }, { "databundleVersionId": 17559627, "datasetId": 10599660, "sourceId": 16553493, "sourceType": "datasetVersion" } ], "dockerImageVersionId": 31400, "isGpuEnabled": false, "isInternetEnabled": true, "language": "python", "sourceType": "notebook" }, "kernelspec": { "display_name": "Python 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.13" }, "papermill": { "default_parameters": {}, "duration": 30.387863, "end_time": "2026-05-31T09:46:23.061934+00:00", "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2026-05-31T09:45:52.674071+00:00", "version": "2.7.0" } }, "nbformat": 4, "nbformat_minor": 5 }