GitHub_collection_pykan/tutorials/Example_13_phase_transition.ipynb
2024-08-11 13:02:16 -04:00

224 lines
53 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "5d904dee",
"metadata": {},
"source": [
"# Example 13: Phase transition"
]
},
{
"cell_type": "markdown",
"id": "6465ec94",
"metadata": {},
"source": [
"In this example, we will use KAN to learn phase transitions in data. Phase transition is an important concept in science. We consider a toy example $f(x_1,x_2,x_3)$ is 1 if $g(x_1,x_2,x_3)>0$, and is 0 if $g(x_1,x_2,x_3)<0$. $g(x_1,x_2,x_3)={\\rm sin}(\\pi x_1)+{\\rm cos}(\\pi x_2)+{\\rm tan}(\\frac{\\pi}{2}x_3)$."
]
},
{
"cell_type": "markdown",
"id": "94056ef6",
"metadata": {},
"source": [
"Intialize model and create dataset"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "0a59179d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"checkpoint directory created: ./model\n",
"saving model version 0.0\n"
]
}
],
"source": [
"from kan import KAN, create_dataset\n",
"import torch\n",
"\n",
"\n",
"model = KAN(width=[3,1,1], grid=3, k=3)\n",
"\n",
"# create dataset\n",
"f = lambda x: (torch.sin(torch.pi*x[:,[0]]) + torch.cos(torch.pi*x[:,[1]]) + torch.tan(torch.pi/2*x[:,[2]]) > 0).float()\n",
"dataset = create_dataset(f, n_var=3)\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "3837440b",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.5060)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.mean(dataset['train_label'])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "fe38f7c5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 7 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model(dataset['train_input'])\n",
"model.plot(beta=10)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8627b850",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"saving model version 0.1\n"
]
}
],
"source": [
"# set the last activation to be tanh\n",
"model.fix_symbolic(1,0,0,'tanh',fit_params_bool=False)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3957140b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxI0lEQVR4nO3de1SU1d4H8O8e7sNFFEFUvI2iKaJI3soL3pKWZK9pase3U3qyQ5aavnVavZ1TtqxT2qkjanc9lZbvMRNLEZMKi1IykIsoXkLRDBAvyCgw3GZmv3/gzAFF5PIwzzB8P2u1cjHMzA9m83yfvfez9yOklBJEREQK0qhdABEROR6GCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREinNWuwCitkBKiaKiIpSWlsLLywt+fn4QQqhdFpHdYs+FqAF6vR5r165FcHAw/P390adPH/j7+yM4OBhr166FXq9Xu0QiuyR4J0qi+iUkJGDWrFkwGAwAanovFpZei1arRWxsLCIjI1WpkcheMVyI6pGQkICoqChIKWE2m2/5fRqNBkIIxMfHM2CIamG4EN1Ar9cjKCgI5eXlDQaLhUajgYeHB/Ly8uDr69v6BRK1AZxzIbrBpk2bYDAYGhUsAGA2m2EwGLB58+ZWroyo7WDPhagWKSWCg4ORm5uLpvxpCCGg0+mQk5PDq8iIwHAhquPy5cvw9/dv0fP9/PwUrIiobeKwGFEtpaWlLXp+SUmJQpUQtW0MF6JavLy8WvR8b29vhSohatsYLkS1+Pn5oW/fvk2eNxFCoG/fvujUqVMrVUbUtjBciGoRQmDJkiXNeu7SpUs5mU90HSf0iW7AdS5ELceeC9ENfH19ERsbCyEENJqG/0QsK/R37NjBYCGqheFCVI/IyEjEx8fDw8MDQoibhrssX/Pw8MCePXswdepUlSolsk8MF6JbiIyMRF5eHmJiYqDT6eo8ptPpEBMTg/z8fAYLUT0450LUCFJKfP/995g8eTISExMxceJETt4TNYA9F6JGEEJY51R8fX0ZLES3wXAhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCEiIsUxXIiISHEMFyIiUhzDhYiIFMdwISIixTFciIhIcQwXIiJSHMOFiIgUx3AhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCG6jerqauTn5+P48eMAgNOnT+PKlSswm80qV0Zkv3ibY6Jb0Ov1iI2NxZYtW5CdnY2SkhJUVVXB3d0d/v7+GDduHB577DGMGTMGzs7OapdLZFcYLkT1+Pnnn7F8+XJkZWVhxIgRiIqKwpAhQ+Dl5QW9Xo+0tDTExcXh1KlTmDt3Ll599VX4+/urXTaR3WC4EN3gm2++wfz58+Hl5YXXX38d06ZNQ1VVFbZu3YrKykr4+PjgoYceQnV1NbZu3YqXX34ZISEh+PTTT9GlSxe1yyeyCwwXolp+/fVX3HvvvfD09MTWrVsxaNAgCCGQm5uL8PBwXL16FX369EFaWho6duwIKSX279+PefPmYcKECdi4cSPc3NzU/jGIVMcJfaLrTCYTXnvtNRQXF+Ptt9+2BktDhBAYO3Ys3njjDezcuRN79+61UbVE9o3hQnTdqVOnEBcXh5kzZ2Ls2LG3DRYLIQRmzJiB0aNHY8OGDTAaja1cKZH94yUuRNclJyejtLQUs2bNwtmzZ1FWVmZ9LC8vDyaTCQBQVVWF7Oxs+Pj4WB/v1q0bZs6ciZdffhmFhYUICgqyef1E9oThQnTdiRMnoNVqodPpEB0djQMHDlgfk1KisrISAFBQUIB77rnH+pgQAm+99RZCQ0NhMBhQUFDAcKF2j+FCdF15eTmcnZ3h5uaGyspKVFRU1Pt9UsqbHjMajfDw8KgTQkTtGcOF6LqAgACUl5dDr9dj1KhR8PT0tD5WXl6O5ORka4jcfffd1oWTQgj07NkTFy9ehEajQceOHdX6EYjsBsOF6Lo777wT1dXVSElJwerVq+s8lpubixEjRuDq1avo0qULPv/8c/j6+lofF0LghRdeQGBgIIfEiMCrxYisRo4cCZ1Oh02bNqGsrAxOTk51/rMQQkCj0Vi/rtFocP78eWzfvh1RUVHo0KGDij8FkX1guBBd5+fnh8WLFyM9PR3r1q1r9CXFlZWVeOWVV1BeXo7o6OhGX8JM5Mg4LEZUy/z58/Hjjz9i9erV0Gq1WLRoEdzd3QEAzs7OcHZ2tvZipJQoKSnB3//+d2zduhVr1qzBgAED1CyfyG5w+xeiG1y6dAlPPfUUdu/ejcjISCxfvhwDBw7EyZMnYTab4erqin79+iElJQVvvvkmMjMzsXLlSixatKjO8BlRe8ZwIapHWVkZNmzYgHXr1uHChQvQ6XQIDg6Gt7c3iouLcfLkSRQUFODOO+/EihUrEBERAY2Go8xEFgwXogYUFhYiMTERSUlJyD18GBUpKeg4bhwGjxmDqVOnYtSoUdBqtWqXSWR3GC5EjWRKTYUcORKa1FRohg9Xuxwiu8YJfaJGss6ncPiL6Lb4V0JERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeJ4PxciIlIcey5ERKQ43iyMHIaUEpdyclBZVKR2KS0iNBp0HjwY7p6eapdC1GwMF3IYUkoc++c/4dajB9y8vNQup+kKCwF/f1w6cABDVqxA1yFD1K6IqNkYLuRQhJsbBi1ciA5duqhdSuNJCezbB7z/PuTTTyMlLKzma0RtGOdciNRkNgNxccDDDwMnTgCffQZcu6Z2VUQtxnAhUovJBGzbBixYUDMkdtddwMcfA76+aldG1GIMFyI1mEzApk3AE08AV64AkyYBW7cC/fqpXRmRIhguRLZWXQ289x6wdGnNENh999UMh/XooXZlRIphuBDZUlUVsHYt8NxzgMEAPPhgzVBYYCAghNrVESmG4UJkK5WVwBtvAH/7W82/H34Y+OADwM+PwUIOh5ciE9lCRQXwyivAm2/WzLc89ljNv729GSzkkNhzIWpNUtYMf730EvCPf9Rcevzkk8A//8lgIYfGcCFqLZZg+d//Bdasqfna8uXAqlWApyeDhRwah8WIWoOUQFlZzcT9hx8CTk7AX/5SM9/i7q52dUStjuFCpDQpgZIS4NlngY8+qgmWF14Ann8ecHNTuzoim2C4EClJypq1K8uWAZs3A66uwIsv1gSNq6va1RHZDMOFSClSAlev1iyO3LKlJkxWrgSefprBQu0Ow4VICVICej2weHHNNi5ubsCrrwJLlgAuLmpXR2RzDBeilpISKC6uucR42zbAwwN4/XVg0SIGC7VbDBeilpCyZuPJJ58EvvgC0GqB1auB6GjAmX9e1H6x9RM1lyVYnngCiI2tCZZ//AN4/HEGC7V7/Asgag4pgaKimh7Kl1/WLIp8882abV0YLEQMF6ImswTLn/8MfPVVTbD885/An/5Us6aFiBguRE1SX7CsWVNzN0kGC5EVw4WosSzB8vjjwM6dgJdXTbDMn89gIboBN64kagwpgcuXGSxEjcSeC9Ht1A6WXbtqgmXtWuCRRxgsRLfAngtRQxgsRM3CngvRrViCZeFCIC6OwULUBOy5ENVHSuDSpf8Ei7c3sG4dg4WokdhzIbpR7WDZvbsmWNauBf74RwYLUSMxXIhqqy9Y1q0DHn6YwULUBAwXIgtLsDz2GBAfz2AhagGGCxFQf7CsXw/8938zWIiageFCZAmWP/0J2LOHwUKkAF4tRu2blMDFi/8JFh8f4O23GSxELcSeC7VftYPl669rgmX9emDePAYLUQsxXKh9khK4cKEmWPbu/U+P5Q9/YLAQKYDDYtT+SAkUFtZsOmnpsTBYiBTFngu1L5ZgWbAASEgAfH2Bd94BHnoI0PBci0gpDBdqP6QECgpqguXbb4GOHYF33wXmzGGwECmM4ULtg5RAfj7w6KPAvn01wfLee8Ds2QwWolbAcCHHJyWQl1ez6eQPPwCdOgHvvw/MmsVgIWolDBdybFIC587VbDr5009A587ABx8AM2YwWIhaEcOFHJeUwJkzNcGSnAz4+wMbNgDTpzNYiFoZw4Uck5TA6dM1m07+8gsQEAD861/AtGkMFiIbYLiQ45ESOHmyJljS0oCuXYGPPgIiIwEh1K6OqF3gKRw5nhMnahZEpqUB3bsDmzczWIhsjD0XcjznztX816NHTbBERDBYiGyM4UIORUqJshEjoImJqbnkODQUKC5Wu6wmqa6oULsEohZjuJDDEELAq1cvnFy/HsIyab93r7pFNYMsL4drhw5ql0HUIkJKKdUugkgJUko4SnMWQkBwKI/aMIYLEREpjleLERGR4hguRESkOIYLUWOlp9dc0pyernYlRHaP4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGC1EjSClRXFwMACguLgbvDk7UMIYLUQP0ej3Wrl2L4OBgTJ4yBQAwecoUBAcHY+3atdDr9eoWSGSnhOQpGFG9EhISMGvWLBgMBgBAmJRIBxAOIFMIAIBWq0VsbCwiIyPVK5TIDrHnQlSPhIQEREVFoby8HFLKm4bBLF8rLy9HVFQUEhISVKqUyD6x50J0A71ej6CgIJSXl8NsNlu/Pgyw9lwyan2/RqOBh4cH8vLy4Ovra9tiiewUey5EN9i0aRMMBkOdYGmI2WyGwWDA5s2bW7kyoraDPReiWqSUCA4ORm5u7k1DYbfquQCAEAI6nQ45OTkQ1+djiNoz9lyIaikqKsLp06ebfKmxlBKnT5/GlStXWqkyoraF4UJUS2lpaYueX1JSolAlRG0bw4WoFi8vr1s+dgI1Q2InGni+t7e30iURtUkMF6Ja/Pz80Ldv33rnTcpRM9dSXs/zhBDo27cvOnXq1NolErUJDBeiWoQQWLJkSbOeu3TpUk7mE13Hq8WIbnCrdS63wnUuRDdjz4XoBr6+voiNjYUQAhpNw38iGo0GQgjs2LGDwUJUC8OFqB6RkZGIj4+Hh4cHhBA3DXdZvubh4YE9e/Zg6tSpKlVKZJ8YLkS3EBkZiby8PMTExECn09V5TKfTISYmBvn5+QwWonpwzoWoEaSU+P777zF58mQkJiZi4sSJnLwnagB7LkSNIISwzqn4+voyWIhug+FCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJ0G9XV1cjPz8fx48cBAKdPn8aVK1dgNptVrozIfvE2x0S3oNfrERsbiy1btiA7OxslJSWoqqqCu7s7/P39MW7cODz22GMYM2YMnJ2d1S6XyK4wXIjq8fPPP2P58uXIysrCiBEjEBUVhSFDhsDLywt6vR5paWmIi4vDqVOnMHfuXLz66qvw9/dXu2wiu8FwIbrBN998g/nz58PLywuvv/46pk2bhqqqKmzduhWVlZXw8fHBQw89hOrqamzduhUvv/wyQkJC8Omnn6JLly5ql09kFxguRLX8+uuvuPfee+Hp6YmtW7di0KBBEEIgNzcX4eHhuHr1Kvr06YO0tDR07NgRUkrs378f8+bNw4QJE7Bx40a4ubmp/WMQqY4T+kTXmUwmvPbaayguLsbbb79tDZaGCCEwduxYvPHGG9i5cyf27t1ro2qJ7BvDhei6U6dOIS4uDjNnzsTYsWNvGywWQgjMmDEDo0ePxoYNG2A0Glu5UiL7x0tciK5LTk5GaWkpZs2ahbNnz6KsrMz6WF5eHkwmEwCgqqoK2dnZ8PHxsT7erVs3zJw5Ey+//DIKCwsRFBRk8/qJ7AnDhei6EydOQKvVQqfTITo6GgcOHLA+JqVEZWUlAKCgoAD33HOP9TEhBN566y2EhobCYDCgoKCA4ULtHsOFCIDZbMb58+fh7OwMNzc3VFZWoqKiot7vlVLe9JjRaISHh0edECJqzxgu1O5UVlbi6NGjyMzMREZGBjIzM3H48GGUlpbCw8MDer0eo0aNgqenp/U55eXlSE5OtobI3XffbV04KYRAz549cfHiRRgMBsybNw+jRo3CsGHDEBYWhmHDhqFr166NnsMhcgS8FJkcml6vR2ZmpjVIMjIycPz4cRiNRgghMGDAAGsAVFdXY+XKlVi3bh0WLlxY53Vyc3MxYsQIXL16Fb1798ahQ4fg6+trfVwIgRdeeAGbNm3CjBkzcOLECWRkZODq1asAAH9/fwwbNqxO4PTr1w9OTk62/HUQ2QzDhRyClBL5+fnWALGEydmzZwEA7u7uCA0NtR7Yhw0bhtDQ0Dq9k6KiIowdOxYdO3bE3r1760zY32qdi+W9CwoKEBERgfvvvx9vvfUWhBCQUuK3336rU09GRgby8vIAAJ6enhgyZIi1prCwMISGhsLd3d12vziiVsJwoTbHZDLh5MmTdYa1MjIyUFRUBADo2LHjTb2EAQMGNGr/r3feeQfPPPMM/va3v+H555+3PqehcKmoqMCyZcsQFxeHffv2YcCAAQ2+x+XLl+v0pjIzM3HixAmYzWY4OTlh4MCBdQInLCwMnTp1auFvjci2OOdCds1gMODIkSN1zvyPHDmC8vJyAECvXr0QFhaGJUuWWA/IPXr0aPb8xvz58/Hjjz9i9erV0Gq1WLRokbUn4ezsDGdnZ+tQlpQSJSUl+Pvf/46tW7dizZo1tw0WAOjcuTOmTJmCKVOm3PLnzMzMRGxsrPXn7NmzZ52wbOnPSdTa2HMhu2E5o6/dGzl58mSdM/raB9ihQ4e2yhn9pUuX8NRTT2H37t2IjIzE8uXLMXDgQGstrq6u6NevH1JSUvDmm28iMzMTK1euxKJFixSdQzEajcjJyblpWM3SQ+vUqZO1Z2P5vdxxxx3coZnsAsOFbE5KibNnz94UJJa5CK1Wi6FDh9YJkpCQEHh4eNisxrKyMmzYsAHr1q3DhQsXoNPpEBwcDG9vbxQXF+PkyZMoKCjAnXfeiRUrViAiIgIaTetveFF7bqn27+/MmTMAADc3N4SGhtYZFhwyZEiduSUiW2C4UKuqrq7G8ePHbzoY1ncVleVgaE9XURUWFiIxMRFJSUk4fPgwUlJSMG7cOIwZMwZTp07FqFGjoNVq1S4Ter0ehw8frnNBw7Fjx6xXxfXv379OWIeFhSEgIEDtssmBMVxIMSUlJcjKyqoTJEePHkVVVRUAoG/fvjcd4NrS+o/U1FSMHDkSqampGD58uNrl3FZFRQWOHTtW5/OwrOcBarasqT2HExYWBp1O12Y+D7JvDBdqlsLCwjrzAJmZmTh16hSklHBxcUFISMhN8yO1L+1ti9LT03HnnXciLS0N4eHhapfTLGazGadPn77psyssLAQA+Pj43DQkOWjQILi6uqpcObU1DBdqkOVgdOOwluVg5O3tfdPZr6MejBwhXG6l9smC5f85OTkA4LAnC9S6GC5kVVlZiezs7AaHUW4c1urTp49NJrLtgSOHS30aM8x544lFWxrmpNbFcGmnbtwW5VYTwLUX8rX3CeD2Fi71sVygcWMvx3KBRkBAQJ2TD25z034xXBzc7S5dvXFbFF66emsMl/rd7tJyyzY3tQNn8ODB3ObGwTFcHEh926JkZmbi8uXLAP6zLUrtoYzGbotCDJemunGbm/oWxXKbG8fFcGmj6tsuJCsr66ZtUWqHCbcLaRmGS8vdrt1atrlhu237GC5tQFFR0U1bgPAM0PYYLq2j9jY39W1EeuM2N+xxtw0MFzvS2G1Rav+R2XpblPaM4WI79c0VNnQLBc4V2h+Gi0puvOqmoW1ReNWNfWC4qK+pVzkOGzYM/v7+apfdLjFcbKC0tNS67xPXC7RdDBf71Jhtbm5cn8Vtblofw0Vh9a10bmhblCFDhqBDhw5ql02NwHBpO263s4SPj89Ntytw1J0l1MJwaaambIvCPZocA8Ol7atvTzxuc9M6GC6NUF1djSNHjnBblHaO4eKYmrqbd3h4OAIDA1Wu2v4xXBrh7Nmz6NOnD++L0c4xXNqPhu5DNH/+fHz88cdql2j3GC6NUPtXxEnA9ktKCSklhBBsB+0QjwNNw1VIjcCGRBZsC+0XP/umcYhwkVIiJyfHuqK3rdJoNBg8eDAXgjUT2wGxDdgPhxgWM5vNeOqppxAUFAQvLy+1y2mS6upqmEwmuLm5Yf/+/XjppZcwZMgQtctqk+ylHRiNRmg0mmZf0PHTTz+xHTSTkm1ASgmTyQQnJyeb91ocoQ04RM8FANzc3LBw4UJ06dJF7VIaTUqJ7du3Y/Xq1Zg8eTIGDx4MB8h6VanVDqSUKC4uxnvvvYfExEQEBgZi0aJFGDNmTJNCRkqJ0tJStoMWaGkbkFLi0qVLWLNmDQ4ePIjQ0FD8z//8D3r16mWTkHGUNuAw4dJWpaamIj093bobLLVNer0eCxcuxM6dO60HhW+++Qbvv/8+Zs2axfH6NuTatWt47LHHEB8fDwBISkrCgQMHsG3bNq7sbwIuxFCRyWRCdnY2AGDw4MFcF9NGmUwmvPnmm9i1axe8vLzw/PPPY/z48bhy5QqWL1+Oo0ePtvmz0PZCSol//etf+Prrr+Hj44NnnnkGQUFByMjIwHPPPWe9NQDdHo9mKiotLcXp06chhMDgwYPVLoeaQUqJjIwMvP/++xBC4K9//SteeeUVfPbZZwgLC0N+fj5eeeUV64I8sm8XLlzA+++/DyklFi9ejFWrVmH9+vXQarXYvXt3nZ4pNYzhoqLCwkIUFhbCw8MD/fv3V7scagaTyYS1a9eiuLgYo0aNQnR0NJycnNC9e3esXLkS7u7uiI+Px08//cSDkp2TUiI+Ph65ubno1q0bHn/8cTg5OWHatGmYO3cuqqurERMTg2vXrqldapvAcFFRTk4OysrK4O/vj6CgILXLoSaSUiI7Oxu7d++Gi4sLli1bZt2HSgiBe+65B5MnT0Z5eTnee+89GI1GlSumhlRVVeHzzz+H2WzG9OnT0aNHDwCAs7Mzli5dio4dOyIjIwMJCQk8UWgEhotKpJQ4cuQITCYTdDodN8drg6SU+Oyzz3D16lWEhYUhMjKyzmSvq6srnnjiCbi6uiIxMdE6v0b26fTp00hNTYWbmxtmz55t/SyFEAgJCcF9990Ho9GIjz76iMOcjcBwUYmUEllZWQBqJvNdXFxUroia6tKlS9ixYweEEHjkkUduWlchhMD48eMxdOhQXLt2Ddu3b+cZr52SUiIxMRFXr15Fv379EB4eXudEwcnJCQsWLIC7uzuSk5ORlZXFz/I2GC4qMRgMOH78OABg6NChKlfjWKSUOH/+PGJjY5GQkICSkhLFDwRSSnz33Xf47bff0LVrV0yfPr3eS1S9vLwwe/ZsAMDOnTutdxol+2I0GpGQkAAAmDx58k0jCUIIjBgxAuHh4SgtLcUXX3yhRpltCsNFJRcuXEBeXh7c3NwQEhKidjkOZf/+/Zg8eTLmzJmD6dOn48EHH8Rvv/2maMAYjUZs27YNZrMZU6dORffu3ev9PiEE7rvvPnTq1Ak5OTlITU3lGa8dKiwsRHp6OpydnTF16tR6v0er1WLOnDkQQiAuLg5XrlyxcZVtC8NFJb/++iuuXbuGzp07o3fv3mqX41A8PT2h1+sRGBgIrVaLb7/9FosWLVL0Kp8zZ84gOTkZLi4umD17doNrlHQ6HUaOHImqqirs2rWL4WJnpJRIT0/HpUuXEBgYiGHDhtXbCxVCYNq0afDz88Pp06eRnJzMz7IBDBcVSClx+PBhmEwm9O3bFx07dlS7JIcSFhaGTz75BD/88AM++eQTdOjQAd9++y0+/PBDmM3mFr++lBLffPMNrly5Ap1Oh1GjRjW4atvFxcU6bLZv3z5eymqHkpKSYDKZEBYWBn9//1t+X+/evTFu3DgYjUZ8+eWXirQnR8VwUYHZbEZ6ejqAmvkWTuYrS6PR4J577kG/fv0wffp0LFmyBFJKrF+/HmfPnm3x69fugURGRt725EAIgYkTJ6JDhw7Izc21XshB9qGiogLJyckAgIiICDg5Od3ye52cnPDAAw9Ao9Fg3759uHjxoq3KbHMYLiooKyvDsWPHIITgHQ1bieWGXk5OTnjyyScxYMAA5OXlYePGjS0+2zxz5gwOHToEV1dX3H///Y16Tu/evREaGorKykokJiZyOMWO5OXl4ddff4WbmxvuuuuuBnuhQghMmDABgYGByM/Px/79+/lZ3gLDRQX5+fnIy8uDh4cHQkNDuRFeK+vSpQuio6MhhMCWLVuQn5/f7Neqfcmq5d7qjfn83NzcMGnSJADAvn37UFlZ2ewaSDmW7XuuXbuGbt26YcCAAbd9TteuXTFu3DiYTCbs2rWLQ2O3wHBRwdGjR1FaWorAwEBO5tuAEAJz5sxB7969kZeX16L1JkajEbt374aUEpMnT4avr2+ja5g0aRLc3Nxw7NgxnDt3rlnvT8pLTk6G2WzG0KFDG/V5ajQa3H///dBoNEhKSsKFCxdav8g2iOFiY1JKHDp0CGazGQMHDuTKfBsJDAzE3LlzIaXEli1bUFJS0qzX+e2333Do0CG4uLggKiqqSc8dNGgQgoKCoNfrkZKSwuEUO1BZWYmUlBQAwF133dWonckti2O7du2K8+fPc2jsFhguNlZdXY1Dhw4BAIYPH97g5CEpRwiBhx56CB06dMDRo0ebdRmplBI//PADrly5gt69e2P48OFNGtL09fXFiBEjrK/DA5L6zp8/j1OnTsHV1RUjR45s9OcZGBhoHRrbuXMnh8bqwXCxsaKiIpw8eRJOTk5NaszUcgMHDkRERASqqqqwZcuWJh8Qag+JTZo0qcmXkGs0GkRERAAAfvnlF5SVlTXp+aS87OxsFBcXw9/fv1HzLRYajQb/9V//BY1Ggx9//JFDY/VguNjYyZMncenSJXTq1AmDBg1Su5x2xdnZGX/4wx/g5OSE7777rsnzHvn5+Th48CCcnZ0RFRXV5BMDIQRGjRoFT09PnD17FmfOnGnS80lZUkqkpqbCZDJh4MCB8PPza/RzhRAYO3asdWiMt1S4GcPFhqSUSElJQXV1NYKDg21+n/f2zjKp3qdPH1y8eBF79uxp9AFBSomkpCRcunQJPXr0aHavU6fToVevXjAYDNwKRmVGoxG//PILAGDkyJFwdm7aXd8DAwMxfvx4mM1mDo3Vg+FiQyaTybpYa+TIkXBzc1O5ovbHz88P999/P6SU2LZtGyoqKhr1PJPJhLi4OEgpMXHiRHTu3LlZ7+/l5YXhw4dDSokDBw4wXFRUXFyM48ePN3uIWqPRYMaMGXByckJSUhIKCgpaqdK2ieFiQ8XFxcjKyoJGo8Hdd9+tdjntkhACDz74ILRaLdLS0nD48OFGHeDz8/Nx4MABODk53XIH5Ma+v+WzT0tL47yLinJycnDx4kV06NChWbcZF0Jg3LhxCAoKwoULF7g49gYMFxs6ceIEzp8/D19f30YvviNlCSEwdOhQ3HnnnTAYDPjiiy9ue0CQUlq3+ujRo8dtV3Hf7v2HDx8OrVaLs2fPcr2LSqSUSEtLQ2VlJXQ6Hbp27dqs1wkICMDUqVNhNpuxfft2VFdXK1xp28VwsRHLMEhlZSUGDBhwyy3aqfW5u7tb7zQYFxeHoqKiBr/faDTiq6++si6cbO6QmIVOp0NQUBBKS0sb3XMiZUkprfMt4eHhcHd3b9brCCEwa9YsuLq6Ijk5Gb/++quSZbZpDBcbMRqN+OmnnwAAY8aM4XyLioQQiIqKQkBAAM6cOYN9+/Y1eIDPzc3FgQMH4OLiggceeKDFPU5vb2+EhoZCSomDBw+26LWoeSzBbrmCr7mEEBg9ejQGDhwIvV7Pu43WwnCxkYsXLyIzMxNOTk7WtQ6knp49e2Lq1KkwmUz47LPPbjmcIaW03hiqX79+LRoSs9BoNNYDmmVohmzr999/x++//w6tVtviIWpvb2/MmTMHALBt2zbeROw6hosNWMZ3L168iICAAISFhXG+RWUajQYPP/ww3Nzc8OOPP+LIkSP1nnGWlZVZb2k7Y8aMRu8l1hDLvIuLiwtOnTrFbdttTEqJzMxMlJaWonv37i3e308IgdmzZyMgIAA5OTnWhbbtHcPFRhITE2EymRAeHs71LXZACIG77roL4eHhKCkpwaZNm246IEgpkZycjKysLPj4+ODBBx9U7P379++Pzp07Wy+HJds6ePAgpJQYMmQIvL29W/x6ffr0wQMPPACTyYR3330XV69eVaDKto3hYgMlJSVISkoCAEyZMoX7idkJT09PLFiwABqNBtu3b0dubm6dgDEajdi4cSMqKysRERGBkJAQxXqcnTt3RnBwMIxGI9LS0nima0MVFRXW/f1Gjx7dqM0qb0ej0WDRokXw8/NDeno6Pv3003b/mTJcbODYsWPIycmBt7c3Jk6cyCExOyGEwIwZM3DHHXegsLAQH3zwgXWVtWVrkISEBLi6uuLxxx9X9I6hLi4u1hvFWXbJJts4f/48cnJymrxZZUOEEAgJCcGCBQtgNpvx+uuvN2tzVEfStP0OHIyUElVVVThz5gzOnTsHV1dX9O/fH4GBgYqczVjeIyEhAeXl5Rg9ejT69eunyOuSMvz8/PDkk0/i6aefxscff4zZs2djxIgRKC8vx+rVq1FSUoJJkya1yknBiBEjIIRAdnY2SkpKFJnPoYZJKZGVlQW9Xo+goCD0799fsdfWaDR45plnkJSUhNTUVMybNw/PP/887r77bphMJhQUFOD3339HRUUFgoKCMHr0aHTv3l2xY429aZfhYgmVb775BuvXr0dKSgpKS0uh0WjQpUsXPPzww1i+fDn8/f1bfEAxGAz4+uuvAQD33nsvPDw8lPgRSCFCCMybNw///ve/ceDAASxfvhyffPIJduzYga+//hqenp547rnnoNVqFX/fwYMHw9PTEwUFBTh37hzDxUYOHDgAs9mMwYMHo1OnToq9rhACAQEB2LhxIx555BEcPnwYixcvhpubG6SUqK6utvZQhRDo3r07nnnmGURHRzd7nY09c8zIbICUEr///juio6Mxd+5cfPfdd6iqqkKvXr0QEBCA8+fP44033sCMGTOQnZ3d4m5tdnY2jh49Ck9PT0ybNo1DYnaoQ4cOWLVqFfz9/fHzzz8jIiICK1asgNlsRnR0dKsNZfbo0QPdunWDwWDA0aNH2/UQiq1UVlbi559/BlCz3kzp+U/LScOuXbvwzDPPoH///tBqtfD29kbfvn0xduxYTJkyBb1790Z+fj6ee+45rFq1yiFX9rercDGbzfjpp58wffp0bN68GVJKzJ07F99++y0OHTqE1NRUrFmzBgEBATh48CDmzJnTohXUUkp89dVXMBgMGDJkCLfYt1OWK8c++OAD9O7dGxcvXoSzszMWLlyIF198scm75TaWt7c3Bg0aZL1UnVpffn4+Tpw4AVdXV4wZM6ZVThqEEAgKCsLq1atx8OBBpKenIyMjAykpKUhMTMSePXuQnJyMxYsXw2w24x//+Ad27drlcCcX7WJYzNIl3bRpE/7617/i8uXL6NWrF15//XXMnDkTLi4u1ka2ePFihIeHY8GCBThx4gQeffRRfPHFFwgODm5yQywuLsbOnTsBADNnzuSQmB2z3Pxp+PDhOHz4MPz9/REWFlanbbTGew4bNgxfffUVMjMzUV1drehFA1SX5SINvV6Pnj17YuDAga32XkIICCHQoUMHdOjQ4abHAwIC8Nprr+HChQvYtm0bVq5cifHjx8Pf37/VarI1h++5SClx+fJlPPvss1i6dCmKioowfvx4xMXFYe7cuXB1da1z8LDsWvvZZ5+hV69eOHLkCJ544glcunSpSWcWUkp8//33yMnJQefOnXH//fdzSMzOWc44o6KiMHLkyJvaRmu8X3h4OJycnJCTkwO9Xt9q70X/+Zs0m80YPny4ovMtTSWEgFarxYoVKxAYGIjs7Gx8/vnnDtV7cahwMZvNKCwsRFVVFaSUMBgMiI+Px7Rp0/DOO+9ASomFCxdi+/btDa5ZEEJgxIgR+PDDD+Hn54ekpCQ899xzKC8vb3QtVVVV+Pjjj2E0GjF16lT06dNHqR+THMiAAQPg4+ODy5cv886UraykpAT79++HEAKTJ09W/SotIQQGDBiAhx9+GGazGR9//DFKSkpUrUlJDhUuFy5cwL333ov77rsPf/rTnzBx4kTMnj0baWlp6NKlC2JiYrB27Vr4+fnd9ozU0gBXrVoFNzc3/N///R9iYmJgNBpvW4el+52UlAR3d3csWLCACyepXoGBgejRowcqKipw5MgRtctxWFJKHDlyBLm5ufDx8cG4cePsYiRBCIE//vGP8PX1xdGjR60XGzgChwqXtLQ05OTk4LvvvsOmTZuQmpoKV1dXzJ07F3v37sWf//xnuLu7N7pRaTQaPPLII3j66adhNpuxatUqfPnll7ftulZXV+Ptt99GWVkZxowZg7vvvtsuGjLZH61Wi5CQEABARkaGytU4tq+//hqVlZUYMmQIdDqd2uUAqAmXO+64A2PHjkV1dTV27NjhMENjDjWhP2nSJMTHx+PHH3+0TtpNmDABISEhcHZ2btYB3sXFBS+88AJycnKwY8cOLFu2DN26dbtlYEgp8cMPP2D37t1wc3PDkiVLHPIadlKGEALDhg3Dv//9b2RlZaGqqkrtkhzStWvXEB8fDwCIioqyq1teODs7Y8aMGYiPj8e+ffscZldlhwoXrVaLCRMm1NnSXokeg5eXF2JiYvD7778jNTUVCxcuxOeff47Q0NA6ry+lRFFREVasWAGDwYDp06fjnnvuYa+FbslyZ0xnZ2fk5ube9sZl1HSWG/WdOHECvr6+iIqKsqu/SSEEIiIi4Ofnh3PnziEzM1PtkhThUMNiFpbLAJVqQJbVtBs2bEBwcDBOnjyJefPm4dChQ9YurJQSFRUVWLFiBVJSUuDv74+XXnqJvRa6reDgYPj6+qKoqIiT+gqRUuK3337D4cOHUVVVhY0bN6KqqgoTJkxQdMsXpfTo0QNDhw5FdXU1vv/+e7XLUYRDhktrEEIgNDQUmzZtgk6nw7Fjx/DAAw/g3XffRV5eHk6fPo1ly5Zhw4YNcHFxwUsvvdTimxBR+xAQEICePXuiqqoKWVlZapfjEBITEzF58mTMnz8fH330Efbu3Qt3d3dER0e32qLYlnBxccGECRMAAMnJyQ6xYt/+fst2zHJL1G3btiE6Ohrp6el4+umn8corr8BoNOLKlStwdXXFs88+i4ULF6p+qSO1De7u7ggJCUF6ejoyMzPRs2dPtUtq87p27Yry8nLk5uZi2bJlqK6uxpw5czBhwgS7POETQmD69OkAgIiICIfovfDo10SWCdhdu3bh2WefRffu3aHX61FWVoaBAwfinXfewYsvvmhXE4Zk3yxtysnJCWfOnHGIs1a1DRo0CG+88Qa6dOkCjUaDSZMmYfXq1XB1dVW7tFsKDQ3FCy+8gDFjxjjEianD9FyklCguLrbZ9hlubm74y1/+gkcffRRnz56Fk5MT+vXrB19fX5SVlaGsrKzJr8l7qbecrduBUsaPH49PPvkEd9xxB7788ku1y2nTpJTQ6/WIjIzEgAEDcPnyZQwcOBDe3t4oLi5Wu7xGcYRjgUOEixACPXv2xPr169v0YsXy8vJ69yGixnGEdvDLL7+wHbTArdrAnj17VKyq6RyhDQjpACt2pJQOs/BIyavc2hu2A2IbsB8OES5ERGRf2v6sERER2R2HmHOxhdodvLbcVaXmYxsgtoHGY8+lkTIyMqDRaLi5YDvGNkBsA43HcCEiIsUxXIiISHEMFyIiUhzDhYiIFMdwISIixTFciIhIcQwXIiJSHMOFiIgUx3AhIiLFMVyIiEhxDBciIlIcw4WIiBTHcCEiIsUxXIiISHEMFyIiUhzDpRGklCguLgYAFBcXO8w9uqnx2AaIbaBpGC4N0Ov1WLt2LYKDgzFlyhQAwJQpUxAcHIy1a9dCr9erWyC1OrYBYhtoHiEZv/VKSEjArFmzYDAYANR/e1OtVovY2FhERkaqUiO1LrYBYhtoPoZLPRISEhAVFQUpJcxm8y2/T6PRQAiB+Ph4NiwHwzZAbAMtw3C5gV6vR1BQEMrLyxtsUBYajQYeHh7Iy8uDr69v6xdIrY5tgNgGWo5zLjfYtGkTDAZDoxoUAJjNZhgMBmzevLmVKyNbYRsgtoGWY8+lFiklgoODkZub26QrQYQQ0Ol0yMnJsY7DUtvENkBsA8pguNRy+fJl+Pv7t+j5fn5+ClZEtsY2QGwDyuCwWC2lpaUten5JSYlClZBa2AaIbUAZDJdavLy8WvR8b29vhSohtbANENuAMhgutfj5+aFv375NHi8VQqBv377o1KlTK1VGtsI2QGwDymC41CKEwJIlS5r13KVLl3ISzwGwDRDbgDI4oX8DXt9ObAPENtBy7LncwNfXF7GxsRBCQKNp+NdjWZm7Y8cONigHwjZAbAMtx3CpR2RkJOLj4+Hh4QEhxE3dXMvXPDw8sGfPHkydOlWlSqm1sA0Q20DLMFxuITIyEnl5eYiJiYFOp6vzmE6nQ0xMDPLz89mgHBjbALENNB/nXBpBSokrV66gpKQE3t7e6NSpEyft2hm2AWIbaBqGCxERKY7DYkREpDiGCxERKY7hQkREimO4EBGR4hguRESkOIYLEREpjuFCRESKY7gQEZHiGC5ERKQ4hgsRESmO4UJERIpjuBARkeIYLkREpDiGCxERKe7/AQQNFKJG8FkaAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 500x400 with 7 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model(dataset['train_input'])\n",
"model.plot(beta=10)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "be0b0daf",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"| train_loss: 7.72e-02 | test_loss: 1.37e-01 | reg: 2.37e+02 | : 100%|█| 50/50 [00:04<00:00, 10.44it"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"saving model version 0.2\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"model.fit(dataset, opt=\"LBFGS\", steps=50);"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "2f9b37a8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 7 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model.plot(beta=10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d6d85bda",
"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
}