441 lines
176 KiB
Plaintext
441 lines
176 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "134e7f9d",
|
|
"metadata": {},
|
|
"source": [
|
|
"# API 6: Training Hyperparamters\n",
|
|
"\n",
|
|
"Regularization helps interpretability by making KANs sparser. This may require some hyperparamter tuning. Let's see how hyperparameters can affect training"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "6459e11a",
|
|
"metadata": {},
|
|
"source": [
|
|
"Load KAN and create_dataset"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "c3faa4ed",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"cuda\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(torch.Size([1000, 2]), torch.Size([1000, 1]))"
|
|
]
|
|
},
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"import torch\n",
|
|
"\n",
|
|
"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
|
|
"print(device)\n",
|
|
"\n",
|
|
"f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
|
|
"dataset = create_dataset(f, n_var=2, device=device)\n",
|
|
"dataset['train_input'].shape, dataset['train_label'].shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2571d531",
|
|
"metadata": {},
|
|
"source": [
|
|
"Default setup"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "97111d75",
|
|
"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.34e-02 | test_loss: 3.29e-02 | reg: 4.93e+00 | : 100%|█| 20/20 [00:05<00:00, 3.73it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# train the model\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "07f400a8",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Parameter 1: $\\lambda$, overall penalty strength. \n",
|
|
"\n",
|
|
"Previously $\\lambda=0.01$, now we try different $\\lambda$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9916490a",
|
|
"metadata": {},
|
|
"source": [
|
|
"$\\lambda=0$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "77e8cafd",
|
|
"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: 5.51e-03 | test_loss: 6.14e-03 | reg: 1.52e+01 | : 100%|█| 20/20 [00:03<00:00, 5.84it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# train the model\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.00);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d92f84a5",
|
|
"metadata": {},
|
|
"source": [
|
|
"$\\lambda=1$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "f1a96caf",
|
|
"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: 1.70e+00 | test_loss: 1.73e+00 | reg: 1.08e+01 | : 100%|█| 20/20 [00:04<00:00, 4.59it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# train the model\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=0, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=1.0);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "650e7432",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Parameter 2: (relative) penalty strength of entropy $\\lambda_{\\rm ent}$.\n",
|
|
"\n",
|
|
"The absolute magnitude is $\\lambda\\lambda_{\\rm ent}$. Previously we set $\\lambda=0.1$ and $\\lambda_{\\rm ent}=2.0$ (default). Below we fix $\\lambda=0.1$ and vary $\\lambda_{\\rm ent}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c0d92d91",
|
|
"metadata": {},
|
|
"source": [
|
|
"$\\lambda_{\\rm ent}=0.0$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "d57d3cee",
|
|
"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: 4.20e-02 | test_loss: 4.50e-02 | reg: 2.57e+00 | : 100%|█| 20/20 [00:04<00:00, 4.68it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# train the model\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01, lamb_entropy=0.0);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "25d3f9f1",
|
|
"metadata": {},
|
|
"source": [
|
|
"$\\lambda_{\\rm ent}=10.$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "94450fdf",
|
|
"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: 7.83e-02 | test_loss: 7.74e-02 | reg: 1.54e+01 | : 100%|█| 20/20 [00:05<00:00, 3.77it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAyTklEQVR4nO3deVhU9f4H8PcZRnYERNTcUpB8xCU1ETVJrMTKMnPJcknULCvRtG6W3ZvdUrOyFHfCa6K55ppp2s2bYCFo7imKiJqIqAiDLMMyM9/fH8X5OWXKDIc5M8P79TzzPMXMGT58OMc33+85c76SEEKAiIhIQRq1CyAiIufDcCEiIsUxXIiISHEMFyIiUhzDhYiIFMdwISIixTFciIhIcQwXIiJSHMOFiIgUx3AhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCEiIsUxXIiISHFatQsgcgRCCNy4cQNFRUXw9vZGQEAAJElSuywiu8WRC9Ed6HQ6xMbGIiQkBIGBgWjZsiUCAwMREhKC2NhY6HQ6tUsksksSV6Ikur3du3dj0KBBKCkpAfD76KVS5ajF09MTmzZtQt++fVWpkcheMVyIbmP37t3o168fhBAwmUx/+zqNRgNJkrBjxw4GDNEtGC5Ef6LT6dC0aVPo9fo7BksljUYDDw8PZGVlwc/Pr+YLJHIAPOdC9CcJCQkoKSmpUrAAgMlkQklJCVauXFnDlRE5Do5ciG4hhEBISAgyMzNhyaEhSRKCgoJw9uxZXkVGBIYLkZnc3FwEBgZWa/uAgAAFKyJyTJwWI7pFUVFRtbYvLCxUqBIix8ZwIbqFt7d3tbb38fFRqBIix8ZwIbpFQEAAgoODLT5vIkkSgoODUa9evRqqjMixMFyIbiFJEmJiYqzaduLEiTyZT/QHntAn+hN+zoWo+jhyIfoTPz8/bNq0CZIkQaO58yFS+Qn9zZs3M1iIbsFwIbqNvn37YseOHfDw8IAkSX+Z7qr8moeHB3bu3ImoqCiVKiWyTwwXor/Rt29fZGVlYd68eQgKCjJ7LigoCPPmzcPly5cZLES3wXMuRFUghMCPP/6IRx55BHv27EHv3r158p7oDjhyIaoCSZLkcyp+fn4MFqK7YLgQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBDdRUVFBS5fvoy0tDQAwLlz55CXlweTyaRyZUT2i8scE/0NnU6HTZs2YfXq1Th58iQKCwtRXl4Od3d3BAYGIiIiAmPHjsWDDz4IrVardrlEdoXhQnQb+/fvx+TJk3H8+HGEhYWhX79+6NChA7y9vaHT6XDo0CFs374dGRkZGDp0KGbMmIHAwEC1yyayGwwXoj/5/vvvER0dDW9vb3z00Ud44oknUF5ejnXr1qGsrAx169bFc889h4qKCqxbtw7vv/8+2rZti1WrVqFhw4Zql09kFxguRLdIT0/HY489Bi8vL6xbtw6hoaGQJAmZmZno3LkzCgoK0LJlSxw6dAj+/v4QQuCnn37CsGHDEBkZiWXLlsHNzU3tH4NIdTyhT/QHo9GIWbNmIT8/HwsXLpSD5U4kSULPnj3xySefYNu2bdi1a5eNqiWybwwXoj9kZGRg+/btGDhwIHr27HnXYKkkSRIGDBiAbt26IT4+HgaDoYYrJbJ/vMSF6A/JyckoKirCoEGDcOHCBRQXF8vPZWVlwWg0AgDKy8tx8uRJ1K1bV36+cePGGDhwIN5//33k5OSgadOmNq+fyJ4wXIj+cPr0aXh6eiIoKAgvv/wyfv75Z/k5IQTKysoAANnZ2ejTp4/8nCRJ+Oyzz9C+fXuUlJQgOzub4UK1HsOF6A96vR5arRZubm4oKytDaWnpbV8nhPjLcwaDAR4eHmYhRFSbMVyI/tCgQQPo9XrodDqEh4fDy8tLfk6v1yM5OVkOkR49esgfnJQkCc2bN8e1a9dgMBhw/PhxdOjQAb6+vmr9KESqY7gQ/eGBBx5ARUUFDhw4gI8//tjsuczMTISFhaGgoAANGzbE+vXr4efnJz8vSRKmTZsGg8GACRMmYNKkSejUqRN69eqFXr16ISIiwuz1RM6OV4sR/aFr164ICgpCQkICiouL4eLiYvaoJEkSNBqN/HWNRoMrV65g48aNmDBhAs6ePYu4uDiEhobi66+/xtNPP42AgAA88MADeOONN7Bt2zbk5eWp+JMS1TyGC9EfAgICMGHCBBw+fBjz58+v8iXFZWVl+PDDD6HX6zF+/Hi0atUKY8eORUJCAi5cuIBz585h2bJlaN++PTZt2oRnnnkGgYGB6NSpEyZPnoytW7fixo0bNfzTEdkWp8WIbhEdHY2kpCR8/PHH8PT0xCuvvAJ3d3cAgFarhVarlUcxQggUFhZi5syZWLduHebOnYvWrVubvZ8kSWjZsiVatmyJ0aNHAwAuXLiAxMREJCYmYtu2bYiNjQUAdOjQQZ5Ge+ihh1C/fn0b/uREyuLtX4j+5Pr163jttdfw7bffom/fvpg8eTLatGmDM2fOwGQywdXVFa1atcKBAwcwZ84cHD16FB988AFeeeUVs+mzqrp48SISExORlJSEvXv3IjMzEwDQrl07REZG4qGHHkKvXr14Y0xyKAwXotsoLi5GfHw85s+fj6tXryIoKAghISHw8fFBfn4+zpw5g+zsbDzwwAOYPn06evXqBY1GmVnmS5cuySObxMREZGRkAABCQ0MRGRkpj2x4k0yyZwwXojvIycnBnj17kJiYiMzMTJSWlsLf3x/t2rVDVFQUwsPD4enpWaM1XL582Sxs0tPTAQBt2rSRp9F69eqFRo0a1WgdRJZguBBVkdFohBACGo1GsVGKNbKzs82m0c6cOQMAaN26tdk0WuPGjVWrkYjhQuTgrly5gqSkJHlkU7kc83333Wc2smnSpInKlVJtwnAhcjJXr16Vw2bv3r04deoUAKBVq1ZmYdOsWTOVKyVnxnAhcnLXrl1DUlKSPI3266+/AgCCgoLkabTIyEg0b95c5UrJmTBciGqZ3Nxcs2m048ePAwBatGghX43Wq1cvtGjRQt1CyaExXIhquRs3bmDfvn3yNNrx48chhMC9994rB01kZCRatGhR5QXUiBguRGQmLy8P+/btk6fRjh49CiEEmjVrZjaNFhQUxLChv8VwIaI7ys/Px08//SRPox05cgQmkwlNmjQxm0Zr1aoVw4ZkDBciskhBQYEcNnv37sXhw4dhMpnQuHFjs2m0kJAQhk0txnAhomq5efMmfvrpJ3ka7dChQzAajWjUqJHZNFrr1q0ZNrUIw4WIFFVYWIiff/5ZnkY7ePAgjEYjGjZsKN8XLTIyEm3atGHYODGGCxHVqKKiIiQnJ8vTaAcPHoTBYEBgYKDZNFpoaCjDxokwXIjIpoqLi5GcnCxPox04cAAVFRWoX7++2cimbdu2qt7DjaqH4UJEqiopKcH+/fvlabTU1FSUl5cjICBAvglnr1690L59e4aNA2G4EJFd0ev1SElJkafRUlJSUF5eDn9/fzlsIiMj0aFDB4aNHWO4EJFd0+v1SE1NlUc2+/fvR1lZGfz8/PDQQw/J02j333+/VSuBUs1guBCRQyktLcWBAwewd+9eJCUlITk5GaWlpfD19UVERIQ8jdaxY0dotVq1y621GC5E5NDKyspw8OBBOWx+/vln6PV61K1bFz179pTDpnPnzgwbG2K4EJFTKS8vx8GDB+VptJ9//hklJSXw8fFBz5495Wm0zp07o06dOmqX67QYLkTk1MrLy3Ho0CF5ZPPTTz+huLgYXl5eZiObLl26MGwUxHAholqloqIChw8flsNm3759KCoqgpeXF3r06CGHTVhYGFxdXdUu12ExXIioVjMYDDh8+LA8jbZv3z4UFhbCw8MDDz74oDyNFhYWBjc3N7XLdRgMFyKiWxgMBhw9elQe2SQlJeHmzZtwd3c3G9mEh4czbO6A4UJEdAdGoxHHjh3D3r175ZGNTqeDu7s7unXrJodNt27d4O7urna5doPhQkRkAaPRiOPHj8vTaElJScjPz4ebm9tfwsbDw0PtclXDcCEiqgaTyYQTJ07I02iJiYnIy8uDq6srwsPD5TVtunfvDk9PT7XLtRmGCxGRgkwmE06ePClPoyUlJSE3Nxd16tRB165d5bDp0aMHvLy81C63xjBciIhqkMlkwqlTp+RptMTERFy/fh1arRZdu3aVp9F69OgBb29vtctVDMOFiMiGhBBIS0uTp9H27t2La9euQavVokuXLnLYPPjgg/Dx8VG7XKsxXIiIVCSEwJkzZ+RptMTEROTk5OCjjz7C1KlT1S7PagwXIqIatnnzZhiNxhq/cabJZMKgQYNq9HtUFW8RSkRUw1JSUnD8+HFMnDgRUVFRNfZ93n77bYYLEVFtMmzYMAwfPhx5eXmQJEntcmoc1wglIrKBkSNHori4GEeOHFG7FJtguBAR2YAkSXj//ffRv39/1IZT3QwXIiIbmTp1Kq5cuYLLly+rXUqNY7gQEdmIi4sLRo0ahf79+6tdSo3jCX0iIhtavHgxvLy8UFhY6NAfkrwbjlyIiGzI3d0dkZGRGD58uNql1CiOXIiIbGzjxo2oX78+iouLnfbmlRy5EBHZmL+/PyIiIpx69MKRCxGRCrZs2YL69esjJycHjRo1UrscxXHkQkSkAn9/f4wZMwZ9+vRxys+9MFyIiFSyePFinD9/HuvWrVO7FMUxXIiIVFKnTh1s3boV0dHRuHbtmtrlKIrhQkSkokceeQTDhg1DZGQkKioq1C5HMQwXIiIVSZKE+Ph4uLm54fnnn4fJZFK7JEUwXIiIVKbVavHjjz/il19+wfjx42E0GtUuqdoYLkREdsDPzw8///wzfvjhB0RHR0Ov16tdUrUwXIiI7ESTJk2QnJyM9PR09OnTBxkZGQ57mTLDhYjIjjRq1Aj/+9//0LZtW0RERGDJkiUoKSlRuyyLMVyIiOyMl5cXlixZgri4OCxZsgSRkZFYv349CgoKHGYkw3AhIrJDGo0G/fv3x08//YQRI0bgww8/REREBP75z38iKSkJ169fR0VFhd2GDe8tRkRkx3x9fRETE4NRo0Zhz5492Lx5M8aPHw+TyYTmzZsjJCQErVu3RsuWLdUu1QzDhYjIBkpLS6u1vZubG5544gk8/vjjyM/PR0ZGBk6dOoW0tDR8//33uH79OiIiIhSqtvokYa9jKiIiJ7Fz504YDIYae3+TyYTy8nJ4eXmhX79+NfZ9LMFwISKqYbb8Z1aSJJt9rzvhCX0iohomSZJFD71ejyNHjkCv11u8rb1guBAR2ZnTp0+jS5cuOH36tNqlWI3hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESK06pdQHUIIXDjxg0UFRXB29sbAQEBkCRJ7bLsGntmHfbNcuyZdYQQyM/PBwDk5+dDCOGQfXPIkYtOp0NsbCxCQkIQGBiIli1bIjAwECEhIYiNjYVOp1O7RLvDnlmHfbMce2adW/v26KOPQgiBRx991HH7JhzMrl27hJeXl5AkSUiSJADIj8qveXl5iV27dqldqt1gz6zDvlmOPbOOM/bNocJl165dwsXFRWg0GrPm//mh0WiEi4uLQ/0iagp7Zh32zXLsmXWctW+SEEIoPRqqCTqdDk2bNoVer4fJZLrr6zUaDTw8PJCVlQU/P7+aL9AOsWfWYd8sx55Zx5n75jDnXBISElBSUlKlXwAAmEwmlJSUYOXKlTVcmf1iz6zDvlmOPbOOM/fNIUYuQgiEhIQgMzMTlpQrSRKCgoJw9uxZh7zaojrYM+uwb5Zjz6zj7H1ziHDJzc1FYGBgtbYPCAhQsCL7x55Zh32zHHtmHWfvm0NMixUVFVVr+8LCQoUqcRzsmXXYN8uxZ9Zx9r45RLh4e3tXa3sfHx+FKnEc7Jl12DfLsWfWcfa+OUS4BAQEIDg42OL5RUmSEBwcjHr16tVQZfaLPbMO+2Y59sw6zt43hwgXSZIQExNj1bYTJ06065NeNYU9sw77Zjn2zDrO3jeHOKEPOPf14DWFPbMO+2Y59sw6ztw3hxi5AICfnx82bdoESZKg0dy5bI1GA0mSsHnzZrv/BdQk9sw67Jvl2DPrOHXfbH1LgOqq6j14du/erXapdoM9sw77Zjn2zDrO2DeHCxchhMjPzxexsbEiODjY7JcQHBwsYmNjhU6nU7tEu8OeWYd9sxx7Zh1n65tDhkslk8kk9uzZIwCIPXv2CJPJpHZJdo89sw77Zjn2zDrO0jeHOedyO5IkyXOPfn5+dn/1hD1gz6zDvlmOPbOOs/TNocOFiIjsE8OFiIgUx3AhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCEiIsUxXIiISHEMFyIiUhzDhYiIFMdwISIixTFciIhIcQwXIiJSHMOFiIgUx3AhIiLFMVyIiEhxDhsuRUVFSE9Px4kTJwAAOTk5KC8vV7kq+1dUVISLFy8CANLS0nDp0iX27S4qKipw+fJlpKWlAQDOnTuHvLw8mEwmlSuzb9zXLOdM/65JQgihdhGWyMzMxLJly/DNN9/g0qVLqKioQFlZGerWrYtOnTph1KhRGDhwIHx8fNQu1a7c2reLFy9Cr9fD1dUVXl5eaN++Pft2GzqdDps2bcLq1atx8uRJFBYWory8HO7u7ggMDERERATGjh2LBx98EFqtVu1y7Qb3Ncs5479rDhMuRqMRa9euxbRp06DX6/H444+jT58+aN68OUwmEzIyMvDdd9/hxx9/ROfOnbFgwQKEhoaqXbbq2Dfr7N+/H5MnT8bx48cRFhaGfv36oUOHDvD29oZOp8OhQ4ewfft2ZGRkYOjQoZgxYwYCAwPVLltV3Ncs59Q9Ew7AaDSKRYsWCS8vL/H444+LY8eOCYPBIJKTk0VsbKyIjY0VaWlpory8XCQmJoouXbqI1q1bixMnTqhduqrYN+vs3r1b3HPPPSIkJERs3LhRlJSUCJ1OJ5YuXSpiY2PFl19+KfR6vbh586b44osvROPGjUWfPn1ETk6O2qWrhvua5Zy9Zw4RLj/++KPw8/MTgwcPFnl5ecJkMgkhhPjnP/8pAAgAYtWqVUIIIUwmk7h48aLo0aOH6Nmzp8jPz1excnWxb5Y7c+aMaNmypWjXrp349ddf5Z6dO3dO+Pr6CgCiZcuWIi8vTwjxe9+SkpJE06ZNxYgRI0Rpaama5auG+5rlnL1ndn9CX6/X44MPPkDDhg0xd+5c+Pn5QZKkv329JElo1qwZFixYgPT0dHz11Vc2rNZ+sG+WMxqNmDVrFvLz87Fw4UKEhobesWfA733r2bMnPvnkE2zbtg27du2yUbX2g/ua5WpDz+w+XA4dOoSUlBS8+uqraNKkyV0PduD3X0THjh3x7LPPYsWKFSgpKbFBpfaFfbNcRkYGtm/fjoEDB6Jnz55V6hnwe98GDBiAbt26IT4+HgaDoYYrtS/c1yxXG3pm95e47N27F25ubnj00UeRlpZmduBevXpV/u/ffvsNx48fl//fz88PAwYMwFdffYULFy44zkkwhbBvlktOTkZRUREGDRqECxcuoLi4WH4uKysLRqMRAFBeXo6TJ0+ibt268vONGzfGwIED8f777yMnJwdNmza1ef1q4b5muVrRM7Xn5e5mxIgR4r777hPp6emiefPmwt3dXX5otVp5brJOnTpmz40ePVqcP39e1K9fX3z33Xdq/xg2x75Z7q233hJ+fn4iLS1NPPLII2Z9cXNzk3smSZLZcx4eHmLx4sVi3759wsfHR6Smpqr9o9gU9zXL1Yae2fXIRQiB0tJSuLm5wcXFBaWlpSgtLb3taysqKlBRUSH/f3l5OVxdXeXtahP2zTp6vR5arRZubm4oKyv725+/sr+3MhgM8PDwgBACZWVltijXLnBfs1xt6Zldh4skSahfvz4OHDgAo9GI3r17Q6fTyc+fPXsWmZmZAID27dujcePG8nMdOnSATqdDWVkZ6tWrZ+vSVcW+WadBgwbQ6/XQ6XQIDw+Hl5eX/Jxer0dycrIcIj169JA/OClJEpo3b45r165Bo9HA399frR/B5rivVY1er8fhw4eRkpKClJQUfPfdd/D393funqk5bKqK+Ph44eHhIZKSkoTBYDB7TJs2TR4+JiQkmD1nNBrFihUrRKNGjURWVpbaP4bNsW+W27lzp3B1dRVLly79S8/S09PlS5FbtGghcnNz/9K3qVOnivvuu88hLhNVEvc1cyaTSWRmZoq1a9eKiRMnivDwcOHm5iY0Go3w9vYWvXv3Fo8//rhwd3d36p7Z9cgFAB5++GH4+PggISEB3bt3N7vNhkajMftvFxcX+f9LSkqwcuVK9OzZE40aNbJpzfaAfbNc165dERQUhISEBDz//PNmJ+xv7ZEkSWZ9E0IgOzsbGzduRP/+/eHr62vz2tVU2/e14uJi+eqvykflSflWrVqhW7duGDVqFLp164b27dtDq9UiMzMT3bt3d+qe2f2lyC1atMDw4cOxYcMG7N69G6IKd6sxmUxYsWIFjhw5gpiYGLNfTm3BvlkuICAAEyZMwOHDhzF//vwqX1JcVlaGDz/8EHq9Hi+//HKVL2F2FrVpXxNCICMjA6tXr8aECRMQFhYGf39/9O7dGzNnzsTNmzcxZswYfPPNN7h69SrOnDmDhIQEvPLKK+jUqZMcIrWiZ2oOm6rqypUrIiwsTDRr1kz88MMPwmg0CiGEeO+994RWqxV16tQRX331lTCZTKKiokKsWrVK1K9fX0ybNk0YDAaVq1cP+2a5oqIi8eyzzwpvb2/x2WefiZKSEmEymcS5c+dEQECA0Gq1olWrVvInqgsKCsRbb70lfH19xfLly9UuXzXOuq8VFhaK//3vf2LWrFniqaeeEg0aNBAajUZoNBrRpk0bMXr0aBEXFyffusUSztqzSg4RLkIIcfLkSdG5c2dRr1498e6774qMjAyRnp4u9u7dK/bu3SsuXrwojh8/LsaPHy98fX3Fa6+9JoqLi9UuW3Xsm+WuXbsmhgwZIjw8PMSAAQNEYmKiuHbtmti3b59ITEwU+/fvF9evXxc7duwQvXv3Fv7+/mLBggUOccDXJEff10wmkzh9+rRYsWKFGD9+vOjYsaPQarVCo9EIPz8/ERUVJaZPny6+++47cePGDUW+Z1V79tJLL9llz+7EYe6KDACXL1/Ghx9+iPXr10Or1SI0NBTNmjWD0WjEhQsXcObMGQQEBGDq1KkYOXIk3Nzc1C7ZLrBvlisuLkZ8fDzmz5+Pq1evIigoCCEhIfDx8UF+fj7OnDmD7OxsPPDAA5g+fTp69eplNldeWznSvlZQUICDBw9i//79SElJQWpqKvLz8yFJEkJDQxEeHo7u3bsjPDwcbdq0qbHf7916dvr0aZSUlGDixImYMWOGwxyfDhUuwO/3f0pLS8OOHTtw4MABXLt2DXXq1EHLli3Ru3dvREVFoUGDBmqXaXfYN+vk5ORgz549SExMRGZmJkpLS+Hv74927dohKioK4eHh8PT0VLtMu2KP+5rJZMLp06fNTrqfOnUKQgj4+/sjPDwc3bp1Q/fu3REWFmbzizLu1LPIyEhs374dQghs2LDBYc7pOVy43EoIAaPRCEmS7P/klh1h36xjNBohhIBGo+EopYrU2tfy8/Nx4MABeVRy4MABFBQUQKPRoF27dmajkvvuu8+ufp+369nBgwcRHR2NBQsW4OGHH1a5wqpx6HAhIjIajTh58iRSU1Oxf/9+pKam4vTp0wB+vwKwW7du8qikS5cuDrWa462io6NRWFiIjRs3OsToheFCRA4lNzcXqampSElJwf79+3Hw4EEUFRXBxcUFHTp0kMOkW7duCA4Odoh/iKuicvQSGxuLRx99VO1y7orhQkR2y2Aw4MSJE/KoJCUlBRkZGQB+v11P5YgkPDwcXbp0MbtljzMaPXo0dDodNm3aZFdTebfDcCEiu3H16lV5VJKSkoKDBw+ipKQEWq0WHTt2NAuTFi1aOM2opKoOHTqEF154wSFGLwwXIlJFRUUFjh07ZnYF1/nz5wEA99xzj1mQPPDAA/Dw8FC5YvswduxY5OXl2f3oheFCRDaRnZ1tdtL9l19+QWlpKVxdXdG5c2ezK7iaNWtW60YlVXXkyBGMGDECc+fORVRUlNrl/C2GCxEprqysDEeOHDELk99++w0A0KxZM7OT7p06dXKYDwbai3HjxuH69evYvHmz3Y5eGC5EVG2XLl0yC5JDhw6hvLwcbm5u6NKlixwk4eHhaNKkidrlOryjR49i+PDh+Oyzz/DYY4+pXc5tMVyIyCKlpaU4dOiQWZhcvnwZwO93+711VHL//ffD1dVV5Yqd07hx43D16lVs2bLFLj8MzXAhor8lhMDFixfNTrofPXoUFRUV8PDwQFhYmNmoxN7XGHEmx44dw7BhwzBnzhw8/vjjapfzFwwXIpKVlJTgl19+kYMkNTUVOTk5AH5f+OrWk+7t27dHnTp1VK64dnv55ZeRnZ2NrVu32t3oheFCVEsJIZCZmSl/0j01NRXHjh2D0WiEt7e3PCrp3r07unbtisDAQLVLpj85ceIEnnvuOXz66ad44okn1C7HDMOFqJYoKirCL7/8YnaL+evXrwMAWrdubXaupG3btnb3lzDd3iuvvIJLly5h27ZtdvU7Y7gQOSEhBNLT081Oup84cQImkwl169ZF165dzUYl9erVU7tkslLl6OXjjz/Gk08+qXY5MoYLkROoXPiqcorrwIEDyMvLAwCEhoaajUpqcuErUserr76Kixcv4ptvvrGb0QvDhcjB3GnhKz8/P/mke7du3RAWFgY/Pz+1S6YadvLkSTz77LOYPXs2nnrqKbXLAcBwIbJ7lQtf3ToqcZSFr8h2XnvtNZw/fx7bt2+3i9ELw4XIjhiNRpw6dcpsVHLrwleVQeLoC1+R8k6dOoUhQ4Zg1qxZePrpp9Uuh+FCpKbc3Fyz5XgPHjyIwsJCeeGrW0clrVq14s0c6Y5iYmKQkZGBb7/9VvXRC8OFyEb+vPBVamoqzp49C+D/F76qfNSGha9IeWlpaRg8eDBmzpyJAQMGqFoLw4Wohly7ds1seut2C19VPmrjwldUMyZOnIgzZ85gx44d0Gq1qtXBcCFSQOXCV7eOSjIzMwFw4SuyrTNnzmDgwIGYMWMGnnnmGdXqYLgQWeHKlStmo5LKha/q1KmDzp07m41KuPAV2dqkSZNw+vRpVUcvDBeiuygrK8PRo0fNwuTWha9uPeneqVMnuLu7q1wx1Xbp6el45pln8MEHH2DQoEGq1MBwIfqTPy98dfjwYZSVlckLX90aJlz4iuzV66+/jlOnTmHHjh2q3L2a4UK1WmlpKQ4fPmx2Z2AufEXOoHL08u9//xuDBw+2+fdnuFCtUbnw1a2jkiNHjnDhK3JaU6ZMwYkTJ7Bz506bj14YLuS0Khe+ujVMKhe+Cg4ONhuVcOErckYZGRkYMGAApk+fjiFDhtj0ezNcyGlt2LABzz//PLy8vBAWFibfzDE8PJwLX1Gt8eabb+LkyZPYsWOHTe87x3Ahh2Hprnrr6y29FJiXDpO9svQ4qKioAACrRubVOQ7U+/gmkYW2bNnytzu7Xq9X7IOJJpNJtcs3ie7mhx9+sPgffYPBAKPRCDc3typvYzKZEBUVZWl5MoYLOYyUlBTMmjXL7GtCCEyfPh27du1CZGQkZs+eXe2h/9tvv81wIbt17NgxvP7661V6bX5+PrZs2YKkpCSUlpaiffv2eO2116q0xs/nn3/OcKHa48+fNl6+fDkWL16M1atXIyYmBmVlZVi4cCGntcip3e1T9yaTCTt37sSCBQvQqFEjDBo0CH5+fti4cSNGjBiBr7/+usaXa2C4kMMymUwYP3489uzZg4iICHTs2BH33nsvpkyZguDgYLXLI1JFRUUFpk+fjuTkZEyZMgWPPfaY/PmsiIgITJ48GWPGjMGGDRtq9I8wLllHDmvRokXw9/dHz549AQBNmjTBG2+8gaioKItPehI5AyGEfHXY2rVr8dRTT5l98Fer1eLzzz/HpUuXsH79+hqtheFCDkkIgX/84x/YuHGj2V9fs2bNwoULF5Cdna1idUTqWLNmDVJTU7Fy5Urcc889tx2Z1KlTB3FxcZg1a5Z8JVlNYLiQQzp9+jSMRqM8aqnk4uKCYcOGqXqrcSI1lJeXY/bs2YiPj4evr+8dX9uhQwcEBwdj+vTpNVYPw4Uc0sCBAzFhwoTb/mUWFxeHQ4cOwWg0qlAZkTo+/PBDtGrVCu3atbvrayVJQnx8PLZt2wa9Xl8j9TBcyOGUlZUhPT0ds2fPvu3znp6eaNCgAebPn2/jyojUIYTA5s2bsWTJkiqfpK9fvz7uv/9+vPPOOzVSE8OFHM6UKVPQpk2bO34gbM2aNZg2bRpP7FOtkJiYCHd3dzRs2NCi7RYtWoT//ve/KCsrU7wmhgs5lPLycsTFxWH79u13fF1kZCTKy8uh0+lsUxiRit599128+eabFl9a7O/vj7Zt2+Jf//qX4jUxXMihREdHo1OnTmjRosUdXydJEnr27Ilx48bZpjAilZhMJuh0Ojz77LNWbb948WLs2LFD8XOUDBdyKIMHD8b3339fpb/Q1qxZg61bt3JqjJzaDz/8AE9PT7i4uFi1fUBAAAIDA7F8+XJF62K4kEN55pln4O/vX6XXNm7cGJIk4fTp01V6vRACpaWl1SmPyOY++OADTJ482ertJUlCbGwsFi5cqOgfYgwXciiWzClLkoRx48Zh6NChd32tEAJxcXGqLAdLZC0hBPLz86u9EFiHDh1gMBiQm5urUGUMF3Jyc+bMwcmTJ+/6F1laWhpiYmIwduxYG1VGVH2//vortFpttVdRlSQJDz74IKZNm6ZQZQwXcnIeHh7w8vLC1q1b//Y1QghERUXhvffe4yf7yaG88847eO655xR5rxkzZiA5OVmxqTGGCzk1SZKwcOHCO45ILl26hJycHLz77rs2rIyoeoQQOH/+PCZNmqTI+1Uu/a3UeUeGCzm9ESNGoKCgAAUFBbd9fuDAgRg5cqRN1xcnqq7MzExoNBrFVmCVJAkNGjTA6tWrFXk/Hk3k9DQaDXr16oVRo0b95TmDwYAjR45g0aJFKlRGZL0333wTAwcOVHRNljfeeAPx8fGKvBfDhWqFDRs2YPv27X+5xfjMmTPRrFkzeHp6qlQZkeVMJhPS09MxdepURd+3b9++KCoqUuS8C8OFaoWAgAC0bt3a7PMAQgjMnDkTW7ZsUbEyIstt2LABvr6+ik2JVapcPtlgMFT7vRguVCtIkoRdu3Zh6dKluHjxIoDfb83v4+ODjh07qlsckYWSkpIwd+5cxZcpliQJ7u7uSE5OrvZ7MVyo1mjWrBkmTZqEiIgIrF69GpMmTcK3335bo+uIE9WE2NhYdO3atUbeu0+fPoqcg9QqUAuRzVT3MskZM2bA1dUVixYtwqeffopOnTrxli/kcEwmE8rLy2vkvUeNGoVPPvmk2u8jCd7VjxzEzp07FZkLBn6/db+rq+ttn3NxcUG/fv0U+T5ESktKSrLoDsYmkwkVFRV3XP/oVkIIGI1GuLq6olevXtaWyXAhx1HVXVUIIT+A3y9FtnTqi1NlZK+qehyYTCYUFBRAp9NBo9Hg3nvvtfh7Vec44DkXchiSJN3xYTKZsHbtWrRv3x6urq4YMGAADh06JIeLJQ8ie3W3fbe4uBhffPEFIiIi8PDDD2PNmjVwd3e3+Bio7nHAcy7k8AwGA9avX48ZM2YgPT0dTzzxBL788ssaO+FJZI8KCwuxevVqJCQkQK/XY/DgwRg3bpzFSx8rheFCDstgMGDt2rWYOXMmzp49iyeffBKrVq1Cly5d1C6NyGYKCwvx1VdfISEhAWVlZRgyZAjGjh2rWqhUYriQwzEYDFi9ejVmzZqFjIwM9O/fH2vWrEHnzp3VLo3IZgoLC7Fy5UqsWrUK5eXlcqg0aNBA7dIAMFzIgVRUVGD16tWYOXMmMjMz8fTTT2PdunXo1KmT2qUR2czNmzexcuVKfPXVVygvL8fQoUMxZswY+a7G9oLhQnavoqICq1atwqxZs3D+/Hk888wz2LhxI+6//361SyOymYKCAjlUDAaDHCr169dXu7TbYriQ3SovL8fKlSvx0Ucf4cKFCxg0aBA2b96MDh06qF0akc3odDo5VIxGI5577jmMGTMGAQEBapd2RwwXsjvl5eVISEjARx99hN9++w2DBg3C1q1b0b59e7VLI7KZ/Px8JCQkYPXq1TCZTBg2bBhGjx6NevXqqV1alTBcyG6UlZVhxYoVmD17Ni5duoQhQ4Zg+/btaNu2rdqlEdlMXl4eVqxYgTVr1gAAhg0bhujoaIcJlUoMF1JdWVkZvvzyS8yePRtZWVkYOnQo3n33XYSGhqpdGpHN3BoqkiRh+PDhiI6Ohr+/v9qlWYW3fyHVlJaWYvny5fj444+RnZ0th0qbNm3ULo3IZvLy8rB8+XKsXbsWLi4uGD58OEaNGgU/Pz+1S6sWhgvZXGlpKZYtW4aPP/4YOTk5eP755/Huu++idevWapdGZDO5ublYvnw51q9fDxcXF4wcORIvvPACfH191S5NEQwXshm9Xo9ly5bhk08+QU5ODoYPH45p06bhvvvuU7s0IpvJzc3Ff/7zH2zYsAFarRYjRoxwqlCpxHChGqfX6/HFF1/gk08+wfXr1+VQCQkJUbs0Ipu5fv26HCqurq4YOXIkRo4cibp166pdWo1guFCNKSkpQVxcHD799FPk5uZi5MiRmDZtGoKDg9Uujchmrl69iv/85z/4+uuv4ebmhlGjRmHEiBHw8fFRu7QaxXAhxRUXF8uhkpeXhxdeeAHvvPMOgoKC1C6NyGauXr2KZcuWYePGjXB3d8eoUaMwfPhwpw+VSgwXUkxxcTGWLFmCOXPmID8/H6NGjcI777yDli1bql0akc3k5OTIoeLp6SmHire3t9ql2RTDhaqtqKgIixcvxmeffYaCggJER0fj7bffRosWLdQujchmrly5gmXLlmHTpk3w8vJCdHQ0hg0bBi8vL7VLUwXDhaxWWFgoh8rNmzcxZswYTJ061arlVIkcVXZ2NuLj47F582Z4e3tj9OjReP7552ttqFRiuJDFbt68iUWLFuHzzz9HUVGRHCrNmzdXuzQim7l8+TK++OILbN26FT4+PnKoeHp6ql2aXWC4UJXdvHkTCxYswNy5c1FcXIwXX3wRU6dORdOmTdUujchmsrKyEB8fjy1btsDX1xdjxozBc889Bw8PD7VLsysMF7qrgoICLFiwAPPmzUNJSQlefPFFvPXWWwwVqlWysrIQFxeHbdu2wdfXF2PHjsXQoUMZKn+D4UJ/S6fTYf78+YiNjUVpaSnGjRuHt956C40bN1a7NCKb+e233xAXF4ft27fD398fY8eOxbPPPgt3d3e1S7NrDBf6i/z8fMTGxmL+/PkoKyvDyy+/jH/84x+455571C6NyGYuXryIuLg4fPvtt6hXrx7Gjh2LIUOGMFSqiOFCsry8PDlUKioq5FBp1KiR2qUR2cyFCxfkUAkICMCLL76IwYMHM1QsxHAh3LhxA/PmzcOCBQtgMBjwyiuv4M0330TDhg3VLo3IZs6fP4+lS5di586dCAwMxIsvvohBgwbBzc1N7dIcEsOlFsvNzcXcuXOxcOFCmEwmvPrqq3jjjTfQoEEDtUsjspnMzEw5VBo0aIBx48Zh4MCBDJVqYrjUQrm5ufj888+xaNEiCCHkUAkMDFS7NCKbOXfuHJYuXYrvvvsODRs2lEPF1dVV7dKcAsOlFrl+/To+++wzLF68GJIk4bXXXsOUKVNQv359tUsjspmzZ89i6dKl2L17Nxo1aoSXXnoJAwYMYKgojOFSC1y7dg1z5szBkiVLoNFoEBMTg8mTJyMgIEDt0ohsJj09XQ6Vxo0b4+WXX8bTTz+NOnXqqF2aU2K4OAAhBG7cuIGioiJ4e3sjICAAkiTddburV69izpw5WLp0KVxcXBATE4PXX3+doUIOydrjID09HYsXL8Z///tfNGnSBC+99BJDxRYE2a38/Hwxb948ERwcLADIj+DgYDFv3jyRn59/2+2uXLkipkyZIry8vISfn5947733xI0bN2xbPJFCrD0O0tLSxMSJE0VoaKiIiooSmzZtEhUVFbYtvhZjuNipXbt2CS8vLyFJkpAkyeygqvyal5eX2LVrl7xNdna2eP3114Wnp6fw9/cX77//vsjLy1PxpyCqHmuOg1OnTomYmBgRGhoq+vbtKzZv3sxQUQGnxezQ7t270a9fPwghYDKZ/vZ1Go0GkiRh5cqVOHDgAOLj4+Hu7o5JkyZh4sSJ8PPzs13RRAqz9DhYvHgxjh8/jh9//BHNmzfH+PHj8eSTT8LFxcWGVVMlhoud0el0aNq0KfR6/R0PqD/z9/fHlClTEBMTA19f3xqskKjmWXMcSJKERx55BDExMejXrx9DRWVatQsgcwkJCSgpKYGlmT916lRMnTq1hqoisi1rjgMhBPr164f+/fvXYGVUVRy52BEhBEJCQpCZmWnRQSVJEoKCgnD27NkqXT1DZM94HDgHhosdyc3Nrdan5HNzc3mZMTk8HgfOQaN2AfT/ioqKqrV9YWGhQpUQqYfHgXNguNgRb2/vam3v4+OjUCVE6uFx4BwYLnYkICAAwcHBFs8XS5KE4OBg1KtXr4YqI7IdHgfOgeFiRyRJQkxMjFXbTpw4kScxySnwOHAOPKFvZyy9vl+j0cDDwwNZWVn80CQ5DR4Hjo8jFzvj5+eHTZs2QZIkaDR3/vVUfjJ58+bNPKDIqfA4cHwMFzvUt29f7NixAx4eHpAk6S/D/MqveXh4YOfOnYiKilKpUqKaw+PAsTFc7FTfvn2RlZWFefPmISgoyOy5oKAgzJs3D5cvX+YBRU6Nx4Hj4jkXByCEQF5eHgoLC+Hj44N69erxpCXVOjwOHAvDhYiIFMdpMSIiUhzDhYiIFMdwISIixTFciIhIcQwXIiJSHMOFiIgUx3AhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCEiIsUxXIiISHEMFyIiUhzDhYiIFPd/j17x0vcrF5oAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# train the model\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01, lamb_entropy=10.0);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c14919f1",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Parameter 3: seed. \n",
|
|
"\n",
|
|
"Previously we use seed = 1. Below we vary seed."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c8debdf5",
|
|
"metadata": {},
|
|
"source": [
|
|
"${\\rm seed} = 42$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "8fe1c782",
|
|
"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: 5.67e-02 | test_loss: 5.72e-02 | reg: 5.81e+00 | : 100%|█| 20/20 [00:04<00:00, 4.81it\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model = KAN(width=[2,5,1], grid=3, k=3, seed=42, device=device)\n",
|
|
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "1692e33b",
|
|
"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.16"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|