345 lines
107 KiB
Plaintext
345 lines
107 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "134e7f9d",
|
|
"metadata": {},
|
|
"source": [
|
|
"# API 7: Pruning\n",
|
|
"\n",
|
|
"We usually use pruning to make neural networks sparser hence more efficient and more interpretable. KANs provide two ways of pruning: automatic pruning, and manual pruning."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7fd6a742",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Pruning nodes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "2075ef56",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"checkpoint directory created: ./model\n",
|
|
"saving model version 0.0\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 2.99e-02 | test_loss: 2.99e-02 | reg: 7.10e+00 | : 100%|█| 20/20 [00:12<00:00, 1.64it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwvUlEQVR4nO3deViU5d4H8O8zbIKALKLmloJoKmrigoLmDqZWiFtZHSsUbT0tRzO1VLQ0q1OYva+CpqSVS5qKKHr0mAugKGqmueMGigswCjIwzMz9/lHMK+XCwMM8s3w/18V1Fc/M+Jsfc/Plvu9nnpGEEAJEREQyUildABER2R6GCxERyY7hQkREsmO4EBGR7BguREQkO4YLERHJjuFCRESyY7gQEZHsGC5ERCQ7hgsREcmO4UJERLJjuBARkewYLkREJDuGCxERyY7hQkREsnNUugAiayCEQF5eHoqKiuDu7g5fX19IkqR0WUQWizMXogdQq9WIi4tDYGAg/Pz80Lx5c/j5+SEwMBBxcXFQq9VKl0hkkSR+EiXRvW3duhXDhg1DcXExgD9mL+XKZy1ubm5Yu3YtIiIiFKmRyFIxXIjuYevWrRg8eDCEEDAYDPe9nUqlgiRJSE5OZsAQ3YXhQvQXarUajRs3hkajeWCwlFOpVHB1dUV2dja8vLxqvkAiK8A9F6K/SExMRHFxcaWCBQAMBgOKi4vx3Xff1XBlRNaDMxeiuwghEBgYiKysLJgyNCRJgr+/P86cOcOzyIjAcCGq4ObNm/Dz86vW/X19fWWsiMg6cVmM6C5FRUXVun9hYaFMlRBZN4YL0V3c3d2rdX8PDw+ZKiGybgwXorv4+voiICDA5H0TSZIQEBAAHx+fGqqMyLowXIjuIkkS3nzzzSrd96233uJmPtGfuKFP9Bd8nwtR9XHmQvQXXl5eWLt2LSRJgkr14CFS/g79devWMViI7sJwIbqHiIgIJCcnw9XVFZIk/W25q/x7rq6u2Lx5M8LDwxWqlMgyMVyI7iMiIgLZ2dn46quv4O/vX+GYv78/vvrqK+Tk5DBYiO6Bey5ElSCEwM6dO9GvXz/s2LEDffr04eY90QNw5kJUCZIkGfdUvLy8GCxED8FwISIi2TFciIhIdgwXIiKSHcOFiIhkx3AhIiLZMVyIiEh2DBciIpIdw4WIiGTHcCEiItkxXIiISHYMFyIikh3DhYiIZMdwISIi2TFciIhIdgwXIiKSHcOFiIhkx3AheoiysjLk5OTgxIkTAIBz584hPz8fBoNB4cqILBc/5pjoPtRqNdauXYvvv/8ex48fR2FhIbRaLWrVqgU/Pz/07NkT0dHRCAsLg6Ojo9LlElkUhgvRPaSnp+Odd97B0aNH0aVLFwwePBjt27eHu7s71Go1MjMzkZSUhLNnz2LUqFGYPXs2/Pz8lC6byGIwXIj+Ytu2bXjppZfg7u6OOXPmYNCgQdBqtVi5ciVKS0vh6emJZ599FmVlZVi5ciVmzJiBtm3bYvny5ahfv77S5RNZBIYL0V1Onz6NgQMHonbt2li5ciXatGkDSZKQlZWF4OBg3Lp1C82bN0dmZia8vb0hhMDevXsxevRo9O7dG4sXL4aLi4vST4NIcdzQJ/qTXq/HJ598goKCAixYsMAYLA8iSRJ69OiBefPmYcOGDUhJSTFTtUSWjeFC9KezZ88iKSkJUVFR6NGjx0ODpZwkSYiMjES3bt2QkJAAnU5Xw5USWT6e4kL0p7S0NBQVFWHYsGG4cOEC7ty5YzyWnZ0NvV4PANBqtTh+/Dg8PT2Nxxs2bIioqCjMmDEDubm5aNy4sdnrJ7IkDBeiP508eRJubm7w9/fH+PHjkZqaajwmhEBpaSkA4MqVKxgwYIDxmCRJ+OKLL9CuXTsUFxfjypUrDBeyewwXoj9pNBo4OjrCxcUFpaWlKCkpuefthBB/O6bT6eDq6lohhIjsGcOF6E/16tWDRqOBWq1GSEgIateubTym0WiQlpZmDJHQ0FDjGyclSULTpk1x/fp1qFQqeHt7K/UUiCwGw4XoT506dYJWq0VGRgY+/fTTCseysrLQpUsX3Lp1C/Xr18eqVavg5eVlPC5JEqZMmYIGDRpwSYwIPFuMCABw5MgRfPPNNygrK8PSpUtx584dODg4VPgqJ0kSVCqV8fsqlQpXr17FTz/9hMGDB6NOnToKPhMiy8BwIbt2+PBhDB06FMHBwTh16hReeOEFHDlyBPPnz6/0KcWlpaWYNWsWNBoNxo8fX+lTmIlsGZfFyC5lZmYiNjYWSUlJaNGiBZYtW4bRo0ejtLQUWq0Wn376Kdzc3PDqq6+iVq1aAABHR0c4OjoaZzFCCBQWFuLjjz/GypUr8eWXX6JVq1ZKPi0ii8HLv5BdOXjwIGJjY7Fp0ya0bNkSU6dOxXPPPVfhqsY3btzA66+/jk2bNiEiIgLvvPMOWrdujVOnTsFgMMDZ2RktWrRARkYGPv/8cxw5cgSxsbF49dVXKyyfEdkzhgvZhYyMDMTGxmLz5s1o1aoVpk2bhmefffa+YXDnzh0kJCRg/vz5uHbtGvz9/REYGAgPDw8UFBTg1KlTuHLlCjp16oTp06ejV69eUKm4ykxUjuFCNm3//v2IjY3Fli1b8Nhjj+HDDz/EyJEjKz3DyM3NxY4dO7Br1y5kZWWhpKQE3t7eCAoKQnh4OEJCQuDm5lbDz4LI+jBcyCalp6cjNjYWW7duRZs2bTBt2jSMGDGiWstWer0eQgioVCrOUogegiOEbEpqaioiIiIQFhaG7OxsrFy5EkePHn3gElhlOTg4wNHRkcFCVAkcJWQT9u7di/DwcPTs2RNXr17F6tWr8euvv2LkyJEMAyIFcNSRVdu9ezf69++PJ554AtevX8eaNWtw5MgRDB8+nKFCpCCOPrJKv/zyC/r27YvevXsjPz8fa9euxaFDhzBs2DCGCpEF4CgkqyGEwM6dO9GnTx/07dsXt27dws8//4zMzEwMHTqUoUJkQTgayeIJIbBjxw707t0b/fr1Q2FhIdavX4+DBw/imWee4eVWiCwQw4UslhAC27dvxxNPPIEBAwZAo9Fg48aNOHDgAJ5++mmGCpEFY7iQxRFCYNu2bejZsyfCw8Oh1WqxadMm7N+/H0OGDGGoEFkBhgtZDCEEUlJSEBYWhoEDB0Kv1yM5ORn79u3DoEGDGCpEVoThQooTQmDLli0IDQ01hsiWLVuQlpaGJ598kqFCZIUYLqQYIQSSk5PRrVs3DB48GA4ODti6dSv27t2LiIgIhgqRFWO4kNkJIZCUlISQkBA89dRTcHFxwbZt27Bnzx4MGDCAoUJkAxguZDZCCGzcuBFdunTBM888Azc3N2zfvh27du1C//79GSpENoThQjVOCIH169ejc+fOiIyMhIeHB/773/8a32XPUCGyPQwXqjEGgwHr1q1DcHAwoqKi4OXlhZ07d2Lnzp3o3bu30uURUQ1iuJDsDAYD1q5di+DgYAwfPhx169bFrl27sGPHDvTq1Uvp8ojIDBguJBuDwYA1a9bg8ccfx4gRI1CvXj3s3r0b//nPf9CzZ0+lyyMiM2K4ULXp9XqsWrUKHTp0wKhRo9CwYUPs3bsX27ZtQ48ePZQuj4gUwHChKtPr9Vi5ciXat2+P5557Dk2aNEFqaipSUlIQGhqqdHlEpCCGC5lMr9fjhx9+QLt27TB69Gg0a9YM6enp2Lx5M7p37650eURkARguVGk6nQ4rVqxAUFAQXnjhBQQEBGDfvn1ITk5GSEiI0uURkQVhuNBD6XQ6LF++HG3btsU//vEPBAYGYv/+/UhKSkLXrl2VLo+ILBDDhe5Lp9MhMTERbdq0wZgxY9C6dWscOHDA+C57IqL7YbjQ35SVlWHp0qVo3bo1Xn75ZQQFBSEzMxPr169Hp06dlC6PiKyAo9IFkOUoKyvD8uXL8cknnyArKwtDhw41vm+FiMgUDBdCWVkZEhMTMWfOHJw/fx7Dhg3DunXr0L59e6VLIyIrxXCxY1qtFsuWLcOcOXNw8eJFjBgxAuvXr0e7du2ULo2IrBzDxQ5ptVosXboUc+bMweXLlzFixAgkJSUhKChI6dKIyEZwQ98OzZs3D6+99hpCQ0Px22+/YeXKlQwWIpKVJIQQShdB1Tdr1iw8+uij8PDwqLF/Iy8vD2PHjq2xxyci28FwsRHPPvssfv31Vxw5cgQqVc1MSJ9//nmsXr26Rh6biGwL91xshCRJUKvVWLFiBaKjo5Uuh4jsHPdcbMj333+Pf/7zn+BklIiUxnCxIX369IFGo0FBQYHSpRCRnWO42BBJkjB06FC8+OKLSpdCRHaOey42ZsmSJfDx8YEQApIkKV0OEdkpzlxsjKenJ3x8fPD9998rXQoR2TGGi42RJAk//vgjJkyYwI19IlIMw8UG9evXD1qtFr///rvSpRCRnWK42CBJkhAbG4shQ4Zw9kJEimC42KiJEyfi8uXLyMrKUroUIrJDDBcb5eDggKlTp2LgwIGcvRCR2TFcbNhHH32EK1euYMuWLUqXQkR2huFiwxwcHLBy5UqMGDECxcXFSpdDRHaE4WLjhgwZgieeeAKRkZFcHiMis2G42DhJkrBu3Tr8/vvvmDp1KgOGiMyCl3+xA66urti9ezc6d+6MOnXqYNKkSbw0DBHVKIaLnfD398fOnTsxYMAA5OXl4eOPP4aTk5PSZRGRjeKymB3p0KED9uzZg02bNiEyMhIXL17kMhkR1QiGi51p1aoV9u7dCx8fH4SFheF///d/UVhYyJAhIlkxXOyQj48PEhMTMX/+fMTHx6NXr15YsmQJcnNzYTAYlC6PiGwA91zslEqlwtChQ9G/f3+sXr0aCQkJ+PTTT9GjRw/07dsXQUFBaNSoEby9veHo6MgTAIjIJAwXOyZJEjw9PREdHY3Ro0cjIyMDmzdvRkJCAq5duwaVSoUmTZqgV69eiIqKUrpcIrIiDBcbUp19E1dXV/Tq1Qu9evVCaWkp8vLycPnyZfz6669ISUnB0qVLERwcLGO1RGTLGC42om7duli/fr3sj1uvXj08//zzuHDhAkpLS2V/fCKyTZLgaUI2QafT1fi/IUkSHBwcavzfISLrx3CxQ3f/yLlRT0Q1gaci26HDhw/DwcEBhw8fVroUIrJRDBciIpIdw4WIiGTHcCEiItkxXIiISHYMFyIikh3DhYiIZMdwISIi2TFciIhIdgwXIiKSHcOFiIhkx3AhIiLZMVyIiEh2DBciIpIdw4WIiGTHcCEiItkxXIiISHYMFyIikh3DhYiIZMdwISIi2TFciIhIdgwXIiKSHcOFiIhkx3AhIiLZMVyIiEh2DBciIpIdw4WIiGTHcCEiItkxXIiISHYMFyIikp2j0gVUhxACeXl5KCoqgru7O3x9fSFJktJlWTQhBAoKCgAABQUFEEKwZ5XA15rp2LOqsZW+WeXMRa1WIy4uDoGBgfDz80Pz5s3h5+eHwMBAxMXFQa1WK12ixbm7Z/3794cQAv3792fPHoKvNdOxZ1Vjc30TViYlJUXUrl1bSJIkJEkSAIxf5d+rXbu2SElJUbpUi8GeVQ37Zjr2rGpssW9WFS4pKSnCwcFBqFSqCs3/65dKpRIODg5W9YOoKexZ1bBvpmPPqsZW+yYJIYTcs6GaoFar0bhxY2g0GhgMhofeXqVSwdXVFdnZ2fDy8qr5Ai0Qe1Y17Jvp2LOqseW+Wc2eS2JiIoqLiyv1AwAAg8GA4uJifPfddzVcmeViz6qGfTMde1Y1ttw3q5i5CCEQGBiIrKwsmFKuJEnw9/fHmTNnrPJsi+pgz6qGfTMde1Y1tt43qwiXmzdvws/Pr1r39/X1lbEiy8eeVQ37Zjr2rGpsvW9WsSxWVFRUrfsXFhbKVIn1YM+qhn0zHXtWNbbeN6sIF3d392rd38PDQ6ZKrAd7VjXsm+nYs6qx9b5ZRbj4+voiICDA5PVFSZIQEBAAHx+fGqrMcrFnVcO+mY49qxpb75tVhIskSXjzzTerdN+33nrLoje9agp7VjXsm+nYs6qx9b5ZxYY+YNvng9cU9qxq2DfTsWdVY8t9s4qZCwB4eXlh7dq1kCQJKtWDy1apVJAkCevWrbP4H0BNYs+qhn0zHXtWNTbdN3NfEqC6KnsNnq1btypdqsVgz6qGfTMde1Y1ttg3qwsXIYQoKCgQcXFxIiAgoMIPISAgQMTFxQm1Wq10iRaHPasa9s107FnV2FrfrDJcyhkMBrFjxw4BQOzYsUMYDAalS7J47FnVsG+mY8+qxlb6ZjV7LvciSZJx7dHLy8viz56wBOxZ1bBvpmPPqsZW+mbV4UJERJaJ4UJERLJjuBARkewYLkREJDuGCxERyY7hQkREsmO4EBGR7BguREQkO4YLERHJjuFCRESyY7gQEZHsGC5ERCQ7hgsREcmO4UJERLJjuBARkewYLkREJDurDZeioiKcPn0av/32GwAgNzcXWq1W4aosX1FRES5evAgAOHHiBC5fvsy+PURZWRlycnJw4sQJAMC5c+eQn58Pg8GgcGWWja8109nS7zVJCCGULsIUWVlZWLx4MTZu3IjLly+jrKwMpaWl8PT0RMeOHTFmzBhERUXBw8ND6VItyt19u3jxIjQaDZydnVG7dm20a9eOfbsHtVqNtWvX4vvvv8fx48dRWFgIrVaLWrVqwc/PDz179kR0dDTCwsLg6OiodLkWg68109ni7zWrCRe9Xo8ff/wRU6ZMgUajwZNPPokBAwagadOmMBgMOHv2LLZs2YKdO3ciODgYX3/9Ndq0aaN02Ypj36omPT0d77zzDo4ePYouXbpg8ODBaN++Pdzd3aFWq5GZmYmkpCScPXsWo0aNwuzZs+Hn56d02Yria810Nt0zYQX0er345ptvRO3atcWTTz4pfv31V6HT6URaWpqIi4sTcXFx4sSJE0Kr1Ypdu3aJzp07i1atWonffvtN6dIVxb5VzdatW8UjjzwiAgMDxU8//SSKi4uFWq0WCxcuFHFxcWLp0qVCo9GI27dvi/j4eNGwYUMxYMAAkZubq3TpiuFrzXS23jOrCJedO3cKLy8vMXz4cJGfny8MBoMQQohp06YJAAKAWL58uRBCCIPBIC5evChCQ0NFjx49REFBgYKVK4t9M92pU6dE8+bNRVBQkDh27JixZ+fOnRN16tQRAETz5s1Ffn6+EOKPvu3evVs0btxYvPDCC6KkpETJ8hXD15rpbL1nFr+hr9FoEBsbi/r16+PLL7+El5cXJEm67+0lSUKTJk3w9ddf4/Tp01ixYoUZq7Uc7Jvp9Ho9PvnkExQUFGDBggVo06bNA3sG/NG3Hj16YN68ediwYQNSUlLMVK3l4GvNdPbQM4sPl8zMTOzbtw+vvfYaGjVq9NDBDvzxg3j88ccxcuRILFu2DMXFxWao1LKwb6Y7e/YskpKSEBUVhR49elSqZ8AffYuMjES3bt2QkJAAnU5Xw5VaFr7WTGcPPbP4U1x++eUXuLi4oH///jhx4kSFgXvt2jXjf1+6dAlHjx41/r+XlxciIyOxYsUKXLhwwXo2wWTCvpkuLS0NRUVFGDZsGC5cuIA7d+4Yj2VnZ0Ov1wMAtFotjh8/Dk9PT+Pxhg0bIioqCjNmzEBubi4aN25s9vqVwtea6eyiZ0qvyz3MCy+8IFq2bClOnz4tmjZtKmrVqmX8cnR0NK5NOjk5VTj28ssvi/Pnz4u6deuKLVu2KP00zI59M92kSZOEl5eXOHHihOjXr1+Fvri4uBh7JklShWOurq7if/7nf8SePXuEh4eH2L9/v9JPxaz4WjOdPfTMomcuQgiUlJTAxcUFDg4OKCkpQUlJyT1vW1ZWhrKyMuP/a7VaODs7G+9nT9i3qtFoNHB0dISLiwtKS0vv+/zL+3s3nU4HV1dXCCFQWlpqjnItAl9rprOXnll0uEiShLp16yIjIwN6vR59+vSBWq02Hj9z5gyysrIAAO3atUPDhg2Nx9q3bw+1Wo3S0lL4+PiYu3RFydE3jUZT6T0HW1GvXj1oNBqo1WqEhISgdu3axmMajQZpaWnGEAkNDTW+cVKSJDRt2hTXr1+HSqWCt7e3Uk/B7DhGTWc3PVNy2lQZCQkJwtXVVezevVvodLoKX1OmTDFOHxMTEysc0+v1YtmyZaJBgwYiOztb6adhdtXtm5OTkwgKChKjRo0S8+fPFwcPHhRlZWVKP60atXnzZuHs7CwWLlz4t56dPn3aeCpys2bNxM2bN//Wt/fff1+0bNnSKk4TlRPHqOnsoWcWf7ZY37594eHhgcTERAgh4ODgYPxSqf6/fJVKVeFYSUkJvvvuO/To0QMNGjRQ8Bkoo0+fPnBycqpy3wYNGoS5c+eiVatW2LhxI2JiYtCnTx/861//wrp16ypsOtqKrl27wt/fH4mJibhz506Fvjg4OBhvJ0lShb6pVCpcvXoVP/30EwYPHow6deoo+CzMj2PUdPbQM4sPl2bNmuH555/H6tWrsXXrVohKXK3GYDBg2bJlOHz4MN58880KvxjsQU5ODv75z3/i9u3bWLVqVZX69u6772Lw4MGYOXMmtm7dihUrVuCll15Cfn4+5syZg0GDBmHkyJH48ssvkZGRYbUX17ubr68v3njjDRw6dAjz58+v9CnFpaWlmDVrFjQaDcaPH293y4kco6azi54pN2mqvKtXr4ouXbqIJk2aiO3btwu9Xi+EEOKjjz4Sjo6OwsnJSaxYsUIYDAZRVlYmli9fLurWrSumTJkidDqdwtWbj8FgEEuXLhXe3t6iUaNGIjExsUb6duvWLbFt2zYxY8YMER4eLoKDg0VYWJh4++23xZo1a0ROTo65nrLsioqKxMiRI4W7u7v44osvRHFxsTAYDOLcuXPC19dXODo6ihYtWhjfUX3r1i0xadIkUadOHfHtt98qXb5iOEZNZ+s9s4pwEUKI48ePi+DgYOHj4yOmTp0qzp49K06fPi1++eUX8csvv4iLFy+Ko0ePigkTJog6deqI119/Xdy5c0fpss3m0qVL4sknnxQqlUq89NJLxsuT1HTfDAaDOHnypFi6dKkYO3as6Ny5swgODhZDhw4Vn3/+uUhPTxelpaU19bRrxPXr18WIESOEq6uriIyMFLt27RLXr18Xe/bsEbt27RLp6enixo0bIjk5WfTp00d4e3uLr7/+2ioGfE3iGDWdLffMaq6KDPyx3DNr1iysWrUKjo6OaNOmDZo0aQK9Xo8LFy7g1KlT8PX1xfvvv48XX3wRLi4uSpdc44QQ+Pbbb/Gvf/0LHh4eWLhwIQYNGlThNubsW1FRETIyMpCamoq0tDRcv34dLi4u6Ny5M8LCwhAaGoomTZpU92nXuDt37iAhIQHz58/HtWvX4O/vj8DAQHh4eKCgoACnTp3ClStX0KlTJ0yfPh29evWqsFZurzhGTWerPbOqcAH+uP7TiRMnkJycjIyMDFy/fh1OTk5o3rw5+vTpg/DwcNSrV0/pMs3i0qVLGDduHLZv346XX34Zn3/+Oby8vO55WyX6JoRAVlYWUlNTkZqaiiNHjkCn06FJkybGoOnUqRNq1aol678rp9zcXOzYsQO7du1CVlYWSkpK4O3tjaCgIISHhyMkJARubm5Kl2lROEZNZ4s9s7pwuZsQAnq9HpIkWf7mloyEEEhISMDEiRPh5eWF+Ph4REREmHR/JfpWXFyMjIwMpKWlITU1Fbm5uXB2dkanTp0QGhqKsLAwNG3a1GI3xPV6PYQQUKlUnKVUkr2O0eqwlZ5ZdbjYo/Pnz2PcuHHYuXMnxo0bh3nz5lW4xpW1EELgwoULxuWzQ4cOoaysDI0aNUL37t0RFhaGLl26wNXVVelSiagKGC5WwmAwYOHChZg8eTJ8fX2RkJCA/v37K12WbDQaDQ4ePGic1eTk5MDJyQkdO3Y0LqE1b97cYmc1RFQRw8UKnDt3DuPGjcOuXbswYcIEzJ0716o+S9tUQghcunQJ6enpSE1NxcGDB6HVatGgQQPj8lnXrl2510FkwRguFsxgMOCbb77BlClTUL9+fSQkJKBPnz5Kl2V2paWlyMzMNC6hXbp0CQ4ODnj88ccRFhaGsLAwBAQEcFZDZEEYLhbqzJkzGDduHPbs2YPXX38dn3zyCdzd3ZUuyyJkZ2cbl88OHDiA0tJS1KtXD6GhoQgNDUVISAh7RaQwhouF0ev1+PrrrzFt2jQ0bNgQCQkJ6NWrl9JlWSytVovDhw8bZzXnz5+HSqVChw4djHs1LVu25KyGyMwYLhbk1KlTiI6Oxr59+/Dmm29i9uzZFS77Tg935coVpKWlIS0tDRkZGdBoNPD19TXOarp162aVZ9cRWRuGiwXQ6/X48ssvMX36dDRp0gSLFy9Gjx49lC7L6pWVleHIkSPGWc25c+egUqnQrl07Y9g89thjfM8KUQ1guCjsxIkTiI6ORkZGBt555x3MnDmTZ0HVkGvXrhlnNfv27UNxcTG8vb2N76vp1q3bfa9wQESmYbgoRKfT4YsvvsDMmTPRrFkzLFmyBN27d1e6LLuh0+nw66+/GsPm9OnTkCQJbdu2NZ7u3KZNG85qiKqI4aKAY8eOITo6GocOHcJ7772H6dOn853oCrtx44bxfTX79u1DUVER6tSpg+7duyM0NBTdu3e3/I+VJbIgDBczKisrw2effYbY2FgEBgZi8eLFCAkJUbos+gu9Xo9jx44ZL7h58uRJAEDr1q2NZ6AFBQVZ9XWfiGoaw8VMjh49ildeeQVHjx7FxIkT8eGHH1r01YDp/+Xn5xuXz9LT03H79m14enoiJCQEYWFh6N69O+rWrat0mUQWheFSw7RaLebOnYtPPvkErVq1wpIlS9C5c2ely6IqMhgMOH78uPEMtN9//x1CCLRq1cp4Blr79u3h6OiodKlEimK41KAjR47glVdewbFjx/DBBx9gypQpVvNBP1Q5BQUF2LdvH1JTU5Geng61Wo3atWujW7duxr2a+vXrK10mkdkxXGqAVqvFxx9/jLlz56Jt27ZYsmQJOnbsqHRZVMMMBgNOnDhhXEI7duwYDAYDWrRoYTwDrUOHDnByclK6VKIax3CRWWZmJqKjo3HixAlMnToVkydPhrOzs9JlkQJu3bqFffv2GcMmPz8fbm5u6Nq1qzFsGjRooHSZRDWC4SKT0tJSzJo1C/PmzUP79u2xZMkSdOjQQemyyEIYDAacPn3aeMHNo0ePwmAwwN/f37hX07FjR/4hQjaD4SKDAwcO4JVXXsGZM2fw4YcfYtKkSVz6oAcqLCzE/v37jbOaGzduoFatWujSpYvxdOdGjRopXSZRlTFcqqGkpAQzZ87E559/jo4dO2LJkiVo166d0mWRlRFC4OzZs8Yz0I4cOQK9Xo9HH33UuHwWHBzMk0HIqjBcqmjfvn2Ijo5GVlYWZsyYgffee4+nn5Is7ty5g4yMDGPYXLt2DS4uLujcubNxCa1p06ZKl0n0QAwXE2k0Gnz00Uf46quv0LlzZyxZsgRt2rRRuiyyUUIIZGVlGfdqDh8+DJ1Oh8aNGxuXzzp37sw35JLFYbiYIDU1FWPHjsXFixcRGxuLt99+m7MVMqvi4mIcOHDAGDZXr16Fs7MzgoODjUtojz76KD8cjRTHcKmE4uJiTJs2DfPnz0e3bt2wePFiPPbYY0qXRXZOCIGLFy8al88OHToErVaLhg0bGpfPunTpwo9wIEUwXB5i9+7dGDt2LHJycjB79my89dZbvGAhWSSNRoPMzEzjrCY7OxtOTk7o2LGjMWz8/f05qyGzYLjcx507dzBlyhQsWLAAPXr0QEJCAlq2bKl0WUSVdunSJeOpzgcOHIBWq0X9+vWNy2ddu3blx2hTjWG43MMvv/yCsWPHIjc3F3PmzMHrr7/OD40iq1ZaWopDhw4Zl9AuXrwIBwcHPP7448ZZTWBgIGc1JBuGy10KCwsxefJkLFy4EE888QQSEhLQokULpcsikl1OTo5x+ezAgQMoKSmBn5+fMWhCQkLg4eGhdJlkxRgudxk3bhxWrVqFuXPnYsKECZytkF3QarU4fPiwMWzOnz+PqKgoTJ06VenSyIrZfLiY8vTKb1uVpQEuJ5AlM2UclJWVQQhRpeuccRxQOZt/k0ZsbOw9LyCp0+lQVlYmy2fXX7t2DePHj6/24xDVlPj4eJNOSCkpKQEAk96cmZeXh+HDh5tcG9kmmw+XkydPYtq0aRW+d+3aNYwePRpqtRoffPBBtQfEs88+y3Ahi3b+/HmMHTv2obe7evUqvv32Wxw7dgwqlQpdu3bFyy+/DE9Pz4fed/LkyQwXMrL5TQVJkuDg4GD8UqlU6NmzJzp27IgZM2ZgzJgxOHbsWIXbmPpFZOn+Og7u9fX7779jzJgxAID3338fb7/9Ni5fvoyXXnoJ+fn5HAdkEpufufzV6tWroVar8e9//xuSJGHBggXo168fbty4wfVisltXr17F+PHjMXHiRERGRhrHQpcuXfDll19izJgx2LBhAz9KgirN5mcudxNC4OWXX8aGDRuMgyc6OhplZWVITk5WuDoiZRgMBrz00ksYM2ZMhWABAAcHB7z33nto1KgRJk2aZNKJAWTf7Cpczp07B51Oh7CwMOP3JEnC6tWrMXr0aA4csktff/01atWqhZiYmHvO3iVJwvz585GamoqTJ08qUCFZI7sKl8jISEyaNOlvAyg8PBwajQbXr19XqDIiZWg0Gnz33XdYvHjxA5eFXV1d8eGHH+LVV1/lH2FUKXYTLkIInDx5EtOnT//bMUmS8MILL2DkyJEKVEaknEmTJqFnz57w8/N76G2HDBkCnU6HvXv3mqEysnZ2s6H/888/o06dOvfdkPzmm2/g6ekJIQQ39skuaLVapKWlVTosJEnCZ599hvfeew+pqakcJ/RAdjNzGTt2LJYtW3bf425ubnBycsLRo0fNVxSRgmbPno0OHTqY9Ebibt26QafT4dSpUzVYGdkCuwiXsrIy3L59G0OGDHng7aZOncqlMbILQggkJyfj3//+t0n3kyQJEydOxFtvvVVDlZGtsItwmTFjBlq3bv3Qafz777+Pc+fOccOSbN7evXvh5uaGOnXqmHzfYcOGIS8vz3iJGKJ7sYtw+eyzz/Dzzz8/9HZOTk5wdnZGZmZmpR5XCIGMjIzqlkdkdtOmTcOMGTOqtG+iUqnQrl07zJs3rwYqI1thF+Eyc+ZMBAQEVOq206dPx3PPPVep26akpDx0qY3I0uh0OhQVFaFv375VfozPPvsMGzdu5Cyf7ssuwmXy5MmV/gvt3Xffxfnz5ys1aF588UV888031S2PyKxWrFiBhg0bVutsr7p16wL440rIRPdiF+FiyiBycnKCi4sL0tPTH3g7rVYLtVrNq8CS1Vm4cCHmzp1brceQJAnh4eF/u+I4UTm7CBdTffrppw9dGps8eTLat2/Pc/3JqhgMBpSVlaFNmzbVfqwPPvgABw4c4NIY3RPD5R5effVV5OTkQK/X3/O4EAILFiyo1EkCRJZkx44d8PT0lOWPInd3dwB/XEKG6K8YLvfg4OCApk2b3vc9AEePHoVKpULTpk3NXBlR9cyZMweTJk2S5bEkSUKrVq2470j3xHC5j40bN+LDDz+855T/qaeewrx587gkRlZFCIFbt24hPDxctsecOXMmfvrpJ9kej2wHw+U+2rZtCxcXFyQlJVX4fk5ODq5evYo33nhDocqIqqawsBAAZP3UyBYtWkCn03Hfhf6G4XIfkiRh/fr1eO6556DVagH88Zdfv379MHHiRKhUbB1ZlwULFiAoKEjWxyz/+OTs7GxZH5esH39DPkDv3r0REhKCyMhI5ObmYt68ecjPz8fs2bOVLo3IZBs2bMCUKVNkf9zevXvz3fr0NwyXB5AkCZs3b4bBYECvXr2wbNky7N27l7MWskq1atVCy5YtZX/cd999F7/99pvsj0vWzeY/z8XZ2RmbN2+u1mO89tprOHfuHB555BGcPXsWZ8+erXC8WbNm1Xp8oprm5OSE1157rcY+6Gv8+PHIzc2tkccm6yQJG9+JM+Uc/PJWmHoWmIODA5ydnU26D5E5mXIF49LSUjg5OZk8Q3dwcLjvh/GR/bH5cDGFXq+HEAIODg48zZjskhACWVlZxvdxyXlmGdkXbh7c5fbt2wgLC0O9evVw+PBhpcshMjtJkqDX6xEdHY1//OMfuH37ttIlkZViuNzF29sbW7duRUBAAAYMGIBDhw4pXRKR2bVs2RKLFi1Cbm4uJkyYwIChKmG4/IWXlxe2bt2KwMBAhIeHV/qDw4hsSWBgIBYtWoRr165hwoQJuHXrltIlkZVhuNxDnTp1kJKSgpYtWyI8PBwHDx5UuiQis2vRogXi4+Nx/fp1TJgwAWq1WumSyIowXO6jPGBat26N8PBwHDhwQOmSiMwuICAAixYtws2bNxkwZBKGywN4enpi8+bNaNu2LSIiIpCRkaF0SURmVx4weXl5GD9+PAoKCpQuiawAw+UhygMmKCgIERER2L9/v9IlEZmdv78/Fi1ahPz8fIwfPx75+flKl0QWjuFSCR4eHkhOTkb79u0RERGBffv2KV0Skdn5+/sjISEBarUaEyZMYMDQAzFcKqk8YB5//HEMHDgQ6enpSpdEZHbNmjVDfHw81Go1ZzD0QAwXE7i7u2PTpk3o2LEjBg4ciNTUVKVLIjK7Zs2aISEhAbdv30ZMTAzy8vKULoksEMPFROUB06lTJwwaNKjGLgRIZMkeffRRxMfHo6ioiAFD98RwqYLatWsjKSkJnTt3xqBBg7Bnzx6lSyIyu/KAKS4uRkxMDG7evKl0SWRBGC5VVB4wXbt2xeDBg7F7926lSyIyu6ZNmyI+Ph4ajQYxMTG4ceOG0iWRhWC4VIObmxs2btyIkJAQDB48GLt27VK6JCKza9KkCeLj41FSUoLx48czYAgAw6XaygOme/fuGDJkCAOG7FLjxo2RkJCAkpISxMTE4Pr160qXRApjuMjA1dUVGzZsQGhoKAYPHoydO3cqXRKR2TVq1AgJCQnQarWIiYnBtWvXlC6JFMRwkYmrqyvWr1+Pnj174qmnnsJ///tfpUsiMrtGjRohPj4eOp2OAWPnGC4ycnV1xc8//4wnnngCTz31FHbs2KF0SURmVx4wBoMB48aNQ25urtIlkQIYLjKrVasW1q1bh969e+Ppp5/G9u3blS6JyOwaNmyI+Ph4CCEQExODq1evKl0SmRnDpQaUB0zfvn3x9NNP4z//+Y/SJRGZ3SOPPIKEhAQAYMDYIYZLDXFxccFPP/2E/v3745lnnsG2bduULonI7Bo0aICEhARIkoSYmBhcuXJF6ZLITBguNcjFxQVr1qzBgAEDEBkZiZSUFKVLIjK7+vXrIyEhASqVCjExMcjJyVG6JDIDhksNKw+YiIgIDB06FFu2bFG6JCKzq1+/PuLj4+Ho6MiAsRMMFzNwdnbGqlWr8OSTTyIqKgqbN29WuiQisysPGGdnZ4wbN44BY+MYLmbi7OyMlStXYtCgQYiKisKmTZuULonI7OrVq4dFixahVq1aGDduHLKzs5UuiWoIw8WMygPmqaeewvDhw5GUlKR0SURm99eAuXz5stIlUQ1guJiZk5MTfvjhBzz99NMYMWIENm7cqHRJRGbn5+eH+Ph4uLm5ISYmBpcuXVK6JJIZw0UBTk5O+P777/HMM89gxIgRWL9+vdIlEZld3bp1KwTMxYsXlS6JZMRwUUh5wERFRWHUqFH4+eeflS6JyOx8fX2RkJAADw8PBoyNYbgoyNHREcuXL8ewYcPw7LPPYt26dUqXRGR2Pj4+WLRoETw9PRETE4MLFy4oXRLJQBJCCKWLsHc6nQ5jxozBmjVr8MMPP2D48OEVjgshkJeXh6KiIri7u8PX1xeSJClULVHNyM/Px4QJE6BWq7Fo0SI0b968wnGOA+vCmYsFcHR0RGJiIkaNGoXRo0djzZo1AAC1Wo24uDgEBgbCz88PzZs3h5+fHwIDAxEXFwe1Wq1s4UQyKp/BeHt7IyYmBllZWQA4DqwVZy4WRK/X45VXXsGPP/6IiRMnIi4uDsXFxQD++KutXPlfa25ubli7di0iIiIUqZeoJhQUFODVV19FXl4enn/+ebzxxhscB1aI4WJh9Ho9Bg4ciO3bt0OSJDzox6NSqSBJEpKTkzmwyKao1WpERkZi165dHAdWiuFiYdRqNRo1amT8S+1hVCoVXF1dkZ2dDS8vr5otjshMOA6sH/dcLExiYiI0Gk2lb28wGFBcXIzvvvuuBqsiMi+OA+vHmYsFEUIgMDAQWVlZD1wG+CtJkuDv748zZ87w7BmyehwHtoHhYkFu3rwJPz+/at3f19dXxoqIzI/jwDZwWcyCFBUVVev+hYWFMlVCpByOA9vAcLEg7u7u1bq/h4eHTJUQKYfjwDYwXCyIr68vAgICTF4vliQJAQEB8PHxqaHKiMyH48A2MFwsiCRJePPNN6t037feeoubmGQTOA5sAzf0LYxarUbjxo2h0WhgMBgeenue30+2iOPA+nHmYmG8vLywdu1aSJIElerBP57ydyavW7eOA4psCseB9WO4WKCIiAgkJyfD1dUVkiT9bZpf/j1XV1ds3rwZ4eHhClVKVHM4Dqwbw8VCRUREIDs7G1999RX8/f0rHPP398dXX32FnJwcDiiyaRwH1ot7LlZACIH8/HwUFhbCw8MDPj4+3LQku8NxYF0YLkREJDsuixERkewYLkREJDuGCxERyY7hQkREsmO4EBGR7BguREQkO4YLERHJjuFCRESyY7gQEZHsGC5ERCQ7hgsREcmO4UJERLJjuBARkewYLkREJLv/A4ygZOm+LgmfAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"# create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5).\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=2)\n",
|
|
"\n",
|
|
"# create dataset f(x,y) = exp(sin(pi*x)+y^2)\n",
|
|
"f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
|
|
"dataset = create_dataset(f, n_var=2)\n",
|
|
"dataset['train_input'].shape, dataset['train_label'].shape\n",
|
|
"\n",
|
|
"# train the model\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
|
|
"model(dataset['train_input'])\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "280cc49f",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.2\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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R3h4ODp16oTq6mruNWYjDBcnFBQUhMTEROsLkGaz+ZHur6iowDfffAMASEpKgq+vry3KJMLFixdRXFwMvV6P6Ohoh3mI0ev1iImJAfDr0Bj3GlMfw8UJCSGsx7ceOXLkkY5vlVLiwIEDyM/Ph7+/P6ZOneowDZ5ci5QSmZmZqK2tRdeuXRESEmLvkhoZPHgwtFot8vPzcfPmTXuX43IYLk5ICIHY2Fj0798ft27dwubNm5t8b11dHdatWweLxYLRo0cjMjLShpVSa1ZXV4djx44BAGJjY216KNijEkKgV69eCAgIQHl5OfLz8zk0pjKGi5Py9vbGzJkzIYRAampqk955kVLizJkz+Omnn+Du7o5nn322RTcPpNalrKwM58+fh1arRWxsrMP1kP39/dGjRw/U19dbQ5DUw3BxUkIITJs2DSEhIbh48SK2bNny0CcvKSW+/PJLlJeXo2/fvhg5cqTDNXhyDVJK5Ofno6KiAk888YRD9pC1Wi3i4uIAALm5uVySrDKGixMLDQ3F9OnToSgKPv/884ce33rlyhVs2rQJQgg8//zznMgnm8rKykJ9fT169OjRIidOPiohBPr37w+dTofLly+rfk5Sa8dwcWJCCMydOxeBgYE4fvw4vv322/v2XqSUWLduHQoLCxEeHo6kpCT2WshmampqcOLECQDAwIEDHWYJ8t26dOmC9u3bw2g0Ii8vz97luBSGixNrmJScOXMm6uvrsXz5cly9evU33yelREFBAf75z38CAObOncs38smmrl69isuXL0On09l1o8qH8fHxQa9evaznzXBSXz0MFyen0WiwaNEidOzYEadOncLy5ct/s2a/rq4OH3/8MQoLC9G9e3c899xzDtvYyTXk5+ejuroaQUFB6NKli73LuS8hBKKjowH8eiIr513Uw3BxckIIRERE4M0334RGo8E//vGPRnuOSSmxZcsWfPnll3B3d8d//ud/stdCNiWlRG5uLhRFQY8ePVQ9NE9tQgj06dMHnp6eKC4uRklJib1LchkMFxcghMC8efPw+9//HtXV1Vi0aBG++OILlJaWIiUlBa+//jqMRiOmTp1qXb5MZCu1tbXW+YsBAwbYfRfkhwkNDUVwcDCMRiPy8/PtXY7L4EsOLkKv12P58uUoKytDeno6/vjHP+KJJ57AzZs3rYeBLVu2jMcYk81dv34dhYWF8PDwQFRUlMM/zOj1enTv3h2//PILTpw4gXbt2tm7JJfg2I8U1GRCCISEhGDjxo1YsGAB2rZti7KyMnh5eWH27NnYsGEDQkNDHb6hk/MrKSmBRqNBUFAQOnXqZO9yHkqj0aBfv37QarW4fPnyI+/VR/fGnouKpJQoLy+364mOHh4eWLJkCebOnYvi4mIEBQWha9eucHd3R3l5+UPvr62tbYEqyVVJKREREYHVq1db/3972PtXjmDgwIF455130K1bN+zevdve5bgEhotKhBDo3LkzVq9e7bBr+pvCZDKhbdu29i6DnJAQAh06dEBKSoq1DWRkZNi5qkeTl5eHmpoah16E4CyE5MJuVUgpXWaNvBCCw2f0yNgG6E4MFyIiUh0n9ImISHUMFyfRMOTAjia1ZoqioKamxvqSMDkuhouTyMnJgZubG3JycuxdCpHdnD17FsOGDcPZs2ftXQo9BMOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBcnIKVEeXk5AKC8vJwHhlGr1NAOzGYz24ETYLg4MIPBgJUrVyIyMhJjx46FoigYO3YsIiMjsXLlShgMBnuXSGRzd7aDoUOH4uTJkxg6dCjbgYMTkvHvkNLS0jB9+nQYjUYAaPSUJoQAAOj1eqSmpiIxMdEuNRLZGtuB82K4OKC0tDRMmjQJUsoHnhWu0WgghMC2bdvYsMjlsB04N4aLgzEYDAgNDYXJZHpgg2qg0Wjg5eWFwsJC+Pn52b5AohbAduD8OOfiYNauXQuj0dikBgUAiqLAaDRi3bp1Nq6MqOWwHTg/9lwciJQSkZGRKCgoeKSVMEIIhIeH49y5c9ZxaCJnxXbgGhguDqSsrAxBQUHNuj8wMFDFiohaHtuBa+CwmAOpqqpq1v2VlZUqVUJkP2wHroHh4kB8fHyadb+vr69KlRDZD9uBa2C4OJDAwEB069btkceLhRDo1q0bAgICbFQZUcthO3ANDBcHIoTAokWLHuveV199lZOY5BLYDlwDJ/QdDNf3E7EduAL2XByMn58fUlNTIYSARvPg/zwNbyZ//fXXbFDkUtgOnB/DxQElJiZi27Zt8PLyghDiN938hj/z8vLC9u3bMX78eDtVSmQ7bAfOjeHioBITE1FYWIgVK1YgPDy80bXw8HCsWLECRUVFbFDk0tgOnBfnXJyAlBI3b95EZWUlfH19ERAQwElLanXYDpwLw4WIiFTHYTEiIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFT3/wAlZzjDvmRRwgAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 6 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"mode = 'auto'\n",
|
|
"\n",
|
|
"if mode == 'auto':\n",
|
|
" # automatic\n",
|
|
" model = model.prune_node(threshold=1e-2) # by default the threshold is 1e-2\n",
|
|
" model.plot()\n",
|
|
"elif mode == 'manual':\n",
|
|
" # manual\n",
|
|
" model = model.prune_node(active_neurons_id=[[0]])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "cf7001ab",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Pruning Edges"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "b58417be",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"checkpoint directory created: ./model\n",
|
|
"saving model version 0.0\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 3.23e-02 | test_loss: 3.31e-02 | reg: 8.21e+00 | : 100%|█| 6/6 [00:03<00:00, 1.86it/s\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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JQHKqrRr8GzYsEHtUjWDPfMM++Y+9swzeuybz4WLEEJkZWWJhIQE0aBBg2IfQoMGDURCQoLIzs5Wu0TNYc88w765jz3zjN765pPh4uRwOMTmzZsFALF582bhcDjULknz2DPPsG/uY888o5e++cw5l5JIkuQ69hgaGqr52RNawJ55hn1zH3vmGb30zafDhYiItInhQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOJ8Nl9zcXJw4cQK//PILAODy5cuwWq0qV6V9ubm5OHfuHADg2LFjuHDhAvt2FzabDRkZGTh27BgA4PTp07h+/TocDofKlWkbtzX36en3miSEEGoX4Y60tDTMmjULq1atwoULF2Cz2VBYWIjKlSvjsccew4svvog+ffogJCRE7VI1pWjfzp07B4vFgoCAAFSqVAmNGzdm30qQnZ2NZcuW4dtvv8XRo0eRk5MDq9WKChUqIDw8HO3atcPQoUPRtm1bmEwmtcvVDG5r7tPj7zWfCRdZlrFw4UKMHTsWFosFTz75JLp06YK6devC4XDg1KlTWL9+PbZs2YKmTZti2rRpaNSokdplq45980xqaipGjRqFw4cPo0WLFujZsyeaNGmC4OBgZGdnY9++fVi9ejVOnTqFgQMH4sMPP0R4eLjaZauK25r7dN0z4QNkWRZffvmlqFSpknjyySfFoUOHhN1uFykpKSIhIUEkJCSIY8eOCavVKrZt2yaaN28u7r//fvHLL7+oXbqq2DfPbNiwQfztb38TUVFR4vvvvxf5+fkiOztbJCYmioSEBDFnzhxhsVjEzZs3xYwZM0RERITo0qWLuHz5stqlq4bbmvv03jOfCJctW7aI0NBQ0a9fP3H9+nXhcDiEEEK8++67AoAAIBYsWCCEEMLhcIhz586J6OhoERMTI7KyslSsXF3sm/uOHz8u6tevLx5++GFx5MgRV89Onz4tqlSpIgCI+vXri+vXrwshfu/b9u3bRe3atcXzzz8vCgoK1CxfNdzW3Kf3nmn+hL7FYkF8fDxq1qyJzz77DKGhoZAk6bb3lyQJderUwbRp03DixAl888035VitdrBv7pNlGZMmTUJWVha++OILNGrU6I49A37vW0xMDD7++GOsXLkSycnJ5VStdnBbc58/9Ezz4bJv3z7s2rULr7/+OmrVqnXXnR34/YN49NFHMWDAAMydOxf5+fnlUKm2sG/uO3XqFFavXo0+ffogJiamVD0Dfu9b79690bp1a8ycORN2u93LlWoLtzX3+UPPND/FZevWrQgMDETnzp1x7NixYjvulStXXP99/vx5HD582PX/Q0ND0bt3b3zzzTc4e/as75wEUwj75r6UlBTk5uaib9++OHv2LPLy8ly3paenQ5ZlAIDVasXRo0dRuXJl1+0RERHo06cPxo0bh8uXL6N27drlXr9auK25zy96pvZxubt5/vnnRcOGDcWJEydE3bp1RYUKFVw/JpPJdWzSbDYXu+3ll18WZ86cEdWrVxfr169X+22UO/bNfW+//bYIDQ0Vx44dE0888USxvgQGBrp6JklSsduCgoLEV199JXbs2CFCQkLEzz//rPZbKVfc1tznDz3T9MhFCIGCggIEBgbCaDSioKAABQUFJd7XZrPBZrO5/r/VakVAQIDrcf6EffOMxWKByWRCYGAgCgsLb/v+nf0tym63IygoCEIIFBYWlke5msBtzX3+0jNNh4skSahevTp2794NWZbRsWNHZGdnu24/efIk0tLSAACNGzdGRESE67YmTZogOzsbhYWFqFatWnmXriol+maxWEp9zkEvatSoAYvFguzsbLRq1QqVKlVy3WaxWJCSkuIKkejoaNeFk5IkoW7dusjMzITBYEDVqlXVegvljvto6Qkh4HA4IIRAtWrVcOPGDX33TL1BU+nMnDlTBAUFie3btwu73V7sZ+zYsa7h47x584rdJsuymDt3rrjnnntEenq62m+j3JW1b2azWTRu3FgMGjRIfP7552Lv3r3CZrOp/ba8at26dSIgIEAkJib+pWcnTpxwTUWuV6+euHr16l/69q9//Us0bNjQJ6aJKon76F85HA4hy7Kw2+3CarWKwsJC14/VahVJSUm675nmZ4t16tQJISEhmDdvHoQQMBqNrh+D4c/yDQZDsdsKCgowf/58xMTE4J577lHxHaijY8eOMJvNHvetR48emDJlCho2bIjVq1cjNjYWnTp1wujRo7F8+fJiJx31omXLloiMjMS8efOQl5dXrC9Go9F1P0mSivXNYDDg0qVL+P7779GzZ09UqVJFxXdR/riP/j4qkWUZdrvddSjLbrfD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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"# create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5).\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=2)\n",
|
|
"\n",
|
|
"# create dataset f(x,y) = exp(sin(pi*x)+y^2)\n",
|
|
"f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
|
|
"dataset = create_dataset(f, n_var=2)\n",
|
|
"dataset['train_input'].shape, dataset['train_label'].shape\n",
|
|
"\n",
|
|
"# train the model\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=6, lamb=0.01);\n",
|
|
"model(dataset['train_input'])\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "4d57cbfe",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.2\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model.prune_edge()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "e3a23aed",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwxUlEQVR4nO3de1hUdf4H8PeZ4SIKiiLqopKAUF5TEFFEU1Mx6GKoeal+VqhQrpW/Xcs1LcVSc2sTrV0EXTO7eMlLEoqmi1dQFDXTx0RFUVBEhVGQgYGZ7++PlvlJeWHgMGcu79fz8DzFmRne82GOb85lzkhCCAEiIiIZqZQOQEREtoflQkREsmO5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7ByUDkBkDYQQuHnzJkpLS+Hq6goPDw9IkqR0LCKLxS0XogfQaDSIj4+Hv78/PD094ePjA09PT/j7+yM+Ph4ajUbpiEQWSeInURLd2/bt2zFy5EiUlZUB+G3rpVr1Vkvjxo2xYcMGhIeHK5KRyFKxXIjuYfv27YiMjIQQAgaD4b63U6lUkCQJKSkpLBiiu7BciH5Ho9GgXbt20Gq1DyyWaiqVCi4uLsjLy4O7u3vDBySyAjzmQvQ7q1atQllZWa2KBQAMBgPKysrw1VdfNXAyIuvBLReiuwgh4O/vj5ycHJiyakiSBF9fX5w9e5ZnkRGB5UJUw40bN+Dp6Vmv+3t4eMiYiMg6cbcY0V1KS0vrdf+SkhKZkhBZN5YL0V1cXV3rdX83NzeZkhBZN5YL0V08PDzg5+dn8nETSZLg5+eHFi1aNFAyIuvCciG6iyRJmDp1ap3u++abb/JgPtF/8YA+0e/wfS5E9cctF6LfcXd3x4YNGyBJElSqB68i1e/Q37hxI4uF6C4sF6J7CA8PR0pKClxcXCBJ0h92d1V/z8XFBVu3bsWwYcMUSkpkmVguRPcRHh6OvLw8LF68GL6+vjWW+fr6YvHixcjPz2exEN0Dj7kQ1YIQAmlpaXjyySexa9cuDBo0iAfviR6AWy5EtSBJkvGYiru7O4uF6CFYLkREJDuWCxERyY7lQkREsmO5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7FguRA9RWVmJ/Px8nD59GgBw/vx5FBUVwWAwKJyMyHLxY46J7kOj0WDDhg345ptvcOrUKZSUlECn06FRo0bw9PRE//79ER0djX79+sHBwUHpuEQWheVCdA8ZGRmYNm0aTpw4geDgYERGRqJ79+5wdXWFRqNBVlYWkpOTce7cOYwZMwYffvghPD09lY5NZDFYLkS/s2PHDrzyyitwdXXFggULEBERAZ1OhzVr1qCiogJNmzbF2LFjUVlZiTVr1mDOnDno0qULVq9ejdatWysdn8gisFyI7pKdnY3hw4ejSZMmWLNmDTp37gxJkpCTk4PAwEDcunULPj4+yMrKQvPmzSGEwP79+zF+/HgMHDgQy5cvh7Ozs9JPg0hxPKBP9F96vR7z589HcXExPv/8c2OxPIgkSQgLC8OiRYvwww8/IDU11UxpiSwby4Xov86dO4fk5GRERUUhLCzsocVSTZIkjBgxAn369EFSUhKqqqoaOCmR5eMpLkT/lZ6ejtLSUowcORIXL17EnTt3jMvy8vKg1+sBADqdDqdOnULTpk2Ny728vBAVFYU5c+agoKAA7dq1M3t+IkvCciH6r19//RWNGzeGr68vYmJicODAAeMyIQQqKioAAFeuXMHQoUONyyRJwqeffopu3bqhrKwMV65cYbmQ3WO5EP2XVquFg4MDnJ2dUVFRgfLy8nveTgjxh2VVVVVwcXGpUUJE9ozlQvRfrVq1glarhUajQUhICJo0aWJcptVqkZ6ebiyR0NBQ4xsnJUmCt7c3CgsLoVKp0Lx5c6WeApHFYLkQ/VdQUBB0Oh0yMzPx8ccf11iWk5OD4OBg3Lp1C61bt8batWvh7u5uXC5JEmbOnIk2bdpwlxgReLYYEQDg+PHj+OKLL1BZWYmVK1fizp07UKvVNb6qSZIElUpl/L5KpcLVq1fx/fffIzIyEs2aNVPwmRBZBpYL2bVjx47h+eefR2BgIM6cOYOXXnoJx48fx5IlS2p9SnFFRQXmzZsHrVaLmJiYWp/CTGTLuFuM7FJWVhbi4uKQnJyMjh074ssvv8T48eNRUVEBnU6Hjz/+GI0bN8brr7+ORo0aAQAcHBzg4OBg3IoRQqCkpAQfffQR1qxZg88++wyPPvqokk+LyGLw8i9kV44cOYK4uDj8+OOPCAgIwHvvvYdx48bVuKrx9evXMWXKFPz4448IDw/HtGnT0KlTJ5w5cwYGgwFOTk7o2LEjMjMz8cknn+D48eOIi4vD66+/XmP3GZE9Y7mQXcjMzERcXBy2bt2KRx99FLNmzcLYsWPvWwZ37txBUlISlixZgmvXrsHX1xf+/v5wc3NDcXExzpw5gytXriAoKAgffPABnnjiCahU3MtMVI3lQjbt0KFDiIuLw7Zt2/DYY49h9uzZeOGFF2q9hVFQUIBdu3Zhz549yMnJQXl5OZo3b46uXbti2LBhCAkJQePGjRv4WRBZH5YL2aSMjAzExcVh+/bt6Ny5M2bNmoXRo0fXa7eVXq+HEAIqlYpbKUQPwTWEbMqBAwcQHh6Ofv36IS8vD2vWrMGJEyceuAusttRqNRwcHFgsRLXAtYRswv79+zFs2DD0798fV69exbp16/Dzzz/jhRdeYBkQKYBrHVm1vXv3YsiQIRgwYAAKCwuxfv16HD9+HKNGjWKpECmIax9Zpd27d2Pw4MEYOHAgioqKsGHDBhw9ehQjR45kqRBZAK6FZDWEEEhLS8OgQYMwePBg3Lp1C5s2bUJWVhaef/55lgqRBeHaSBZPCIFdu3Zh4MCBePLJJ1FSUoLNmzfjyJEjeO6553i5FSILxHIhiyWEwM6dOzFgwAAMHToUWq0WW7ZsweHDh/Hss8+yVIgsGMuFLI4QAjt27ED//v0xbNgw6HQ6/Pjjjzh06BCefvpplgqRFWC5kMUQQiA1NRX9+vXD8OHDodfrkZKSgoMHDyIiIoKlQmRFWC6kOCEEtm3bhtDQUGOJbNu2Denp6XjqqadYKkRWiOVCihFCICUlBX369EFkZCTUajW2b9+O/fv3Izw8nKVCZMVYLmR2QggkJycjJCQEzzzzDJydnbFjxw7s27cPQ4cOZakQ2QCWC5mNEAJbtmxBcHAwnnvuOTRu3Bg7d+7Enj17MGTIEJYKkQ1huVCDE0Jg8+bN6NWrF0aMGAE3Nzf85z//Mb7LnqVCZHtYLtRgDAYDNm7ciMDAQERFRcHd3R1paWlIS0vDwIEDlY5HRA2I5UKyMxgM2LBhAwIDAzFq1Ci0bNkSe/bswa5du/DEE08oHY+IzIDlQrIxGAxYv349evTogdGjR6NVq1bYu3cvfvrpJ/Tv31/peERkRiwXqje9Xo+1a9fi8ccfx5gxY+Dl5YX9+/djx44dCAsLUzoeESmA5UJ1ptfrsWbNGnTv3h3jxo1D+/btceDAAaSmpiI0NFTpeESkIJYLmUyv1+Pbb79Ft27dMH78eHTo0AEZGRnYunUr+vbtq3Q8IrIALBeqtaqqKnz99dfo2rUrXnrpJfj5+eHgwYNISUlBSEiI0vGIyIKwXOihqqqqsHr1anTp0gX/8z//A39/fxw6dAjJycno3bu30vGIyAKxXOi+qqqqsGrVKnTu3BkTJkxAp06dcPjwYeO77ImI7oflQn9QWVmJlStXolOnTnj11VfRtWtXZGVlYfPmzQgKClI6HhFZAQelA5DlqKysxOrVqzF//nzk5OTg+eefN75vhYjIFCwXQmVlJVatWoUFCxbgwoULGDlyJDZu3Iju3bsrHY2IrBTLxY7pdDp8+eWXWLBgAXJzczF69Ghs3rwZ3bp1UzoaEVk5losd0ul0WLlyJRYsWIDLly9j9OjRSE5ORteuXZWORkQ2ggf07dCiRYvwxhtvIDQ0FL/88gvWrFnDYiEiWUlCCKF0CKq/efPm4ZFHHoGbm1uD/YybN29i4sSJDfb4RGQ7WC42YuzYsTh+/Dh+/vlnqFQNs0H64osvYt26dQ3y2ERkW3jMxUZIkoTS0lIsX74cU6ZMUToOEdk5HnOxIevXr8f06dPBjVEiUhrLxYb06dMHOp0OV65cUToKEdk5losNkSQJ0dHRGDVqlNJRiMjO8ZiLjVm8eDFcXV2h1+uhVquVjkNEdopbLjbGxcUFbdu2xdKlS5WOQkR2jOVigzZt2oQZM2bwwD4RKYblYoMCAwMBAEeOHFE4CRHZK5aLDZIkCf/4xz8wYsQIbr0QkSJYLjYqNjYWhYWFyM7OVjoKEdkhlouNUqlUmDt3LoYPH86tFyIyO5aLDZsxYwYKCwuRkpKidBQisjMsFxumUqmwbt06jBkzBmVlZUrHISI7wnKxcREREejfvz8P7hORWbFcbJwkSdi0aRNOnTqF2bNns2CIyCx4+Rc74OLigr1796JXr15o2rQppk+fDkmSlI5FRDaM5WIn/Pz8kJaWhvDwcBQWFmL+/PlwcnJSOhYR2SjuFrMjPXr0wL59+7B9+3Y888wzOHfuHHeTEVGDYLnYmYCAAOzbtw/t27fHgAED8I9//AMajYYlQ0SyYrnYIXd3dyQmJmL58uVYu3Yt+vfvj8TERBQWFrJkiEgWLBc7pVKpEBERgbS0NEyfPh0rV65EWFgY3nzzTWzbtg2XL1+GVqtl2RBRnfCAvp1r0qQJXn75ZYwaNQr79+/Hhg0bMGPGDJSVlaF169bo1KkTQkJCEBoaqnRUIrIikuCfpjZh3Lhx+Pbbb+v9OEII3L59G7m5ufj1119x7NgxHD58GLm5uQgMDMS6detkSEtEto5bLjaiZcuW2Lx5s6yP6eTkhJCQEAQFBSEvL4+XkCGiWuOWi42oqqpq8J8hSRLUanWD/xwisn4sFzt096+c79QnoobAs8Xs0LFjx6BWq3Hs2DGloxCRjWK5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsHJQOUB9CCNy8eROlpaVwdXWFh4cHJElSOpZFE0KguLgYAFBcXAwhBGdWC3ytmY4zqxtbmZtVbrloNBrEx8fD398fnp6e8PHxgaenJ/z9/REfHw+NRqN0RItz98yGDBkCIQSGDBnCmT0EX2um48zqxubmJqxMamqqaNKkiZAkSUiSJAAYv6q/16RJE5Gamqp0VIvBmdUN52Y6zqxubHFuVlUuqampQq1WC5VKVWP4v/9SqVRCrVZb1S+ioXBmdcO5mY4zqxtbnZskhBBybw01BI1Gg3bt2kGr1cJgMDz09iqVCi4uLsjLy4O7u3vDB7RAnFndcG6m48zqxpbnZjXHXFatWoWysrJa/QIAwGAwoKysDF999VUDJ7NcnFndcG6m48zqxpbnZhVbLkII+Pv7IycnB6bElSQJvr6+OHv2rFWebVEfnFndcG6m48zqxtbnZhXlcuPGDXh6etbr/h4eHjImsnycWd1wbqbjzOrG1udmFbvFSktL63X/kpISmZJYD86sbjg303FmdWPrc7OKcnF1da3X/d3c3GRKYj04s7rh3EzHmdWNrc/NKsrFw8MDfn5+Ju9flCQJfn5+aNGiRQMls1ycWd1wbqbjzOrG1udmFeUiSRKmTp1ap/u++eabFn3Qq6FwZnXDuZmOM6sbW5+bVRzQB2z7fPCGwpnVDedmOs6sbmx5blax5QIA7u7u2LBhAyRJgkr14NgqlQqSJGHjxo0W/wtoSJxZ3XBupuPM6sam52buSwLUV22vwbN9+3alo1oMzqxuODfTcWZ1Y4tzs7pyEUKI4uJiER8fL/z8/Gr8Evz8/ER8fLzQaDRKR7Q4nFndcG6m48zqxtbmZpXlUs1gMIhdu3YJAGLXrl3CYDAoHcnicWZ1w7mZjjOrG1uZm9Ucc7kXSZKM+x7d3d0t/uwJS8CZ1Q3nZjrOrG5sZW5WXS5ERGSZWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLKz2nIpLS1FdnY2fvnlFwBAQUEBdDqdwqksX2lpKXJzcwEAp0+fxuXLlzm3h6isrER+fj5Onz4NADh//jyKiopgMBgUTmbZ+FoznS39uyYJIYTSIUyRk5OD5cuXY8uWLbh8+TIqKytRUVGBpk2bomfPnpgwYQKioqLg5uamdFSLcvfccnNzodVq4eTkhCZNmqBbt26c2z1oNBps2LAB33zzDU6dOoWSkhLodDo0atQInp6e6N+/P6Kjo9GvXz84ODgoHddi8LVmOlv8d81qykWv1+O7777DzJkzodVq8dRTT2Ho0KHw9vaGwWDAuXPnsG3bNqSlpSEwMBBLly5F586dlY6tOM6tbjIyMjBt2jScOHECwcHBiIyMRPfu3eHq6gqNRoOsrCwkJyfj3LlzGDNmDD788EN4enoqHVtRfK2ZzqZnJqyAXq8XX3zxhWjSpIl46qmnxM8//yyqqqpEenq6iI+PF/Hx8eL06dNCp9OJPXv2iF69eolHH31U/PLLL0pHVxTnVjfbt28Xf/rTn4S/v7/4/vvvRVlZmdBoNCIhIUHEx8eLlStXCq1WK27fvi0SExOFl5eXGDp0qCgoKFA6umL4WjOdrc/MKsolLS1NuLu7i1GjRomioiJhMBiEEELMmjVLABAAxOrVq4UQQhgMBpGbmytCQ0NFWFiYKC4uVjC5sjg30505c0b4+PiIrl27ipMnTxpndv78edGsWTMBQPj4+IiioiIhxG9z27t3r2jXrp146aWXRHl5uZLxFcPXmulsfWYWf0Bfq9UiLi4OrVu3xmeffQZ3d3dIknTf20uShPbt22Pp0qXIzs7G119/bca0loNzM51er8f8+fNRXFyMzz//HJ07d37gzIDf5hYWFoZFixbhhx9+QGpqqpnSWg6+1kxnDzOz+HLJysrCwYMH8cYbb6Bt27YPXdmB334RPXr0wAsvvIAvv/wSZWVlZkhqWTg30507dw7JycmIiopCWFhYrWYG/Da3ESNGoE+fPkhKSkJVVVUDJ7UsfK2Zzh5mZvGnuOzevRvOzs4YMmQITp8+XWPFvXbtmvG/L126hBMnThj/393dHSNGjMDXX3+NixcvWs9BMJlwbqZLT09HaWkpRo4ciYsXL+LOnTvGZXl5edDr9QAAnU6HU6dOoWnTpsblXl5eiIqKwpw5c1BQUIB27dqZPb9S+FoznV3MTOn9cg/z0ksviYCAAJGdnS28vb1Fo0aNjF8ODg7GfZOOjo41lr366qviwoULomXLlmLbtm1KPw2z49xM98477wh3d3dx+vRp8eSTT9aYi7Ozs3FmkiTVWObi4iL++c9/in379gk3Nzdx6NAhpZ+KWfG1Zjp7mJlFb7kIIVBeXg5nZ2eo1WqUl5ejvLz8nretrKxEZWWl8f91Oh2cnJyM97MnnFvdaLVaODg4wNnZGRUVFfd9/tXzvVtVVRVcXFwghEBFRYU54loEvtZMZy8zs+hykSQJLVu2RGZmJvR6PQYNGgSNRmNcfvbsWeTk5AAAunXrBi8vL+Oy7t27Q6PRoKKiAi1atDB3dEXJMTetVlvrYw62olWrVtBqtdBoNAgJCUGTJk2My7RaLdLT040lEhoaanzjpCRJ8Pb2RmFhIVQqFZo3b67UUzA7rqOms5uZKbnZVBtJSUnCxcVF7N27V1RVVdX4mjlzpnHzcdWqVTWW6fV68eWXX4o2bdqIvLw8pZ+G2dV3bo6OjqJbt25i7NixYsmSJeLIkSOisrJS6afVoLZu3SqcnJxEQkLCH2aWnZ1tPBW5Q4cO4saNG3+Y27vvvisCAgKs4jRROXEdNZ09zMzizxYbPHgw3NzcsGrVKgghoFarjV8q1f/HV6lUNZaVl5fjq6++QlhYGNq0aaPgM1DGoEGD4OjoWOe5RUREYOHChQgICEBycjJiYmIwePBgTJ8+HRs3bqxx0NFW9O7dG76+vli1ahXu3LlTYy5qtdp4O0mSasxNpVLh6tWr+P777xEZGYlmzZop+CzMj+uo6exhZhZfLh06dMCLL76IdevWYfv27RC1uFqNwWDAl19+iWPHjmHq1Kk1/mGwB/n5+Xjrrbdw+/ZtrF27tk5z+9///V9ERERg7ty5SE1NxerVq/HKK6+gqKgICxcuRGRkJF544QUsXrwYmZmZVntxvbt5eHjgz3/+M44ePYolS5bU+pTiiooKzJs3D1qtFjExMXa3O5HrqOnsYmbKbTTV3tWrV0VwcLBo37692Llzp9Dr9UIIId5//33h4OAgHB0dxddffy0MBoOorKwUq1evFi1bthQzZ84UVVVVCqc3H4PBIFauXCmaN28u2rZtK1atWtUgc7t165bYsWOHmDt3rggPDxdBQUEiLCxMTJs2Taxfv17k5+eb6ynLrrS0VLzwwgvC1dVVfPrpp6KsrEwYDAZx/vx54eHhIRwcHETHjh2N76i+deuWeOedd0SzZs3Ev//9b6XjK4brqOlsfWZWUS5CCHHq1CkRGBgoWrRoId577z1x7tw5kZ2dLXbv3i12794tcnNzxYkTJ0RsbKxo1qyZmDJlirhz547Ssc3m0qVL4qmnnhIqlUq88sorxsuTNPTcDAaDOHPmjFi5cqWYNGmSCA4OFkFBQSIqKkp8+umnIiMjQ1RUVDTU024QhYWFYvTo0cLFxUWMGDFC7NmzRxQWFop9+/aJPXv2iIyMDHH9+nWRkpIiBg0aJJo3by6WLl1qFSt8Q+I6ajpbnpnVXBUZ+G13z7x587B27Vo4ODigc+fOaN++PfR6PS5evIgzZ87Aw8MD7777Ll5++WU4OzsrHbnBCSHw73//G3/961/h5uaGhIQERERE1LiNOedWWlqKzMxMpKenIz09HYWFhXB2dkavXr3Qr18/9O3bF+3bt6/v025wd+7cQVJSEpYsWYJr167B19cX/v7+cHNzQ3FxMc6cOYMrV64gKCgIH3zwAZ544oka+8rtFddR09nqzKyqXIDfrv90+vRppKSkIDMzE4WFhXB0dISPjw8GDRqEYcOGoVWrVkrHNItLly5h0qRJ2LlzJ1599VV88skncHd3v+dtlZibEAI5OTk4cOAA0tPTcfz4cVRVVaF9+/YIDQ1Fv379EBgYiEaNGsn6c+VUUFCAXbt2Yc+ePcjJyUF5eTmaN2+Orl27YtiwYQgJCUHjxo2VjmlRuI6azhZnZnXlcjchBPR6PSRJsvyDWzISQiApKQnTp0+Hu7s7EhMTER4ebtL9lZhbWVkZDh8+bCybgoICODk5ISgoCH379kW/fv3g7e1tsQfE9Xo9hBBQqVTcSqkle11H68NWZmbV5WKPLly4gEmTJiEtLQ2TJk3CokWLalzjyloIIXDx4kXj7rOjR4+isrISXl5eCA0NRWhoKIKDg+Hi4qJ0VCKqA5aLlTAYDEhISMCMGTPg4eGBpKQkDBkyROlYstFqtThy5AgyMjJw4MAB5Ofnw9HRET179jSWjY+Pj8Vu1RBRTSwXK3D+/HlMmjQJe/bsQWxsLBYuXGhVn6VtKiEELl++bNyqOXLkCHQ6Hdq0aWMsmt69e/NYB5EFY7lYMIPBgC+++AIzZ85E69atkZSUhEGDBikdy+wqKiqQlZVlLJtLly5BrVajR48e6NevH0JDQ+Hn58etGiILwnKxUGfPnsWkSZOwb98+TJkyBfPnz4erq6vSsSxCXl6esWgOHz6MiooKtGrVynhSQO/evTkrIoWxXCyMXq/H0qVLMWvWLHh5eSEpKQlPPPGE0rEslk6nw7Fjx3DgwAFkZGTgwoULUKlUePzxx4270AICArhVQ2RmLBcLcubMGURHR+PgwYOYOnUqPvzwwxqXfaeHu3LlivGkgMOHD0Or1cLDwwOhoaHo27cv+vTpY5Vn1xFZG5aLBdDr9fjss8/wwQcfoH379li+fDnCwsKUjmX1Kisrcfz4ceMutPPnz0OlUqFr167GrZrHHnuM71khagAsF4WdPn0a0dHRyMzMxLRp0zB37lyeBdVArl27hvT0dGRkZODgwYMoKytD8+bN0bdvX4SGhqJPnz73vcIBEZmG5aKQqqoqfPrpp5g7dy46dOiAFStWoG/fvkrHshtVVVU4ceKEcasmOzsbkiShS5cuxq2azp07c6uGqI5YLgo4efIkoqOjcfToUfzlL3/BBx98wHeiK+z69evIyMhAeno6Dh48iNLSUjRr1gx9+vRBv3790KdPH8v/WFkiC8JyMaPKykr8/e9/R1xcHPz9/bF8+XKEhIQoHYt+R6/X4+TJk8ZroP36668AgE6dOhkvuNmlSxervu4TUUNjuZjJiRMn8Nprr+HEiROYPn06Zs+ebdFXA6b/V1RUZDwD7eDBg7h9+zaaNm2KkJAQ41loLVu2VDomkUVhuTQwnU6HhQsXYv78+Xj00UexYsUK9OrVS+lYVEcGgwGnTp1Ceno6Dhw4gNOnT0MIgYCAAOPn1XTv3h0ODg5KRyVSFMulAR0/fhyvvfYaTp48ib/97W+YOXOm1XzQD9VOcXExDh48aDwLTaPRoEmTJsatmtDQUKv7HA4iObBcGoBOp8NHH32EhQsXokuXLlixYgV69uypdCxqYAaDAb/++qvxagEnT56EwWBAx44djUXz+OOPw9HRUemoRA2O5SKzrKwsREdH4/Tp03jvvfcwY8YMODk5KR2LFHDr1i0cOnTIeLpzUVERGjdujODgYOMFN9u0aaN0TKIGwXKRSUVFBebNm4dFixahe/fuWLFiBR5//HGlY5GFMBgMyM7ONhbNiRMnYDAY4Ovra7zgZo8ePfiHCNkMlosMDh8+jNdeew1nz57F7Nmz8c4773DXBz1QSUkJMjMzjbvQrl+/jkaNGiE4ONh4urOXl5fSMYnqjOVSD+Xl5Zg7dy4++eQT9OzZEytWrEC3bt2UjkVWRgiBc+fOGc9A+/nnn6HX6+Ht7W3cfRYYGMiTQciqsFzq6ODBg4iOjkZOTg7mzJmDv/zlLzz9lGRx584dZGZmGsumsLAQzs7OCAoKMp7u7O3trXRMogdiuZhIq9Xi/fffx+LFi9GrVy+sWLECnTt3VjoW2SghBC5cuGC8WsCxY8dQVVWFdu3aGc9A69WrF9+QSxaH5WKCAwcOYOLEicjNzUVcXBzefvttbq2QWZWVleHIkSPGsrl69SqcnJwQGBhoLJtHHnmEH45GimO51EJZWRlmzZqFJUuWoE+fPli+fDkee+wxpWORnRNCIDc313gG2tGjR6HT6eDl5WU8A61Xr178CAdSBMvlIfbu3YuJEyciPz8fH374Id58801esJAsklarRVZWlrFs8vLy4OjoiJ49exrLxsfHh1s1ZBYsl/u4c+cOZs6cic8//xxhYWFISkpCQECA0rGIau3SpUvGC24eOXIEOp0OrVu3Nu4+6927Nz9GmxoMy+Uedu/ejYkTJ6KgoAALFizAlClT+KFRZNUqKipw9OhR4xloly5dglqtxuOPP248A83f359bNSQblstdSkpKMGPGDCQkJGDAgAFISkpCx44dlY5FJLv8/Hzj7rPDhw+jvLwcnp6ext1nvXv3hpubm9IxyYqxXO4yadIkrF27FgsXLkRsbCy3Vsgu6HQ6HD9+3HgG2oULFxAVFYWZM2cqHY2smM2XiylPr/q2ddk1wN0JZMlMWQ8qKyshhKjTdc64HlA1m3+TRlxc3D0vIKnX61FeXi7LAc1r164hJiam3o9D1FASExNNOiGlvLwckiSZdMmZoqIijBw5si7xyAbZfLn8+uuvmDVrVo3vFRcXY/z48SgoKEBMTAxiY2Pr9TPGjh3LciGLdvHiRUycOPGhtysuLsaKFStw7NgxSJKEkJAQREdH1+q9Mn/7299YLmRk8wcVJEmCWq02fqlUKjzxxBPw9vbGp59+infffRfbtm2rcRtTv4gs3e/Xg3t9Xb16FRMmTEBxcTH++te/4q233sL58+cRHR0NrVbL9YBMYvNbLr/3ww8/ID8/H4mJiVCpVNiyZQsiIyNx584dHsAnu6XVavHKK69g9OjRmDRpknFd6NWrF+bMmYPo6Gh89913XEeo1uzqlSKEwEsvvYRNmzYZV5JBgwahbdu2WLBggcLpiJQhhEBsbCyCgoIwefLkGgXi4OCAuXPnoqKiAvHx8QqmJGtjV+Vy5swZVFZWYuDAgcbvSZKE1NRUzJ0716Qzaohsxc6dO5GTk4OPPvronmd7qdVqrFixAt988w1u3rypQEKyRnZVLs8++yxmz579hxXIz88ParUax48fVyYYkUIMBgNmz56NpUuXPvAK3x4eHhg3bhxiYmL4RxjVit2Ui16vR05ODv72t7/9YZkkSfjoo48QFRWlQDIi5XzxxRfw8vK65+n6v/f222/j0qVLuHDhghmSkbWzm3L517/+BS8vr/ue1fLWW2/h8uXL/KuM7IZer8dXX32Ff/3rX7V686Narcbbb7+NN954g+sJPZTdlMs777yD77///r7L1Wo1XF1dkZqaasZURMpZvnw5vLy80KpVq1rfZ9y4cSgqKsKVK1caMBnZArsol+LiYuh0OgQHBz/wdkuXLsWrr75qplREyhFCYMWKFfjnP/9p0iVbJElCdHQ0pkyZ0oDpyBbYRbm8+OKLGDFixENXohdffBE3btzgJj/ZvIyMDDg7O8PLy8vk+06cOBF5eXnQarUNkIxshV2Uy549e7By5cqH3k6lUsHFxQX79u2r1eMKIXD79u36xiMyu5kzZ2LOnDl1utCkWq1GcHAw4uLiGiAZ2Qq7KJe0tLRafzbF/Pnz8fLLL9fqtufOnUPfvn3rE43I7CoqKlBaWorBgwfX+TE+/vhj/PTTT9zKp/uyi3Lp3bt3rW/7+uuvIz8/v1YrzXPPPccL9ZHVWbp0KQICAup1efymTZvCwcEB2dnZMiYjW2IX5WIKBwcHODk54fDhww+8nV6vR3Z2Nt5//30zJSOSx7p167Bo0aJ6P86kSZPwzjvvyJCIbBHL5R7mzZuHcePGPfA2CxcuhI+PzwPf1UxkaSorK2EwGNC2bdt6P9aECRNqvZVP9oflcg9vvfUWcnNzYTAY7rlcCIG4uDhs2bLFzMmI6uebb75B27ZtZfnESAcHB6hUKuTn58uQjGwNy+UeHBwc0LJlS6xevfqey3/55RdIkoTHHnvMzMmI6icpKQlz5syR7fEiIiIwd+5c2R6PbAfL5T7Wr1+PKVOm/GGTXwiBp59+Gh9//DE/L5ysihACFRUV6NGjh2yPOW3aNBw7dky2xyPbwXK5j7CwMOj1ehw6dKjG93Nzc3H16lVMnTpVoWREdXPz5k1IkiTrH0VNmzYFgPvuQib7xXK5D0mSsGLFCkRGRkKv1wP47S+/wYMH4/333+cn8pHViY+PR1BQkKyPKUkSnJ2d8fPPP8v6uGT9+C/kA4wbNw7e3t545ZVXUFhYiA8++AA6nQ7vvfee0tGITLZjxw5Mnz5d9scdNWoU/v73v8v+uGTdWC4PIEkSdu/ejUuXLmHAgAHYvHkz0tPTudVCVsnR0RG+vr6yP+5rr72GkpIS2R+XrJvNv0nDyckJW7durddjTJs2DTk5OWjfvj1OnjyJkydP1ljeoUOHej0+UUNzcHDA5MmTceDAgQZ5/NjYWL5bn2qQhI2/A8qUK7dWj8LUA55qtRpOTk4m3YfInMrLy2t924qKCjg6Opq8ha5Wq+Ho6GhqNLJRNl8uptDr9RBCQK1W8zRjsktCCJw/fx5qtRre3t73/eRWoofhwYO73L59G/369UOrVq147j7ZJUmSYDAYMHHiREyYMIEfKUF1xnK5S/PmzbF9+3b4+flh6NChOHr0qNKRiMwuICAACQkJKCgowOuvv86CoTphufyOu7s7tm/fDn9/fwwbNgxZWVlKRyIyO39/fyQkJODatWuIjY3FrVu3lI5EVoblcg/NmjVDamoqAgICMGzYMBw5ckTpSERm17FjRyxbtgzXr1/H66+/Do1Go3QksiIsl/uoLphOnTph2LBhD/18FyJb5Ofnh2XLluHGjRssGDIJy+UBmjZtiq1bt6JLly4IDw9HZmam0pGIzM7X1xcJCQm4efMmYmNjUVxcrHQksgIsl4eoLpiuXbsiPDz8DxeyJLIH1QVTVFSE2NhYFBUVKR2JLBzLpRbc3NyQkpKC7t27Izw8HAcPHlQ6EpHZ+fr6IjExERqNhgVDD8VyqaXqgunRoweGDx+OjIwMpSMRmV2HDh2wbNky3Lp1iwVDD8RyMYGrqyt+/PFH9OzZE8OHD2+w6zQRWbIOHTogMTERt2/fRkxMDG7evKl0JLJALBcTVRdMUFAQIiIisH//fqUjEZndI488gsTERJSWlrJg6J5YLnXQpEkTJCcno1evXoiIiMC+ffuUjkRkdt7e3li2bBnKysoQExODGzduKB2JLAjLpY6qC6Z3796IjIzE3r17lY5EZHZ3F8zkyZNx/fp1pSORhWC51EPjxo2xZcsWhISEIDIyEnv27FE6EpHZtW/fHomJiaioqEBMTAwLhgCwXOqtumD69u2Lp59+mgVDdqldu3Y1CqawsFDpSKQwlosMXFxc8MMPPyA0NBSRkZFIS0tTOhKR2bVt2xaJiYnQ6XQsGGK5yMXFxQWbN29G//798cwzz+A///mP0pGIzK66YKqqqjB58mRcu3ZN6UikEJaLjFxcXLBp0yYMGDAAzzzzDHbt2qV0JCKz8/LywrJly2AwGDB58mQUFBQoHYkUwHKRWaNGjbBx40YMHDgQzz77LHbu3Kl0JCKzqy4YIQQmT56Mq1evKh2JzIzl0gCqC2bw4MF49tln8dNPPykdicjs/vSnPyExMREAEBMTw4KxMyyXBuLs7Izvv/8eQ4YMwXPPPYcdO3YoHYnI7Nq0aYOkpCRIkoSYmBhcuXJF6UhkJiyXBuTs7Iz169dj6NChGDFiBFJTU5WORGR2rVu3RmJiIlQqFQvGjrBcGlh1wYSHh+P555/Htm3blI5EZHbVBePg4IDJkycjPz9f6UjUwFguZuDk5IS1a9fiqaeeQlRUFLZu3ap0JCKza9WqFZYtWwYnJycWjB1guZiJk5MT1qxZg4iICERFReHHH39UOhKR2bVq1QoJCQlwdnbGpEmTkJeXp3QkaiAsFzOqLphnnnkGo0aNQnJystKRiMyuegvGxcUFkydPxuXLl5WORA2A5WJmjo6O+Pbbb/Hss89i9OjR2LJli9KRiMzO09MTy5YtQ+PGjRETE4NLly4pHYlkxnJRgKOjI7755hs899xzGD16NDZv3qx0JCKza9myJQvGhrFcFFJdMFFRURgzZgw2bdqkdCQis/Pw8EBiYiLc3NwwefJk5ObmKh2JZMJyUZCDgwNWr16NkSNHYuzYsdi4caPSkYjMrkWLFkhISEDTpk0RExODixcvKh2JZCAJIYTSIexdVVUVJkyYgPXr1+Pbb7/FqFGjaiwXQuDmzZsoLS2Fq6srPDw8IEmSQmmJGkZRURFiY2Nx69YtJCQkwMfHp8ZyrgfWhVsuFsDBwQGrVq3CmDFjMH78eKxfvx4AoNFoEB8fD39/f3h6esLHxweenp7w9/dHfHw8NBqNssGJZNSiRQssW7YMzZs3R0xMDHJycgBwPbBW3HKxIHq9Hq+99hq+++47TJ8+HfHx8SgrKwPw219t1ar/WmvcuDE2bNiA8PBwRfISNYTi4mK88cYbuHnzJsaPH48///nPXA+sEMvFwuj1egwfPhw7d+6EJEl40K9HpVJBkiSkpKRwxSKbotFo8Pzzz2P37t1cD6wUy8XCaDQatG3b1viX2sOoVCq4uLggLy8P7u7uDRuOyEy4Hlg/HnOxMKtWrYJWq6317Q0GA8rKyvDVV181YCoi8+J6YP245WJBhBDw9/dHTk7OA3cD/J4kSfD19cXZs2d59gxZPa4HtoHlYkFu3LgBT0/Pet3fw8NDxkRE5sf1wDZwt5gFKS0trdf9S0pKZEpCpByuB7aB5WJBXF1d63V/Nzc3mZIQKYfrgW1guVgQDw8P+Pn5mby/WJIk+Pn5oUWLFg2UjMh8uB7YBpaLBZEkCVOnTq3Tfd98800exCSbwPXANvCAvoXRaDRo164dtFotDAbDQ2/P8/vJFnE9sH7ccrEw7u7u2LBhAyRJgkr14F9P9TuTN27cyBWKbArXA+vHcrFA4eHhSElJgYuLCyRJ+sNmfvX3XFxcsHXrVgwbNkyhpEQNh+uBdWO5WKjw8HDk5eVh8eLF8PX1rbHM19cXixcvRn5+PlcosmlcD6wXj7lYASEEioqKUFJSAjc3N7Ro0YIHLcnucD2wLiwXIiKSHXeLERGR7FguREQkO5YLERHJjuVCRESyY7kQEZHsWC5ERCQ7lgsREcmO5UJERLJjuRARkexYLkREJDuWCxERyY7lQkREsmO5EBGR7FguREQku/8DSFl34eASx9AAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1db74fbd",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Prune nodes and edges together"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4e7e2c8a",
|
|
"metadata": {},
|
|
"source": [
|
|
"just use model.prune()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "1ea08f0e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"checkpoint directory created: ./model\n",
|
|
"saving model version 0.0\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 2.99e-02 | test_loss: 2.99e-02 | reg: 7.10e+00 | : 100%|█| 20/20 [00:12<00:00, 1.65it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"# create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5).\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=2)\n",
|
|
"\n",
|
|
"# create dataset f(x,y) = exp(sin(pi*x)+y^2)\n",
|
|
"f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
|
|
"dataset = create_dataset(f, n_var=2)\n",
|
|
"dataset['train_input'].shape, dataset['train_label'].shape\n",
|
|
"\n",
|
|
"# train the model\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
|
|
"model(dataset['train_input'])\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "4fc161de",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.2\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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R3h4ODp16oTq6mruNWYjDBcnFBQUhMTEROsLkGaz+ZHur6iowDfffAMASEpKgq+vry3KJMLFixdRXFwMvV6P6Ohoh3mI0ev1iImJAfDr0Bj3GlMfw8UJCSGsx7ceOXLkkY5vlVLiwIEDyM/Ph7+/P6ZOneowDZ5ci5QSmZmZqK2tRdeuXRESEmLvkhoZPHgwtFot8vPzcfPmTXuX43IYLk5ICIHY2Fj0798ft27dwubNm5t8b11dHdatWweLxYLRo0cjMjLShpVSa1ZXV4djx44BAGJjY216KNijEkKgV69eCAgIQHl5OfLz8zk0pjKGi5Py9vbGzJkzIYRAampqk955kVLizJkz+Omnn+Du7o5nn322RTcPpNalrKwM58+fh1arRWxsrMP1kP39/dGjRw/U19dbQ5DUw3BxUkIITJs2DSEhIbh48SK2bNny0CcvKSW+/PJLlJeXo2/fvhg5cqTDNXhyDVJK5Ofno6KiAk888YRD9pC1Wi3i4uIAALm5uVySrDKGixMLDQ3F9OnToSgKPv/884ce33rlyhVs2rQJQgg8//zznMgnm8rKykJ9fT169OjRIidOPiohBPr37w+dTofLly+rfk5Sa8dwcWJCCMydOxeBgYE4fvw4vv322/v2XqSUWLduHQoLCxEeHo6kpCT2WshmampqcOLECQDAwIEDHWYJ8t26dOmC9u3bw2g0Ii8vz97luBSGixNrmJScOXMm6uvrsXz5cly9evU33yelREFBAf75z38CAObOncs38smmrl69isuXL0On09l1o8qH8fHxQa9evaznzXBSXz0MFyen0WiwaNEidOzYEadOncLy5ct/s2a/rq4OH3/8MQoLC9G9e3c899xzDtvYyTXk5+ejuroaQUFB6NKli73LuS8hBKKjowH8eiIr513Uw3BxckIIRERE4M0334RGo8E//vGPRnuOSSmxZcsWfPnll3B3d8d//ud/stdCNiWlRG5uLhRFQY8ePVQ9NE9tQgj06dMHnp6eKC4uRklJib1LchkMFxcghMC8efPw+9//HtXV1Vi0aBG++OILlJaWIiUlBa+//jqMRiOmTp1qXb5MZCu1tbXW+YsBAwbYfRfkhwkNDUVwcDCMRiPy8/PtXY7L4EsOLkKv12P58uUoKytDeno6/vjHP+KJJ57AzZs3rYeBLVu2jMcYk81dv34dhYWF8PDwQFRUlMM/zOj1enTv3h2//PILTpw4gXbt2tm7JJfg2I8U1GRCCISEhGDjxo1YsGAB2rZti7KyMnh5eWH27NnYsGEDQkNDHb6hk/MrKSmBRqNBUFAQOnXqZO9yHkqj0aBfv37QarW4fPnyI+/VR/fGnouKpJQoLy+364mOHh4eWLJkCebOnYvi4mIEBQWha9eucHd3R3l5+UPvr62tbYEqyVVJKREREYHVq1db/3972PtXjmDgwIF455130K1bN+zevdve5bgEhotKhBDo3LkzVq9e7bBr+pvCZDKhbdu29i6DnJAQAh06dEBKSoq1DWRkZNi5qkeTl5eHmpoah16E4CyE5MJuVUgpXWaNvBCCw2f0yNgG6E4MFyIiUh0n9ImISHUMFyfRMOTAjia1ZoqioKamxvqSMDkuhouTyMnJgZubG3JycuxdCpHdnD17FsOGDcPZs2ftXQo9BMOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBcnIKVEeXk5AKC8vJwHhlGr1NAOzGYz24ETYLg4MIPBgJUrVyIyMhJjx46FoigYO3YsIiMjsXLlShgMBnuXSGRzd7aDoUOH4uTJkxg6dCjbgYMTkvHvkNLS0jB9+nQYjUYAaPSUJoQAAOj1eqSmpiIxMdEuNRLZGtuB82K4OKC0tDRMmjQJUsoHnhWu0WgghMC2bdvYsMjlsB04N4aLgzEYDAgNDYXJZHpgg2qg0Wjg5eWFwsJC+Pn52b5AohbAduD8OOfiYNauXQuj0dikBgUAiqLAaDRi3bp1Nq6MqOWwHTg/9lwciJQSkZGRKCgoeKSVMEIIhIeH49y5c9ZxaCJnxXbgGhguDqSsrAxBQUHNuj8wMFDFiohaHtuBa+CwmAOpqqpq1v2VlZUqVUJkP2wHroHh4kB8fHyadb+vr69KlRDZD9uBa2C4OJDAwEB069btkceLhRDo1q0bAgICbFQZUcthO3ANDBcHIoTAokWLHuveV199lZOY5BLYDlwDJ/QdDNf3E7EduAL2XByMn58fUlNTIYSARvPg/zwNbyZ//fXXbFDkUtgOnB/DxQElJiZi27Zt8PLyghDiN938hj/z8vLC9u3bMX78eDtVSmQ7bAfOjeHioBITE1FYWIgVK1YgPDy80bXw8HCsWLECRUVFbFDk0tgOnBfnXJyAlBI3b95EZWUlfH19ERAQwElLanXYDpwLw4WIiFTHYTEiIlIdw4WIiFTHcCEiItUxXIiISHUMFyIiUh3DhYiIVMdwISIi1TFciIhIdQwXIiJSHcOFiIhUx3AhIiLVMVyIiEh1DBciIlIdw4WIiFT3/wAlZzjDvmRRwgAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 6 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model = model.prune()\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "5a8dd8a8",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.9.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|