{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 02wk-2: 회귀분석 (3) – Step1,2,4 의 변형\n",
"\n",
"최규빈 \n",
"2024-03-13\n",
"\n",
"
\n",
"\n",
"# 1. 강의영상\n",
"\n",
"\n",
"\n",
"# 2. Imports"
],
"id": "da405a90-14e6-4cc6-a05f-d5b789d83ac8"
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import torch\n",
"import matplotlib.pyplot as plt \n",
"import numpy as np"
],
"id": "c0c54c1b-8839-4c46-b4c7-83e85bd7107d"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. 회귀분석 예제의 다양한 구현\n",
"\n",
"## A. Data"
],
"id": "b51c35d9-9e03-4d32-ac1b-28c40cc6b162"
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"temp = [-2.4821, -2.3621, -1.9973, -1.6239, -1.4792, -1.4635, -1.4509, -1.4435,\n",
" -1.3722, -1.3079, -1.1904, -1.1092, -1.1054, -1.0875, -0.9469, -0.9319,\n",
" -0.8643, -0.7858, -0.7549, -0.7421, -0.6948, -0.6103, -0.5830, -0.5621,\n",
" -0.5506, -0.5058, -0.4806, -0.4738, -0.4710, -0.4676, -0.3874, -0.3719,\n",
" -0.3688, -0.3159, -0.2775, -0.2772, -0.2734, -0.2721, -0.2668, -0.2155,\n",
" -0.2000, -0.1816, -0.1708, -0.1565, -0.1448, -0.1361, -0.1057, -0.0603,\n",
" -0.0559, -0.0214, 0.0655, 0.0684, 0.1195, 0.1420, 0.1521, 0.1568,\n",
" 0.2646, 0.2656, 0.3157, 0.3220, 0.3461, 0.3984, 0.4190, 0.5443,\n",
" 0.5579, 0.5913, 0.6148, 0.6469, 0.6469, 0.6523, 0.6674, 0.7059,\n",
" 0.7141, 0.7822, 0.8154, 0.8668, 0.9291, 0.9804, 0.9853, 0.9941,\n",
" 1.0376, 1.0393, 1.0697, 1.1024, 1.1126, 1.1532, 1.2289, 1.3403,\n",
" 1.3494, 1.4279, 1.4994, 1.5031, 1.5437, 1.6789, 2.0832, 2.2444,\n",
" 2.3935, 2.6056, 2.6057, 2.6632]\n",
"sales= [-8.5420, -6.5767, -5.9496, -4.4794, -4.2516, -3.1326, -4.0239, -4.1862,\n",
" -3.3403, -2.2027, -2.0262, -2.5619, -1.3353, -2.0466, -0.4664, -1.3513,\n",
" -1.6472, -0.1089, -0.3071, -0.6299, -0.0438, 0.4163, 0.4166, -0.0943,\n",
" 0.2662, 0.4591, 0.8905, 0.8998, 0.6314, 1.3845, 0.8085, 1.2594,\n",
" 1.1211, 1.9232, 1.0619, 1.3552, 2.1161, 1.1437, 1.6245, 1.7639,\n",
" 1.6022, 1.7465, 0.9830, 1.7824, 2.1116, 2.8621, 2.1165, 1.5226,\n",
" 2.5572, 2.8361, 3.3956, 2.0679, 2.8140, 3.4852, 3.6059, 2.5966,\n",
" 2.8854, 3.9173, 3.6527, 4.1029, 4.3125, 3.4026, 3.2180, 4.5686,\n",
" 4.3772, 4.3075, 4.4895, 4.4827, 5.3170, 5.4987, 5.4632, 6.0328,\n",
" 5.2842, 5.0539, 5.4538, 6.0337, 5.7250, 5.7587, 6.2020, 6.5992,\n",
" 6.4621, 6.5140, 6.6846, 7.3497, 8.0909, 7.0794, 6.8667, 7.4229,\n",
" 7.2544, 7.1967, 9.5006, 9.0339, 7.4887, 9.0759, 11.0946, 10.3260,\n",
" 12.2665, 13.0983, 12.5468, 13.8340]\n",
"x = torch.tensor(temp).reshape(-1,1)\n",
"ones = torch.ones(100).reshape(-1,1)\n",
"X = torch.concat([ones,x],axis=1)\n",
"y = torch.tensor(sales).reshape(-1,1)"
],
"id": "a9d8670a-75b9-4052-b93b-876986add1c3"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## B. 파이토치를 이용한 학습\n",
"\n",
"`-` 외우세여"
],
"id": "f3cbb974-78c3-4ce0-ab9e-adc75f490b95"
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"What = torch.tensor([[-5.0],[10.0]],requires_grad = True)\n",
"for epoc in range(30):\n",
" # step1: yhat \n",
" yhat = X@What \n",
" # step2: loss\n",
" loss = torch.sum((y-yhat)**2)\n",
" # step3: 미분\n",
" loss.backward()\n",
" # step4: update\n",
" What.data = What.data - 0.001 * What.grad\n",
" What.grad = None"
],
"id": "c02830d0-1734-4414-ba3b-7ffb03c46216"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 결과 시각화"
],
"id": "6dc6f36c-ee23-4903-9d18-a5c47f787b37"
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGxCAYAAABfrt1aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\nbGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9h\nAAAPYQGoP6dpAABYbklEQVR4nO3dd3hUZd7G8e+ZSQeSEAIkdAQUIQiGLiigoIggRVgbvq5rRV0F\nbFghFmDtqwKiKKgo6ypNREEQREFYEERFUAGDtERKIKGlzZz3j3GGTGYmmQlJJuX+XFeuizlzypNQ\n5uYpv8cwTdNEREREJAgswW6AiIiIVF8KIiIiIhI0CiIiIiISNAoiIiIiEjQKIiIiIhI0CiIiIiIS\nNAoiIiIiEjQKIiIiIhI0CiIiIiISNAoiUq4+/vhjDMPgww8/9Hivffv2GIbB0qVLPd5r0aIFycnJ\nrteGYXD33XeXWrv279/PhAkT2Lx5c6nd84MPPuDll18utftVJP/4xz/o37+/6/WsWbMwDMP1dejQ\nIdd7M2bMYMiQITRr1ozIyEhatmzJqFGjSEtLC/i5pmly0UUXef39/+2337j//vvp2LEjsbGxxMXF\n0aNHDz7++GOv91q5ciX9+vWjXr161KxZk/POO49XXnkFm83mdl5ubi5PPPEEzZs3JywsjKZNm/Lw\nww9z6tSpgNvvy8iRIzEMg4EDB/p9zaZNm+jbty81a9YkNjaWYcOG8fvvv3uc9/LLLzNs2DCaN2+O\nYRj07t3br/s/9thjGIZBUlKSx3u9e/d2+/12fhX8MwGwefNmt/cL/l7ccMMNDBkyxO/vV6ouBREp\nV85/wFauXOl2PCMjg59++okaNWp4vLd3715+//13+vTpU2bt2r9/PykpKQoifvj+++955513ePrp\npz3emzdvHmvXriU2NtZ1bPz48dSsWZOJEyeyZMkSHnzwQT799FM6duzIn3/+GdCzp0yZwo4dO7y+\n98UXX7B48WKuuuoqPvroI95//31atWrFiBEjePLJJ93OXb58OX379iU/P58333yTBQsW0Lt3b+69\n917Gjh3rdu61117Lc889x2233cZnn33GLbfcwosvvsjVV18dUNt9Wbx4MQsWLCA6Otrva3755Rd6\n9+5Nbm4u//3vf3n77bf57bffuPDCCzl48KDbua+//jp//PEHF198MXXr1vXr/ps3b+b555+nfv36\nPs8566yzWLt2rdtX4T/vZ599NmvXrmXKlCke10+YMIHFixezYsUKv9okVZgpUs7atWtnnnPOOW7H\n5s2bZ4aGhpr33HOP2aVLF7f33n33XRMwFy1a5DoGmHfddVeptWnDhg0mYM6cObPU7nnFFVeYTZs2\nLbX7BdOJEydcv/7b3/5mduvWze39mTNnmoCZmprqce2ff/7pccz5837qqaf8bkNqaqpZs2ZNc968\neV5//w8ePGja7XaP66644gozKirKzM7Odh27/vrrzfDwcPP48eNu51566aVmdHS06/XatWtNwHzh\nhRfczps4caIJmF988YXf7ffm6NGjZsOGDc0XX3zRbNq0qXnFFVf4dd2IESPM+Ph4MzMz03Vs165d\nZmhoqPnggw+6nWuz2Vy/btu2rdmrV68i752Xl2d26NDBvOeee8xevXqZbdu29TjH13FfVq5caQLm\nRx995HZ84MCBZr9+/fy+j1RN6hGRctenTx9+/fVXt675r776is6dOzNgwAA2btzIsWPH3N6zWq1c\neOGFHvd67733OPfcc4mKiqJ9+/Z8+umnbu/v2LGDm266iVatWhEVFUXDhg0ZNGgQP/30k8ezAW66\n6SZXN/KECRNK/D327t2bxYsX88cff7h1TTvl5uby9NNP07p1a8LDw6lbty433XSTx/9mmzVrxsCB\nA1myZAnJyclERkbSunVr3n77bbfzTp48yf3330/z5s2JiIggLi6OTp06MWfOHLfzPvnkE7p3705U\nVBS1atWiX79+rF271u2cCRMmYBgGmzZtYvjw4dSuXZsWLVoA8OeffzJ//nxuuOEGv38W9erV8zjW\nsWNHrFYre/bs8fs+t912G/369WPo0KFe34+Pj3f7GTt16dKFkydPkpGR4ToWGhpKWFgYkZGRbufG\nxsYSERHher1mzRoABgwY4Haecwhl7ty5frffm/vuu4/ExETuuecev6/Jz8/n008/5aqrrnLrRWna\ntCl9+vRh/vz5budbLIH9Mz958mQyMjJ45plnArquJG644QaWL1/Ozp07y/xZUnEpiEi5cw6xfPXV\nV65jK1eupFevXvTo0QPDMPjmm2/c3ktOTiYmJsbtPosXL+a1117jySefZO7cucTFxTF06FC3cfL9\n+/dTp04dJk+ezJIlS5gyZQohISF07dqVX3/9FYDk5GRmzpwJOMbFnd3Mt9xyC+CYl5Cfn+/Xl9PU\nqVPp0aMHCQkJbl3XAHa7ncGDBzN58mSuu+46Fi9ezOTJk1m2bBm9e/f2mHvwww8/cN999zFmzBgW\nLlzIeeedx80338zXX3/tOmfs2LFMmzaNe+65hyVLlvDee+8xYsQIDh8+7Drngw8+YPDgwURHRzNn\nzhzeeustjhw5Qu/evVm9erXH79OwYcNo2bIlH330Ea+//jrgGP7Iy8s742GyVatWYbPZaNu2rV/n\nz5gxg/Xr1/Paa68F/KyVK1dSt25dt0B0xx13kJubyz333MP+/fs5evQo7733HvPnz+fBBx90nZeb\nmwtAeHi42z2dr3/88ceA2+O0fPly3n33XWbMmIHVavX7up07d3Lq1CnOO+88j/fOO+88duzYQXZ2\ndonatHXrVp5++mmmTZtGzZo1i21HXFwcISEhtGjRgkcffTTgeTO9e/fGNE0+++yzErVXqohgd8lI\n9ZORkWFaLBbztttuM03TNA8dOmQahmEuWbLENE3T7NKli3n//febpmmau3fvNgGP7mbArF+/vpmV\nleU6lp6eblosFnPSpEk+n52fn2/m5uaarVq1MseMGeM6XtTQjHPYwZ+vgnwNzcyZM8cEzLlz57od\nd7Zh6tSprmNNmzY1IyIizD/++MN17NSpU2ZcXJx5++23u44lJSWZQ4YM8fl922w2s0GDBma7du3c\nuuqPHTtm1qtXz7zgggtcx8aPH28C5hNPPOFxn1GjRpmRkZEeQyBFDc0UlpWVZZ577rlm48aNzWPH\njhV7/t69e82YmBhz+vTprmP4OTT35ptvmoD573//2+O9NWvWmA0aNHD93lmtVvPZZ591O2fBggUm\nYL733ntux9966y0TMM8+++xi2+DNsWPHzGbNmpkPP/yw65i/QzNr1qwxAXPOnDke7zmHjPbv3+/1\n2qKGZmw2m9m1a1fz2muvdR3zNQTz6KOPmlOnTjVXrFhhLl682Lz77rvNkJAQ86KLLnL78+Xka2jG\nNE2zYcOG5tVXX+3r25VqIKS8Ao+IU+3atWnfvr2rR2TVqlVYrVZ69OgBQK9evVwT2JwTV739D7xP\nnz7UqlXL9bp+/frUq1ePP/74w3UsPz+fZ599ltmzZ7Njxw7y8vJc723bts2v9g4aNIgNGzYE9k0W\n4dNPPyU2NpZBgwa59aJ06NCBhIQEvvrqK0aNGuV2vEmTJq7XERERnH322W7fZ5cuXXj//fcZN24c\n/fv3p2vXrm7DDr/++iv79+9n9OjRbl31NWvW5KqrrmL69OmcPHmSqKgo13tXXXWVR9v3799P3bp1\nvQ6B+CM7O5thw4bxxx9/sGLFimL/1w2O3ov27dtz6623BvSszz//nLvuuovhw4fzz3/+0+29jRs3\nMnToULp27cr06dOpUaMGK1as4LHHHiM7O5vHH38cgMsvv5yWLVvy0EMPUb9+fTp37sy6det45JFH\nsFqtAQ97OI0bN47Q0FCeeOKJEl0PFPl7UJLfnxdffJHt27fzySefFHtu4YnKAwYMoFmzZtx///0s\nXLjQ5/CZN/Xq1WPfvn0Bt1eqDgURCYo+ffrw4osvsn//flauXEnHjh1dH0q9evXihRdeIDMzk5Ur\nVxISEkLPnj097lGnTh2PY+Hh4W7dw2PHjmXKlCk89NBD9OrVi9q1a2OxWLjlllv87kaOi4vzGBY6\nE3/++SdHjx4lLCzM6/sFl76Cf9/nK6+8QqNGjfjwww/517/+RUREBJdddhnPPfccrVq1cg3RJCYm\netyrQYMG2O12jhw54hZEvJ176tQptzkUgcjJyWHo0KGsXr2aTz/9lK5duxZ7zccff8ySJUtYvXo1\nmZmZbu/l5uZy9OhRatSoQWhoqNt7S5cuZdiwYfTr14/333/f44P5rrvuon79+syfP981LNKnTx8s\nFgsTJkzg+uuv56yzziIsLIzPP/+cG264gUsvvRSAGjVqMHHiRJ566ikaNmwY8M9h/fr1TJ06lXnz\n5pGdne0aRrHb7eTn53P06FEiIyM9hoOcnH8eCg67OWVkZGAYhtuqJX/s3r2bJ554gsmTJxMWFsbR\no0cBR5C32+0cPXqU8PBwjzk1BY0cOZL777+fdevWBRREIiIiSnUptFQ+miMiQVFwnshXX31Fr169\nXO85Q8fXX3/tmkjqz/+cvZk9ezb/93//x8SJE7nsssvo0qULnTp18viwL8o777xDaGioX1/+iI+P\np06dOmzYsMHr19SpUwP+PmvUqEFKSgq//PIL6enpTJs2jXXr1jFo0CDg9IeXt9od+/fvx2KxULt2\nbbfj3v5XHR8f7zbp0185OTkMGTKElStXsmDBAi655BK/rtuyZQv5+fl069aN2rVru74A3nzzTWrX\nrs3ixYvdrlm6dClDhgyhV69ezJ0712vg27x5s2vCbEGdO3fGbre79Za1bNmStWvXsnfvXn788UcO\nHDjAiBEjOHToEBdddFGgPwq2bt2KaZoMHTrU7Xvas2cPS5cupXbt2kybNs3n9S1atCAyMtJtwrXT\nTz/9RMuWLQMOi7///junTp3i3nvvdWvTmjVr2LZtG7Vr1+bhhx/2616B9hJlZGQQHx8f0DVStahH\nRILioosuwmq18vHHH/Pzzz/z7LPPut6LiYmhQ4cOvPPOO+zatYvrrruuxM8xDMPjf5aLFy9m3759\ntGzZ0nXMeY63/5mVdGimcK+F08CBA/nPf/6DzWbzq1cgUPXr1+fvf/87P/zwAy+//DInT57knHPO\noWHDhnzwwQfcf//9rpBx4sQJ5s6d61pJU5zWrVszZ84cMjMz/e4lcvaErFixgnnz5nHZZZf5/b38\n/e9/91qAq0+fPgwZMoR7773XreDWF198wZAhQ+jZsycLFizw2avQoEEDvvvuO2w2m1sYcU4obtSo\nkcc1DRs2dPWAPPbYY9SoUYObb77Z7+/FqX///h61cgCuueYamjdvzqRJk9z+bBYWEhLCoEGDmDdv\nHs8++6xreHL37t2sXLmSMWPGBNymDh06eG3T6NGjyczMZObMmV5/JgW98847AHTr1s3v5+bn57Nn\nzx6PVUlSvSiISFBER0eTnJzMggULsFgsrvkhTr169XIVRzqTFRoDBw5k1qxZtG7dmvPOO4+NGzfy\n3HPPefyj6vxf5vvvv8+5555LzZo1adCgAQ0aNKBOnTpeh0eK065dO+bNm8e0adPo2LEjFouFTp06\ncc011/D+++8zYMAA7r33Xrp06UJoaCh79+5l5cqVDB48OKCubYCuXbsycOBAzjvvPGrXrs22bdt4\n77333ALGs88+y/XXX8/AgQO5/fbbycnJ4bnnnuPo0aNMnjzZr+c4Vzn873//cw1VFGf48OF8/vnn\nPProo9SpU4d169a53ouOjqZNmzau184PYGfRsmbNmtGsWTOv923YsKFbSFm9ejVDhgwhISGBRx55\nxKM4XZs2bVzLXceMGcM999zDoEGDuP3224mKiuLLL7/khRdeoG/fvrRv39513bPPPktCQgJNmjTh\nzz//5L///S8LFizgvffe8xiacbZ1165dPn8eCQkJJCQkeByPiIigTp06HsGr8M8EICUlhc6dOzNw\n4EDGjRtHdnY2TzzxBPHx8dx3331u13/33Xeu9mRlZWGapqvCaefOnWnatCmxsbFeA19sbCz5+flu\n733zzTc888wzDB06lLPOOovs7Gw+//xz3njjDS6++GJXL5w/fvzxR06ePFmmxQqlEgjyZFmpxh58\n8EETMDt16uTxnnO1QlhYmFsxLSd8rJpo2rSpeeONN7peHzlyxLz55pvNevXqmVFRUWbPnj3Nb775\nxuzVq5fH6oE5c+aYrVu3NkNDQ03AHD9+/Bl9fxkZGebw4cPN2NhY0zAMt1U1eXl55vPPP2+2b9/e\njIiIMGvWrGm2bt3avP32283t27e7fT/eVlIUbv+4cePMTp06mbVr1zbDw8PNs846yxwzZox56NAh\nt+sWLFhgdu3a1YyIiDBr1KhhXnLJJeaaNWvcznGumjl48KDHc202m9msWTPzzjvvdDte1KoZilhl\nVPj3oGnTpn4VgfP2++9st6+vlStXup0/d+5cs2fPnmZ8fLxZo0YNs23btuZTTz3lUeQsJSXFbNGi\nhRkeHm7Gxsaa/fv3N7/++muv7YqPj/co9uYvX7/Xvn4m3333nXnJJZeYUVFRZnR0tDlkyBBzx44d\nHufdeOONPn8mxRXw87ZqZvv27eaAAQPMhg0bmuHh4WZERITZrl0785lnnnErGleQr1Uzjz/+uBkf\nH+/zOqkeDNM0zXJJPCJSJbzwwgs888wz7Nu3zzV5cdasWdx0003s2LGDpk2bEhJS/Tpbt27dStu2\nbfn000+54oorgt2cCiM/P59Vq1bRt29fPvroI4YPHw6AzWajZcuWXHfddeVSPE0qLk1WFZGA3HXX\nXcTExHjdP6Rly5aEhoYGNBm4qli5ciXdu3dXCClg8+bNhIaG0rdvX4/3Zs+ezfHjx3nggQeC0DKp\nSNQjIiIBW716Nd9//72rPsfhw4dJTU11vd+hQ4dq2Ssi7k6dOsXPP//set2iRQvXqqeZM2fSsGFD\nv+caSdWlICIiIiJBo6EZERERCRoFEREREQkaBREREREJmgo9m8xut7N//35q1apV4k22REREpHyZ\npsmxY8do0KBBsWX/K3QQ2b9/P40bNw52M0RERKQE9uzZU+z2ABU6iDj3UNizZ4+rNLOIiIhUbFlZ\nWTRu3Nj1OV6UCh1EnMMx0dHRCiIiIiKVjD/TKjRZVURERIJGQURERESCRkFEREREgkZBRERERIJG\nQURERESCRkFEREREgkZBRERERIJGQURERESCpkIXNBMREZGyYbObrE/N4MCxbOrViqBL8zislvLf\n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\neQoilcQvv/yC3W5n+vTp/Pzzz7z00ku8/vrrPPLII8FuWpWRm5vLiBEjGDVqVLCbUul9+OGHjB49\nmkcffZTvv/+eCy+8kMsvv5zdu3cHu2mV3okTJ2jfvj2vvfZasJtS5axatYq77rqLdevWsWzZMvLz\n87n00ks5ceJEsJtWpamOSCX23HPPMW3aNH7//fdgN6VKmTVrFqNHj+bo0aPBbkql1bVrV5KTk5k2\nbZrr2LnnnsuQIUOYNGlSEFtWtRiGwfz58xkyZEiwm1IlHTx4kHr16rFq1SouuuiiYDenylKPSCWW\nmZlJXFxcsJsh4iY3N5eNGzdy6aWXuh2/9NJL+fbbb4PUKpHAZWZmAujf2TKmIFJJ7dy5k1dffZU7\n7rgj2E0RcXPo0CFsNhv169d3O16/fn3S09OD1CqRwJimydixY+nZsydJSUnBbk6VpiASZBMmTMAw\njCK/vvvuO7dr9u/fT//+/RkxYgS33HJLkFpeOZTk5yulwzAMt9emaXocE6mo7r77bn788UfmzJkT\n7KZUeSHBbkB1d/fdd3PNNdcUeU6zZs1cv96/fz99+vShe/fuvPHGG2Xcusov0J+vnLn4+HisVqtH\n78eBAwc8eklEKqJ//vOffPLJJ3z99dc0atQo2M2p8hREgiw+Pp74+Hi/zt23bx99+vShY8eOzJw5\nE4tFHVrFCeTnK6UjLCyMjh07smzZMoYOHeo6vmzZMgYPHhzElokUzTRN/vnPfzJ//ny++uormjdv\nHuwmVQsKIpXE/v376d27N02aNOH555/n4MGDrvcSEhKC2LKqY/fu3WRkZLB7925sNhubN28GoGXL\nltSsWTO4jatkxo4dyw033ECnTp1cvXe7d+/WnKZScPz4cXbs2OF6nZqayubNm4mLi6NJkyZBbFnl\nd9ddd/HBBx+wcOFCatWq5erVi4mJITIyMsitq8JMqRRmzpxpAl6/pHTceOONXn++K1euDHbTKqUp\nU6aYTZs2NcPCwszk5GRz1apVwW5SlbBy5Uqvf05vvPHGYDet0vP1b+zMmTOD3bQqTXVEREREJGg0\nyUBERESCRkFEREREgkZBRERERIJGQURERESCRkFEREREgkZBRERERIJGQURERESCRkFEREREgkZB\nRERERIJGQURERESCRkFEREREgub/AQZhxbD5HnJGAAAAAElFTkSuQmCC\n"
}
}
],
"source": [
"plt.plot(x,y,'o')\n",
"plt.plot(x,X@What.data,'--')\n",
"plt.title(f'What={What.data.reshape(-1)}');"
],
"id": "e80990ad-2915-45f6-8aa4-fc392ba226ac"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## C. Step2의 수정\n",
"\n",
"`-` 수정된 코드"
],
"id": "e77f9109-9146-437b-aff6-bb47f1305f02"
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"What = torch.tensor([[-5.0],[10.0]],requires_grad = True)\n",
"loss_fn = torch.nn.MSELoss()\n",
"for epoc in range(30):\n",
" # step1: yhat \n",
" yhat = X@What \n",
" # step2: loss\n",
" #loss = torch.sum((y-yhat)**2)/100\n",
" #loss = torch.mean((y-yhat)**2) \n",
" loss = loss_fn(yhat,y) # 여기서는 큰 상관없지만 습관적으로 yhat을 먼저넣는 연습을 하자!!\n",
" # step3: 미분\n",
" loss.backward()\n",
" # step4: update\n",
" What.data = What.data - 0.1 * What.grad\n",
" What.grad = None"
],
"id": "472d91ae-faa4-41d1-b79e-0a17640eef2a"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 결과확인"
],
"id": "b10d0801-6653-411b-8155-1db3ba351e36"
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGxCAYAAABfrt1aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\nbGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9h\nAAAPYQGoP6dpAABYbklEQVR4nO3dd3hUZd7G8e+ZSQeSEAIkdAQUIQiGLiigoIggRVgbvq5rRV0F\nbFghFmDtqwKiKKgo6ypNREEQREFYEERFUAGDtERKIKGlzZz3j3GGTGYmmQlJJuX+XFeuizlzypNQ\n5uYpv8cwTdNEREREJAgswW6AiIiIVF8KIiIiIhI0CiIiIiISNAoiIiIiEjQKIiIiIhI0CiIiIiIS\nNAoiIiIiEjQKIiIiIhI0CiIiIiISNAoiUq4+/vhjDMPgww8/9Hivffv2GIbB0qVLPd5r0aIFycnJ\nrteGYXD33XeXWrv279/PhAkT2Lx5c6nd84MPPuDll18utftVJP/4xz/o37+/6/WsWbMwDMP1dejQ\nIdd7M2bMYMiQITRr1ozIyEhatmzJqFGjSEtLC/i5pmly0UUXef39/+2337j//vvp2LEjsbGxxMXF\n0aNHDz7++GOv91q5ciX9+vWjXr161KxZk/POO49XXnkFm83mdl5ubi5PPPEEzZs3JywsjKZNm/Lw\nww9z6tSpgNvvy8iRIzEMg4EDB/p9zaZNm+jbty81a9YkNjaWYcOG8fvvv3uc9/LLLzNs2DCaN2+O\nYRj07t3br/s/9thjGIZBUlKSx3u9e/d2+/12fhX8MwGwefNmt/cL/l7ccMMNDBkyxO/vV6ouBREp\nV85/wFauXOl2PCMjg59++okaNWp4vLd3715+//13+vTpU2bt2r9/PykpKQoifvj+++955513ePrp\npz3emzdvHmvXriU2NtZ1bPz48dSsWZOJEyeyZMkSHnzwQT799FM6duzIn3/+GdCzp0yZwo4dO7y+\n98UXX7B48WKuuuoqPvroI95//31atWrFiBEjePLJJ93OXb58OX379iU/P58333yTBQsW0Lt3b+69\n917Gjh3rdu61117Lc889x2233cZnn33GLbfcwosvvsjVV18dUNt9Wbx4MQsWLCA6Otrva3755Rd6\n9+5Nbm4u//3vf3n77bf57bffuPDCCzl48KDbua+//jp//PEHF198MXXr1vXr/ps3b+b555+nfv36\nPs8566yzWLt2rdtX4T/vZ599NmvXrmXKlCke10+YMIHFixezYsUKv9okVZgpUs7atWtnnnPOOW7H\n5s2bZ4aGhpr33HOP2aVLF7f33n33XRMwFy1a5DoGmHfddVeptWnDhg0mYM6cObPU7nnFFVeYTZs2\nLbX7BdOJEydcv/7b3/5mduvWze39mTNnmoCZmprqce2ff/7pccz5837qqaf8bkNqaqpZs2ZNc968\neV5//w8ePGja7XaP66644gozKirKzM7Odh27/vrrzfDwcPP48eNu51566aVmdHS06/XatWtNwHzh\nhRfczps4caIJmF988YXf7ffm6NGjZsOGDc0XX3zRbNq0qXnFFVf4dd2IESPM+Ph4MzMz03Vs165d\nZmhoqPnggw+6nWuz2Vy/btu2rdmrV68i752Xl2d26NDBvOeee8xevXqZbdu29TjH13FfVq5caQLm\nRx995HZ84MCBZr9+/fy+j1RN6hGRctenTx9+/fVXt675r776is6dOzNgwAA2btzIsWPH3N6zWq1c\neOGFHvd67733OPfcc4mKiqJ9+/Z8+umnbu/v2LGDm266iVatWhEVFUXDhg0ZNGgQP/30k8ezAW66\n6SZXN/KECRNK/D327t2bxYsX88cff7h1TTvl5uby9NNP07p1a8LDw6lbty433XSTx/9mmzVrxsCB\nA1myZAnJyclERkbSunVr3n77bbfzTp48yf3330/z5s2JiIggLi6OTp06MWfOHLfzPvnkE7p3705U\nVBS1atWiX79+rF271u2cCRMmYBgGmzZtYvjw4dSuXZsWLVoA8OeffzJ//nxuuOEGv38W9erV8zjW\nsWNHrFYre/bs8fs+t912G/369WPo0KFe34+Pj3f7GTt16dKFkydPkpGR4ToWGhpKWFgYkZGRbufG\nxsYSERHher1mzRoABgwY4Haecwhl7ty5frffm/vuu4/ExETuuecev6/Jz8/n008/5aqrrnLrRWna\ntCl9+vRh/vz5budbLIH9Mz958mQyMjJ45plnArquJG644QaWL1/Ozp07y/xZUnEpiEi5cw6xfPXV\nV65jK1eupFevXvTo0QPDMPjmm2/c3ktOTiYmJsbtPosXL+a1117jySefZO7cucTFxTF06FC3cfL9\n+/dTp04dJk+ezJIlS5gyZQohISF07dqVX3/9FYDk5GRmzpwJOMbFnd3Mt9xyC+CYl5Cfn+/Xl9PU\nqVPp0aMHCQkJbl3XAHa7ncGDBzN58mSuu+46Fi9ezOTJk1m2bBm9e/f2mHvwww8/cN999zFmzBgW\nLlzIeeedx80338zXX3/tOmfs2LFMmzaNe+65hyVLlvDee+8xYsQIDh8+7Drngw8+YPDgwURHRzNn\nzhzeeustjhw5Qu/evVm9erXH79OwYcNo2bIlH330Ea+//jrgGP7Iy8s742GyVatWYbPZaNu2rV/n\nz5gxg/Xr1/Paa68F/KyVK1dSt25dt0B0xx13kJubyz333MP+/fs5evQo7733HvPnz+fBBx90nZeb\nmwtAeHi42z2dr3/88ceA2+O0fPly3n33XWbMmIHVavX7up07d3Lq1CnOO+88j/fOO+88duzYQXZ2\ndonatHXrVp5++mmmTZtGzZo1i21HXFwcISEhtGjRgkcffTTgeTO9e/fGNE0+++yzErVXqohgd8lI\n9ZORkWFaLBbztttuM03TNA8dOmQahmEuWbLENE3T7NKli3n//febpmmau3fvNgGP7mbArF+/vpmV\nleU6lp6eblosFnPSpEk+n52fn2/m5uaarVq1MseMGeM6XtTQjHPYwZ+vgnwNzcyZM8cEzLlz57od\nd7Zh6tSprmNNmzY1IyIizD/++MN17NSpU2ZcXJx5++23u44lJSWZQ4YM8fl922w2s0GDBma7du3c\nuuqPHTtm1qtXz7zgggtcx8aPH28C5hNPPOFxn1GjRpmRkZEeQyBFDc0UlpWVZZ577rlm48aNzWPH\njhV7/t69e82YmBhz+vTprmP4OTT35ptvmoD573//2+O9NWvWmA0aNHD93lmtVvPZZ591O2fBggUm\nYL733ntux9966y0TMM8+++xi2+DNsWPHzGbNmpkPP/yw65i/QzNr1qwxAXPOnDke7zmHjPbv3+/1\n2qKGZmw2m9m1a1fz2muvdR3zNQTz6KOPmlOnTjVXrFhhLl682Lz77rvNkJAQ86KLLnL78+Xka2jG\nNE2zYcOG5tVXX+3r25VqIKS8Ao+IU+3atWnfvr2rR2TVqlVYrVZ69OgBQK9evVwT2JwTV739D7xP\nnz7UqlXL9bp+/frUq1ePP/74w3UsPz+fZ599ltmzZ7Njxw7y8vJc723bts2v9g4aNIgNGzYE9k0W\n4dNPPyU2NpZBgwa59aJ06NCBhIQEvvrqK0aNGuV2vEmTJq7XERERnH322W7fZ5cuXXj//fcZN24c\n/fv3p2vXrm7DDr/++iv79+9n9OjRbl31NWvW5KqrrmL69OmcPHmSqKgo13tXXXWVR9v3799P3bp1\nvQ6B+CM7O5thw4bxxx9/sGLFimL/1w2O3ov27dtz6623BvSszz//nLvuuovhw4fzz3/+0+29jRs3\nMnToULp27cr06dOpUaMGK1as4LHHHiM7O5vHH38cgMsvv5yWLVvy0EMPUb9+fTp37sy6det45JFH\nsFqtAQ97OI0bN47Q0FCeeOKJEl0PFPl7UJLfnxdffJHt27fzySefFHtu4YnKAwYMoFmzZtx///0s\nXLjQ5/CZN/Xq1WPfvn0Bt1eqDgURCYo+ffrw4osvsn//flauXEnHjh1dH0q9evXihRdeIDMzk5Ur\nVxISEkLPnj097lGnTh2PY+Hh4W7dw2PHjmXKlCk89NBD9OrVi9q1a2OxWLjlllv87kaOi4vzGBY6\nE3/++SdHjx4lLCzM6/sFl76Cf9/nK6+8QqNGjfjwww/517/+RUREBJdddhnPPfccrVq1cg3RJCYm\netyrQYMG2O12jhw54hZEvJ176tQptzkUgcjJyWHo0KGsXr2aTz/9lK5duxZ7zccff8ySJUtYvXo1\nmZmZbu/l5uZy9OhRatSoQWhoqNt7S5cuZdiwYfTr14/333/f44P5rrvuon79+syfP981LNKnTx8s\nFgsTJkzg+uuv56yzziIsLIzPP/+cG264gUsvvRSAGjVqMHHiRJ566ikaNmwY8M9h/fr1TJ06lXnz\n5pGdne0aRrHb7eTn53P06FEiIyM9hoOcnH8eCg67OWVkZGAYhtuqJX/s3r2bJ554gsmTJxMWFsbR\no0cBR5C32+0cPXqU8PBwjzk1BY0cOZL777+fdevWBRREIiIiSnUptFQ+miMiQVFwnshXX31Fr169\nXO85Q8fXX3/tmkjqz/+cvZk9ezb/93//x8SJE7nsssvo0qULnTp18viwL8o777xDaGioX1/+iI+P\np06dOmzYsMHr19SpUwP+PmvUqEFKSgq//PIL6enpTJs2jXXr1jFo0CDg9IeXt9od+/fvx2KxULt2\nbbfj3v5XHR8f7zbp0185OTkMGTKElStXsmDBAi655BK/rtuyZQv5+fl069aN2rVru74A3nzzTWrX\nrs3ixYvdrlm6dClDhgyhV69ezJ0712vg27x5s2vCbEGdO3fGbre79Za1bNmStWvXsnfvXn788UcO\nHDjAiBEjOHToEBdddFGgPwq2bt2KaZoMHTrU7Xvas2cPS5cupXbt2kybNs3n9S1atCAyMtJtwrXT\nTz/9RMuWLQMOi7///junTp3i3nvvdWvTmjVr2LZtG7Vr1+bhhx/2616B9hJlZGQQHx8f0DVStahH\nRILioosuwmq18vHHH/Pzzz/z7LPPut6LiYmhQ4cOvPPOO+zatYvrrruuxM8xDMPjf5aLFy9m3759\ntGzZ0nXMeY63/5mVdGimcK+F08CBA/nPf/6DzWbzq1cgUPXr1+fvf/87P/zwAy+//DInT57knHPO\noWHDhnzwwQfcf//9rpBx4sQJ5s6d61pJU5zWrVszZ84cMjMz/e4lcvaErFixgnnz5nHZZZf5/b38\n/e9/91qAq0+fPgwZMoR7773XreDWF198wZAhQ+jZsycLFizw2avQoEEDvvvuO2w2m1sYcU4obtSo\nkcc1DRs2dPWAPPbYY9SoUYObb77Z7+/FqX///h61cgCuueYamjdvzqRJk9z+bBYWEhLCoEGDmDdv\nHs8++6xreHL37t2sXLmSMWPGBNymDh06eG3T6NGjyczMZObMmV5/JgW98847AHTr1s3v5+bn57Nn\nzx6PVUlSvSiISFBER0eTnJzMggULsFgsrvkhTr169XIVRzqTFRoDBw5k1qxZtG7dmvPOO4+NGzfy\n3HPPefyj6vxf5vvvv8+5555LzZo1adCgAQ0aNKBOnTpeh0eK065dO+bNm8e0adPo2LEjFouFTp06\ncc011/D+++8zYMAA7r33Xrp06UJoaCh79+5l5cqVDB48OKCubYCuXbsycOBAzjvvPGrXrs22bdt4\n77333ALGs88+y/XXX8/AgQO5/fbbycnJ4bnnnuPo0aNMnjzZr+c4Vzn873//cw1VFGf48OF8/vnn\nPProo9SpU4d169a53ouOjqZNmzau184PYGfRsmbNmtGsWTOv923YsKFbSFm9ejVDhgwhISGBRx55\nxKM4XZs2bVzLXceMGcM999zDoEGDuP3224mKiuLLL7/khRdeoG/fvrRv39513bPPPktCQgJNmjTh\nzz//5L///S8LFizgvffe8xiacbZ1165dPn8eCQkJJCQkeByPiIigTp06HsGr8M8EICUlhc6dOzNw\n4EDGjRtHdnY2TzzxBPHx8dx3331u13/33Xeu9mRlZWGapqvCaefOnWnatCmxsbFeA19sbCz5+flu\n733zzTc888wzDB06lLPOOovs7Gw+//xz3njjDS6++GJXL5w/fvzxR06ePFmmxQqlEgjyZFmpxh58\n8EETMDt16uTxnnO1QlhYmFsxLSd8rJpo2rSpeeONN7peHzlyxLz55pvNevXqmVFRUWbPnj3Nb775\nxuzVq5fH6oE5c+aYrVu3NkNDQ03AHD9+/Bl9fxkZGebw4cPN2NhY0zAMt1U1eXl55vPPP2+2b9/e\njIiIMGvWrGm2bt3avP32283t27e7fT/eVlIUbv+4cePMTp06mbVr1zbDw8PNs846yxwzZox56NAh\nt+sWLFhgdu3a1YyIiDBr1KhhXnLJJeaaNWvcznGumjl48KDHc202m9msWTPzzjvvdDte1KoZilhl\nVPj3oGnTpn4VgfP2++9st6+vlStXup0/d+5cs2fPnmZ8fLxZo0YNs23btuZTTz3lUeQsJSXFbNGi\nhRkeHm7Gxsaa/fv3N7/++muv7YqPj/co9uYvX7/Xvn4m3333nXnJJZeYUVFRZnR0tDlkyBBzx44d\nHufdeOONPn8mxRXw87ZqZvv27eaAAQPMhg0bmuHh4WZERITZrl0785lnnnErGleQr1Uzjz/+uBkf\nH+/zOqkeDNM0zXJJPCJSJbzwwgs888wz7Nu3zzV5cdasWdx0003s2LGDpk2bEhJS/Tpbt27dStu2\nbfn000+54oorgt2cCiM/P59Vq1bRt29fPvroI4YPHw6AzWajZcuWXHfddeVSPE0qLk1WFZGA3HXX\nXcTExHjdP6Rly5aEhoYGNBm4qli5ciXdu3dXCClg8+bNhIaG0rdvX4/3Zs+ezfHjx3nggQeC0DKp\nSNQjIiIBW716Nd9//72rPsfhw4dJTU11vd+hQ4dq2Ssi7k6dOsXPP//set2iRQvXqqeZM2fSsGFD\nv+caSdWlICIiIiJBo6EZERERCRoFEREREQkaBREREREJmgo9m8xut7N//35q1apV4k22REREpHyZ\npsmxY8do0KBBsWX/K3QQ2b9/P40bNw52M0RERKQE9uzZU+z2ABU6iDj3UNizZ4+rNLOIiIhUbFlZ\nWTRu3Nj1OV6UCh1EnMMx0dHRCiIiIiKVjD/TKjRZVURERIJGQURERESCRkFEREREgkZBRERERIJG\nQURERESCRkFEREREgkZBRERERIJGQURERESCpkIXNBMREZGyYbObrE/N4MCxbOrViqBL8zislvLf\n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\neQoilcQvv/yC3W5n+vTp/Pzzz7z00ku8/vrrPPLII8FuWpWRm5vLiBEjGDVqVLCbUul9+OGHjB49\nmkcffZTvv/+eCy+8kMsvv5zdu3cHu2mV3okTJ2jfvj2vvfZasJtS5axatYq77rqLdevWsWzZMvLz\n87n00ks5ceJEsJtWpamOSCX23HPPMW3aNH7//fdgN6VKmTVrFqNHj+bo0aPBbkql1bVrV5KTk5k2\nbZrr2LnnnsuQIUOYNGlSEFtWtRiGwfz58xkyZEiwm1IlHTx4kHr16rFq1SouuuiiYDenylKPSCWW\nmZlJXFxcsJsh4iY3N5eNGzdy6aWXuh2/9NJL+fbbb4PUKpHAZWZmAujf2TKmIFJJ7dy5k1dffZU7\n7rgj2E0RcXPo0CFsNhv169d3O16/fn3S09OD1CqRwJimydixY+nZsydJSUnBbk6VpiASZBMmTMAw\njCK/vvvuO7dr9u/fT//+/RkxYgS33HJLkFpeOZTk5yulwzAMt9emaXocE6mo7r77bn788UfmzJkT\n7KZUeSHBbkB1d/fdd3PNNdcUeU6zZs1cv96/fz99+vShe/fuvPHGG2Xcusov0J+vnLn4+HisVqtH\n78eBAwc8eklEKqJ//vOffPLJJ3z99dc0atQo2M2p8hREgiw+Pp74+Hi/zt23bx99+vShY8eOzJw5\nE4tFHVrFCeTnK6UjLCyMjh07smzZMoYOHeo6vmzZMgYPHhzElokUzTRN/vnPfzJ//ny++uormjdv\nHuwmVQsKIpXE/v376d27N02aNOH555/n4MGDrvcSEhKC2LKqY/fu3WRkZLB7925sNhubN28GoGXL\nltSsWTO4jatkxo4dyw033ECnTp1cvXe7d+/WnKZScPz4cXbs2OF6nZqayubNm4mLi6NJkyZBbFnl\nd9ddd/HBBx+wcOFCatWq5erVi4mJITIyMsitq8JMqRRmzpxpAl6/pHTceOONXn++K1euDHbTKqUp\nU6aYTZs2NcPCwszk5GRz1apVwW5SlbBy5Uqvf05vvPHGYDet0vP1b+zMmTOD3bQqTXVEREREJGg0\nyUBERESCRkFEREREgkZBRERERIJGQURERESCRkFEREREgkZBRERERIJGQURERESCRkFEREREgkZB\nRERERIJGQURERESCRkFEREREgub/AQZhxbD5HnJGAAAAAElFTkSuQmCC\n"
}
}
],
"source": [
"plt.plot(x,y,'o')\n",
"plt.plot(x,X@What.data,'--')\n",
"plt.title(f'What={What.data.reshape(-1)}');"
],
"id": "00f21ab6-951e-4971-920e-606a7a754841"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## D. Step1의 수정 – `net`의 이용\n",
"\n",
"`-` net 오브젝트란?\n",
"\n",
"원래 yhat을 이런식으로 구했는데 ~"
],
"id": "ff6d3ecd-84dc-4c30-ac19-c5d1cccf7ad8"
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"What = torch.tensor([[-5.0],[10.0]],requires_grad = True)\n",
"(X@What.data)[:5]"
],
"id": "6245848b-2525-41da-9df2-705f6aa3695c"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"이런식으로도 구할수 있음!"
],
"id": "207c1d10-26af-496c-a0e8-21388b02df67"
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"net = torch.nn.Linear(\n",
" in_features=2,\n",
" out_features=1,\n",
" bias=False\n",
")"
],
"id": "b45173f1-7b60-45f6-917d-68739eea2e5f"
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"net.weight.data = torch.tensor([[-5.0, 10.0]])\n",
"net.weight"
],
"id": "2a75f423-b056-46f9-b1b9-88f0e6142d49"
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"net(X)[:5]"
],
"id": "c88ea242-e70a-493e-a975-bf3c28aa688b"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 학습"
],
"id": "29116db3-1417-4cf1-a8ee-0a7fc68fec3b"
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# step1을 위한 사전준비\n",
"net = torch.nn.Linear(\n",
" in_features=2,\n",
" out_features=1,\n",
" bias=False\n",
")\n",
"net.weight.data = torch.tensor([[-5.0, 10.0]])\n",
"# step2를 위한 사전준비\n",
"loss_fn = torch.nn.MSELoss()\n",
"for epoc in range(30):\n",
" # step1: yhat \n",
" yhat = net(X)\n",
" # step2: loss\n",
" loss = loss_fn(yhat,y)\n",
" # step3: 미분\n",
" loss.backward()\n",
" # step4: update\n",
" net.weight.data = net.weight.data - 0.1 * net.weight.grad\n",
" net.weight.grad = None"
],
"id": "c7bb0533-11f1-4658-8697-05cb72c27540"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 결과확인"
],
"id": "013c5efb-72db-4cb9-a730-d64adc5cf623"
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGxCAYAAABfrt1aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\nbGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9h\nAAAPYQGoP6dpAABamUlEQVR4nO3dd3iT5f7H8XeSTkYLpdCWjaAilCEIiChDAUFBhnqOHvHncaDi\nBCdOqAvcG0RRUFGOR5HlAFkOEA4oojJUwCqrZVVaKHQl9++PmNA0SZuUtun4vK6r10WePE+eu6El\nH+7xvS3GGIOIiIhICFhD3QARERGpuRREREREJGQURERERCRkFEREREQkZBREREREJGQURERERCRk\nFEREREQkZBREREREJGQURERERCRkFESkQr3//vu88MILoW6GW8uWLfn3v/9dqmv79u1LcnJyieft\n2bOHiRMnsmHDhlLdx5fK9j6WpWuuuYZBgwa5H8+cOROLxeL+OnDggPu56dOnM3z4cFq2bEl0dDRt\n2rRhzJgxpKWlBX1fYwy9e/fGYrFwyy23eDz322+/cdddd9G1a1fq1atHXFwcvXr14qOPPvL5WitW\nrGDAgAE0atSIOnXq0LFjR1566SXsdrvHeXl5eTz88MO0atWKiIgIWrRowX333cexY8eCbr8/o0aN\nwmKxMGTIkICvWb9+Pf3796dOnTrUq1ePkSNH8vvvv3ud98ILLzBy5EhatWqFxWKhb9++Ab3+gw8+\niMVi8fn707dvX4+/b9dX4Z8JgA0bNng8X/jv4sorr2T48OEBf78SYkakAl144YWmRYsWoW6G2/r1\n6822bdtKdW2fPn1M+/btSzxv3bp1BjAzZswo1X18qWzvY1lZv369sVqtZt26de5jM2bMMID5+OOP\nzerVq01+fr77ucaNG5srrrjCvPfee+bLL78006ZNM02bNjVJSUkmPT09qHu//PLLJikpyQDm5ptv\n9nqubdu25vHHHzdffPGF+eyzz8xVV11lAJOSkuJx7pIlS4zVajV9+/Y18+bNM0uWLDG33nqrAcxt\nt93mce7IkSNNVFSUeeKJJ8ySJUvMI488YiIiIszQoUODars/n3zyialdu7aJiYkxF154YUDXbNmy\nxdStW9ecc8455tNPPzVz5swx7du3N40bNzb79u3zOPfUU081Xbp0Mddcc41p2LCh6dOnT4mv/8MP\n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\n1BQ2atQo7rrrLtasWRNUEImKiirTpdBSPhRE5IS5JvJ98803Pv+B8/ePXiDOO+88HnroIb7++muW\nLVvGhAkT3Me/+OILd2g477zzPNoTHR3tNemy8PP+NGjQwD2npbD09PRSfw/Fefvtt7n66qsDOtcU\nM7fFJT4+ngYNGrBo0SKfz9etWzeo9oHzwzElJYWUlBT27t3L559/zvjx4xk6dCi//PKL+8PLV+2O\nPXv2YLVaqV+/vsdxX/+rjo+PZ/369UG3Lzc3l+HDh7NixQrmz5/v8bNQnI0bN1JQUMCZZ57p9dwb\nb7zBG2+8wdy5cz3qUSxevJjhw4fTp08f5syZ4zPwbdiwgcsvv9xrbka3bt1wOBxs2bLFHc7btGnD\n6tWr2b17NxkZGbRu3ZrMzExuv/12evfuHcS74LR582aMMT4/rHfu3En9+vV5/vnnGTt2rM/rW7du\nTXR0ND///LPXcz///DNt2rQJOiz+/vvvHDt2jNtvv53bb7/d6/n69etz++23B1QXJ9heooyMDFq2\nbBnUNVLxFETkhA0ZMoTJkyeze/du/vGPfxR7bjC9BeAcFoiJieGFF14gPT2dAQMGAM6ekieffJL/\n/ve/tGvXjsaNG3u054knnqBBgwY+ezeK06dPH5555hk2b97sMTzzn//8J6jXKaxoD1JhpR2a8fc+\nDhkyhP/85z/Y7faAegWClZCQwL///W9+/PFHXnjhBY4ePcqpp55KkyZNeP/997nrrrvcISM7O5s5\nc+a4V9KUpG3btsyePZvMzMyAe4lcPSHLly/n448/5vzzzw/4e/n3v//tswBXv379GD58OLfffrtH\nwa0vvviC4cOHc/bZZzNv3jy/Abtx48Z899132O12jzDimlDctGlTr2uaNGni7gF58MEHqV27Ntde\ne23A34vLoEGDWLFihdfxyy67jFatWjFp0iTatGnj9/qwsDCGDh3Kxx9/zFNPPeUOrjt27GDFihVe\nk9QD0blzZ59tGjt2LJmZmcyYMcPne1LY22+/DeAzNPpTUFDAzp07vVYlSeWjICInrFevXlx//fVc\nffXVfPfdd/Tu3ZvatWuTlpbGypUr6dChg3teQocOHfj444+ZOnUqXbt2xWq1csYZZwC4/4Hctm2b\n+7VtNht9+vRh4cKFtGrVyr3Us1evXkRGRrJs2TKv5Yljx45lzpw59O7dm3HjxtGxY0ccDgc7duzg\niy++4M477/T7IT127FjeeustBg8ezCOPPEJCQgLvv/8+v/zyCxD8/8jg+P8y33vvPU477TTq1KlD\n48aNady4MQ0aNPA5PFISf+/jZZddxnvvvccFF1zA7bffTvfu3QkPD2fXrl2sWLGCYcOGBdW1DdCj\nRw+GDBlCx44dqV+/Plu2bOHdd9/1CBhPPfUUV1xxBUOGDOGGG24gNzeXp59+mkOHDjF58uSA7uNa\n5fC///3PPVRRkksuuYTPP/+cBx54gAYNGrBmzRr3czExMR5hsujPV8uWLf3+b7lJkyYeIWXlypUM\nHz6cxMRE7r//fq85QO3atXMvdx03bhy33XYbQ4cO5YYbbqBWrVosW7aMZ599lv79+9OpUyf3dU89\n9RSJiYk0b96cvXv38t///pd58+bx7rvveg3NuNr6xx9/+H0/EhMTSUxM9DoeFRVFgwYNvIKXr9+5\nlJQUunXrxpAhQxg/fjw5OTk8/PDDxMfHc+edd3pc/91337nbk5WVhTHGXeG0W7dutGjRgnr16vkM\nfPXq1aOgoMDjuW+++YbHH3+cESNGcNJJJ5GTk8Pnn3/O66+/zrnnnsvQoUP9fu9F/fTTTxw9evSE\nV2FJBQjpVFmp1FwrHPbv3+9x3N8qhrfeesv06NHD1K5d20RHR5vWrVub//u//zPfffed+5yMjAxz\nySWXmHr16hmLxeKxGqRFixY+V4K8+OKLBjCjR4/2OD5gwAADmAULFnhdc+TIEfPggw+aU0891URE\nRJjY2FjToUMHM27cOI+Km0VXzRhjzMaNG03//v1NVFSUiYuLM9dee615++23DWB+/PFH93n+Zv1f\nddVVXt/H7NmzTdu2bU14eLgBzIQJE7yuC0Zx72N+fr555plnTKdOnUxUVJSpU6eOadu2rbnhhhvM\n1q1bPb53Xysp+vTp47H6Yfz48eaMM84w9evXN5GRkeakk04y48aNMwcOHPC4bt68eaZHjx4mKirK\n1K5d25x33nlm1apVHuf4+5kyxrmyomXLluamm27yOF7cqhmKWWVUdAWHv58vX69ZdNWMq93+vgqv\npjLGmDlz5pizzz7bxMfHm9q1a5v27dubRx991KvIWUpKimndurWJjIw09erVM4MGDTJff/21z3bF\nx8d7FXsLlL+/a3/vyXfffWfOO+88U6tWLRMTE2OGDx/uswKxq7qsr6+SCvj5+v3ZunWrueCCC0yT\nJk1MZGSkiYqKMh06dDCPP/64R9G4wvytmnnooYdMfHy83+uk8lAQEQnA6NGjTZ06dUxubm6om1Kt\nPfPMM6Z+/frm6NGj7mOuILJt2zaP8u41yaZNmwxgPvnkk1A3pVLJz883S5cu9QoiBQUFpmXLlub+\n++8PYeskUCpoJlLEI488wvTp01m+fDkLFizg+uuvZ/r06YwbN87vahQpGzfffDOxsbG8+uqrXs+1\nadOG8PDwYlc9VVcrVqygZ8+eXHjhhaFuSqWxYcMGwsPDPZbuu8yaNYsjR45w9913h6BlEiyLMQFM\nxRepQSZNmsTMmTPZtWsXBQUFnHzyyVx33XXcfvvtpa5xIYFbuXIlP/zwg7s+x8GDB0lNTXU/37lz\nZ8LCNL2tpjt27BibNm1yP27durV7ddaMGTNo0qRJwHONJLQURERERCRkNDQjIiIiIaMgIiIiIiGj\nICIiIiIhU6lnfDkcDvbs2UPdunU1SVBERKSKMMZw+PBhGjduXGIhyEodRPbs2UOzZs1C3QwREREp\nhZ07d5ZYwr9SBxHXPgc7d+50l08WERGRyi0rK4tmzZoFtNFmpQ4iruGYmJgYBREREZEqJpBpFZqs\nKiIiIiGjICIiIiIhoyAiIiIiIaMgIiIiIiGjICIiIiIhoyAiIiIiIaMgIiIiIiGjICIiIiIhU6kL\nmomIiEj5sDsMa1Mz2Hc4h0Z1o+jeKg6bteL3dVMQERERqWEWbUwjZeFm0jJz3MeSYqOYMLQdg5KT\nKrQtGpoRERGpQRZtTGPMrPUeIQQgPTOHMbPWs2hjWoW2R0FERESkhrA7DCkLN2N8POc6lrJwM3aH\nrzPKh4KIiIhIDbE2NcOrJ6QwA6Rl5rA2NaPC2qQgIiIiUkPsO+w/hJTmvLKgICIiIlJDNKobVabn\nlQUFERERkRqie6s4kmKj8LdI14Jz9Uz3VnEV1iYFERERkRrCZrUwYWg7AK8w4no8YWi7Cq0noiAi\nIiJSgwxKTmLqqC4kxnoOvyTGRjF1VJcKryOigmYiIiI1zKDkJAa0S1RlVREREQkNm9VCz9YNQt0M\nBREREZHqrrLsK+OLgoiIiEg1Vpn2lfFFk1VFRESqqcq2r4wvCiIiIiLVUEn7ypxt/Zn/zp9fofvK\n+KKhGRERkWrI374yUeQyPmw2/w77gu25SXy3dQg9Tm0aghY6KYiIiIhUQ772i+ls2caz4VNpbXUO\nyax0JNOgAveV8UVBREREpBry3C/GcEfYh9xsm4/NYkgzcdyTfz3fODoyu379kLURFERERESqJde+\nMumZORgsNLEcwGYxzLX3YkL+VRymToXvK+OLJquKiIhUQzYMjwxq7n6ckn8VN+SNY1z+zWRRB6j4\nfWV8URARERGpbv76E94ewoAtD3L9OS2xWiCL2ix2dAPAaoHre7eqFHVENDQjIiJSXRgDP8yCReMh\n7wgFYbVYkr0ah0nyOu31r1M5vXn9kIcR9YiIiIhUB4f3wuzLYcEtkHcE06wn/7Q+w+/GO2i4Koek\nLNwc8joiCiIiIiKVkN1hWL39IPM37Gb19oPFB4bN82HKmfDb52CLgAGPsKb3O3yfVc/vJQZIy8xh\nbWpGmbc9GBqaERERqWSC2h+mIBeWPAzHMiChA4ycBgnt2bdhd0D38lVvpCKpR0RERKQSCXp/mLBI\nGDENzr4DRi+HhPZA0Toi/gV6XnlREBEREakkStofBmDygh9wfHY3/O/14082PxP6T4CwCPchVx0R\nf4tzLaA6IiIiInKcv/1hXDpatvFmzh1Y174OSydA9gG/59qsFiYMbQfgFUZcj1VHRERERNz8zdcI\no4BxYR8yJ2Iira1pHItqBP98F2rHF/t6g5KTmDqqC4mxnsMvibFRTB3VJeRLd0GTVUVERCoNX/M1\n2lh28Xz4FDpY/wBgvv0ski56le5tTgroNQclJzGgXSJrUzPYdziHRnWdwzGh7glxURARERGpJDz3\nh4FYjjAv4mHqWHI4ZGrzYP41fF+3HyvbtgrqdW1WCz1bNyifRp8gDc2IiIhUEkXndWRSh9cLhrDC\n3onzc5/iU0fPSjGvoyypR0RERKSyMIZB+ct4d0hT7v7GTlpmDq/Yh+OwW0iKjWaqrzoiVZyCiIiI\nSGVwZB8svB1+/YyzE5JZeecy1u7MrpTzOsqSgoiIiEiobVnoDCFHD4I1HDpcgi0svNLO6yhLCiIi\nIiKhkpMJn98LP852Pk5IdlZJTUwObbsqkIKIiIhIKPz1J8y4ALJ2gcUKvW6Hvvc5S7bXIAoiIiIi\noRDbFOo1B1uYsxek+ZmhblFIKIiIiIhUlD0boOGpEB4NVhtc8hZE1oXIOqFuWciojoiIiEh5s+fD\niknwxrmwdOLx4zFJNTqEgHpEREREytf+X+Hj6yFtg/Nx9n5w2J09IqIgIiIiEii7wwS+Z4vDAWun\nOXtACnIgqh5c+Cx0uKQim1zpKYiIiIgEYNHGNFIWbiYt8/gOuUmxUUzwVe00czfMvQH++Mb5uPV5\nMOwViGlcgS2uGjRHREREpASLNqYxZtZ6jxACkJ6Zw5hZ61m0Mc37ovSfILwWXPgcjJqjEOKHekRE\nRESKYXcYUhZuxvh4zuDcnC5l4WYGtKmDLaqu84nYJs4VMfVbQYPWFdjaqkc9IiIiIsVYm5rh1RNS\nmAGSD6/E/kIn+G3x8Sfa9FcICYCCiIiISDH2HfYfQupylKfDXuONiOeIyDkIa6ZWYMuqBw3NiIiI\nFKNR3Sifx3taN/F0+DSaWg7gMBbSkkfTZMRjFdy6qk89IiIiIsXo3iqOpNgoXIt0I8njwbB3mR3x\nOE0tB9jhaMiYiMdIvPipGrdPTFlQEBERESmGzWphwtB2gHNiak/rZq4L+xyA9wvO5YK8yYwYdrH/\neiJSLA3NiIiIlGBQchJTR3UhZeFmvszszOsFF/Ktox2/1u3JM77qiEjALMYYXyuSKoWsrCxiY2PJ\nzMwkJiYm1M0REZGa6MBWWDQehr2KvXZC4JVVa7BgPr/VIyIiIuKLwwFrX4elE5wl2hc/gO2SN+nZ\nukHQLxVUafgaRkFERESkqEM7Yf5NkPq183Hrc2Hgo6V6qaBKw9dAmqwqIiLiYgz8+B+YepYzhIRF\nwwXPwKiPS1WivVSl4WsYBRERERGX72c6N6vLzYKm3WDMKug+GizBD6OUVBoenKXh7Y5KO1WzQiiI\niIiIuHS4FOJPhXMfgqsXnVCJ9kBKw6dl5rA2NaPU96gONEdERERqrpwsZy9Iz1vAaoXIOnDjSgiL\nOOGXLq40fGnOq65K3SPy9ddfM3ToUBo3bozFYmHevHkezxtjmDhxIo0bNyY6Opq+ffuyadOmE22v\niIhI2fhjJUztBUsecq6OcSmDEAL+S8OX9rzqqtRBJDs7m06dOvHKK6/4fP6pp57iueee45VXXmHd\nunUkJiYyYMAADh8+XOrGioiInLB851JcZg6BzB1QrwUkdSzz2xQtDV+UBefqme6t4sr83lVJqYdm\nBg8ezODBg30+Z4zhhRde4IEHHmDkyJEAvP322yQkJPD+++9zww03lPa2IiIipbdng3My6v5fnI+7\nXAXnPw6Rdcv8Vq7S8GNmrccCHpNWXeFkwtB2Nb6eSLlMVk1NTSU9PZ2BAwe6j0VGRtKnTx++/fZb\nv9fl5uaSlZXl8SUiIlImvn8bpp/nDCG1G8HlH8BFL5VLCHFxlYZPjPUcfkmMjWLqqC6qI0I5TVZN\nT08HICEhweN4QkICf/75p9/rJk2aREpKSnk0SUREajrX8MtpF8GQF6B28BVSS2NQchID2iWqsqof\n5bpqxlJk3bUxxutYYffddx933HGH+3FWVhbNmjUrt/aJiEg15nBA+k/QuLPzcePT4YZvoNFppaoL\nciJsVkupSsPXBOUyNJOYmAgc7xlx2bdvn1cvSWGRkZHExMR4fImIiAQtcxfMGgHT+0P6xuPHE9pV\neAiR4pVLEGnVqhWJiYksWbLEfSwvL4+vvvqKs846qzxuKSIilZTdYVi9/SDzN+xm9faD5VtJ1Bj4\n8QOYchb8/iVYw+DAb+V3PzlhpR6aOXLkCNu2bXM/Tk1NZcOGDcTFxdG8eXPGjh3LE088wcknn8zJ\nJ5/ME088Qa1atfjXv/5VJg0XEZHKr0I3fMs+CJ+MhS0LnI+bnAEjpkF8m7K9j5QpizGmVNH0yy+/\npF+/fl7Hr7rqKmbOnIkxhpSUFKZNm8Zff/1Fjx49ePXVV0lOTg74HllZWcTGxpKZmalhGhGRKsa1\n4VvRDxnXwEiZrhr5bTHMvwWy9zl7QfqOh17jwKYC4qEQzOd3qYNIRVAQERGpmuwOw9lPLve714oF\n5xLWlfeeWzarR1a95KyQ2rCtsxfENUFVQiKYz29FRRERKXPBbPhW6tUk+ccgPNr55543Q1gUdPk/\nCK/ZJdOrGu2+KyIiZa5cN3zLz4EvHoRpfSDvqPOY1QY9rlcIqYLUIyIiImWurDZ8szuMZyGwqJ3Y\n5t0I+7c4T/j1M+hwyYk2V0JIQURERMqca8O39Mwcr8mqcHyOSHEbvhVecWPDzo22hXQLnwPYoXZD\nuOhlONX3nmdSdWhoRkREypxrwzd/qyEMxW/45lpxk5aZQytLGh9FpHB3+H8Jw87n9m4sO3e+Qkg1\noR4RERGpVOwOQ8rCze4Qc1/Y+5xu3UaWqcXD+f9mvqMXiV+k0/d07VxbHahHREREypwrTPhjAVIW\nbvZZZbXoipuH8q/mM3t3BuVOZp7jbAwW94obqfoUREREpMwFs3zX8wlDxOYPuT/sPfehvcRxU/5Y\n9hDvcWqpVtxIpaOhGRERKXOlWr6bfRA+HUfXzfPpGgYrHJ1Z7Wjv99pAV+ZI5aYgIiIiZS7o5bu/\nLYYFt8KRvRhrGK9bLmWdo63PawJZcSNVh4KIiIiUuYCX7zYOhwW3wfq3nU80bItlxDRaZCRgn7Ue\nC3hc75qaWtyKG6laNEdERETKnGv5LhwPDy7uMDHkNGyzRvwdQizQ8xa4/ito3JlByUlMHdWFxFjP\nnpXE2Kiy3SxPQk6b3omISLkpXJTMJSk2iglD2znDxJaFsPh+GD4VWp7tdb1XZdVWceoJqQK0+66I\niFQahcNEy/zfSY7NxXZK/+Mn5Odoj5hqRrvviohIpWGzWujZMhZWzYAvJ0NkXbhpNdRNdJ6gEFKj\nKYiIiEj5Orgd5t4Iu9Y6H7c4C6zhoW2TVBoKIiIiUj6MgXXTYcnDkH8UImNg8FPQ6TKwaJ6HOCmI\niIhUUyGd6GnPh/f/CduXOR+36g3DpkC9ZhVzf6kyFERERKqhElerlDdbONRvCWFR0D8Ful8PVlWM\nEG9aNSMiUs0s2pjGmFnrvQqJufpCyq0Ox9EMKMiFmL9fOy8bMndDw1PK/l5SqQXz+a14KiJSjbh2\nvfX1P0zXMX+73p6QrUtgSk/4eDQ4HM5jEbUVQqRECiIiItVIqXe9La3cI7DwdnjvEjiSDkf2Qva+\nsnltqRE0R0REpBop1a63pfXnaph3I/z1h/PxmTfDeQ9BePSJv7bUGAoiIiLVSNC73pZGQS6seBxW\nvQQYiG0Gw6c4V8aIBElDMyIi1Yhr11t/i3QtOFfPdG8VV/qbGAO/LQYMdL4CxqxSCJFSUxAREalG\nAtr1dmi74OuJOOzOL3CWZB/5OvzzPWdPSFTsCbVZajYFERGRamZQchJTR3UhMdZz+CUxNqp0S3cP\nbocZg2HVi8ePJXWC04aUqn12h2H19oPM37Cb1dsPlv0KHqlSNEdERKQaGpScxIB2iSdWWdUY+O4t\n+OJByD+KObiNtQ0vJj0nrNSVWkNeaE0qHRU0ExGphk64vHtWGiy4BbYtBeBgwx5cl3k1P2Qd/7c4\n2AARskJrUuGC+fxWj4iISDVzwr0OG+fAJ3dAziEIi2JL+3Fc+L/2OIqM5qdl5nDjrPW8FkCAKKnQ\nmgVnobUB7RIrbj8cqRQ0R0REpBpx9ToULWqWnpnDmFnrWbQxrfgXyNwFc8c4Q0hSZ+yjv+KaX7p5\nhZDCxn/8M3kFjmLnfVR4oTWpMtQjIiJSTZRJr0NsUxiQAscOQe+7WPtHFmmZ24u976Gj+XR5dAlH\ncgvcx4r2wFRooTWpUtQjIiJSTQTa6zBzVerxHovcI85hmF3fHz/xzDHQ7z6whQccDAqHEPDugamQ\nQmtSJSmIiIhUE4GGhkc/3cLZTy5nzZefwmtnw3dvOku12wu8zi1tMCi6wV6FFFqTKklBRESkmgg0\nNESQz5XZM+m24gr4KxVimsIFz4DNe7S+e6s46kWHl6o9hed9lFuhNanyFERERKqJknodANpadjA/\n4iFuCluAzWL41NqPvOtXstok+5xoarNauLpXyxNql6unpswLrUm1oDoiIiLViGvVDOA1abWd5Q/m\nRjxMpKWAg6Yu9+dfx2JHN+JqR5CRnec+r+hEU7vD0PWxJRw6ml+qNs0efSY9WzdwPz7hGidS6QXz\n+a0eERGRasRfrwPAZtOCNY52LLF35fzcp1js6AbgEULAe6KpzWph8sgOxfa0+OJv3ofNaqFn6wYM\n69yEnq0bKITUcOoRERGpJgr3NMTXjmTznkx+Wfw6ix1ncIRaAESTwzEi8Z6p4cmCc8hk5b3nuoOC\nr0Jp9WqFc+hoPhY8e2BULbVmU2VVEZFqyt+wRtGQ0JC/eDF6OqMjfqB7QV/uLbgegGMENqG18ERT\n17CKv/1rlmxO9wooido/RgKkICIiUkX46pFIjInkjJZxfPLT8YqpF1rX8Fj4W9Q3R8g14fxmmmLB\nYIIeXPFeEuwaVimsTDbYkxpLQUREpArwt2FcelauO4TEcoRHwmcyzPYtAD87WnJH/k3sj25FQpiN\n9KzjoSKudjgZ2SVPPg10SbCvgCISCAUREZFKrrjS7S4dLL/zRsSzJFr+osBYedU+jJcLRlBAGBzN\n571ru2C1Wtw9Fl1b1KfP0ytIz8zx+bquOSIqMCblTUFERKSSK6l0O8Ae04Aw7Gx3JHFn/hg2mDYe\nzx/IzmVY5yYexyYMbceYWev9TjRVgTGpCFq+KyJSyfkr3d7KcnxeyEFi+b+88VyY94RXCAHfQywq\nMCaVgXpEREQquaIhIpwCbg+bwxjbAm7Lv5VPHWcCsNm09Lq2pCEWTTSVUFMQERGp5Fyl29MyczjV\nsoPnwqfS3vonAGdYf3UHEX9KGmLRRFMJJQUREZFKzma1MKxjI8y3r3JH2IdEWgrIMHW4P/86Fjm6\n+70urnYET4xI1hCLVGoKIiIiZaS0e6iUdJ39YCqDvhtN5/AtACy1n859+aPZTz2/r1k70saa+84j\nIkxTAaVyUxARESkDvoqNFd08rrTX/br5RzqbLRwxUaQU/B8f2vtQUon2Zy/tpBAiVYJ+SkVETpCr\n2FjRJbZFN48L5rpbZq1zX7e1bjcezr+KQXmT+dDel+JCSGJMJK9pxYtUIQoiIiInoLhiY65jKQs3\nY3d4nlHcdYOta1gecQfTFnyJ3WFoVDeKd+zns8s0KrYtD114GqvGn6cQIlWKgoiIyAkoqdhY4c3j\nSrouhiM8H/4qUyJeorl1PyOOzmHmqlTSM48RVzvCbz+IBedwzr97tdKyW6lyNEdEROQE+Cs2VtJ5\nRR+fbf2Zp8OnkWTJwG4sf5doH0n+p1sCen1VQZWqSkFEROQEBLopXNHzXI+jyWF82GyuClsCwO+O\nRO7MH8MP5uSA23B971YajpEqS0MzIiInwFVsrKRhk6KVTV3XXWNb5A4hbxcM4IK8SUGFEIAFP6Z5\nzUERqSoURERESsHuMKzefpAFG3bTq3UDvzvYgvewiatuyODkRKbbL+Are0dG5d3HhIKrySEy6Lb4\nmoMiUlVoaEZEJEi+an/4kuijjsjKVV9xcNlL3HH0KuzYgAiuLhjPiXZoBDpXRaSyURAREQmCq/ZH\nSblhXP+TueXck4/3hDjs/DJvMt1+fI5ISwEbbY14wz7E+dTfL3Ztr5Y0rhfNowFOUC0s0LkqIpWN\nhmZERAJUXO2Pomas+oM1vx90zt346w/MzCG0/ekpIi0FLLWfzjz72R7nW4DPNqZzZc+Wxc45Kcrf\nHBSRqkI9IiIiASqpZkhhh47lc8X0NVxfZxX3MJOwgqMcMVE8WnAlH/iojuqqN/L9n38xYWg7xsxa\njwWKDT3+5qCIVCXqERERCVB6VnDzMMaHzeb+gimEFRzlzzqdGJQ3mQ/s/SiuRPu+wzkMSk5i6qgu\nJMZ6DrcUzRqJsVFMVTl3qeLUIyIiEqCMI7lBnT/H3pt/2ZbzcsEIPs4eykHjKPEa11yPQclJDGiX\n6LErb9cW9fn+z7+C3t1XpDJTEBERCVBc7Yhin48hm7Osm1jk6A7AVtOUXrkvcZhacKz4EGLB2cNR\neK6HzWqhZ+sGHucVfSxS1ZXr0MzEiROxWCweX4mJieV5SxGRcpMYG+33uV7Wn1kceS+vhr9IZ8s2\n9/HD1CrxdTXXQ2qycu8Rad++PUuXLnU/ttls5X1LEZFy4aqGWnjCahS53Bv2H64OWww4S7Q7Al7z\n4uSr3ohITVHuQSQsLEy9ICJSLdisFveKFgN0tmzj2fCptLamAc4S7ZMLLucYwdX0eOaSTvQ6Ob4c\nWixS+ZV7ENm6dSuNGzcmMjKSHj168MQTT3DSSSf5PDc3N5fc3OOTwbKyssq7eSIiQXGtaPlj7iOM\nLpiNzWJIM3E8Yr2JzwvaBdkX4nQgO7hJsCLVSbnOEenRowfvvPMOixcv5o033iA9PZ2zzjqLgwcP\n+jx/0qRJxMbGur+aNWtWns0TESmVQclJXH9+V2wWw66mF7Lzn8t45aG7eM3HkttAqCqq1GQWY0yF\nbdmYnZ1N69atueeee7jjjju8nvfVI9KsWTMyMzOJiYmpqGaKiHhz2CFrD9T7+z9IxsAf30Cr3h6n\nuTa023c4h/jakdz54Y/szcrxuyleYmwUK+89V5NUpVrJysoiNjY2oM/vCl2+W7t2bTp06MDWrVt9\nPh8ZGUlkZPA7T4qIlKXCYaJR3Si61z+Mbf7NkLkDblwFUTFgsXiFEPBecjvxIt9VUrVSRsSpQoNI\nbm4uW7Zs4ZxzzqnI24qIBMxzZ13Dpbav6Bj+DrXJwYTXZvP6lWyr1Yn42pFggQNHcostLuaaU1J0\nt16tlBFxKtcgctdddzF06FCaN2/Ovn37eOyxx8jKyuKqq64qz9uKiJRK4Z11G3KIJ8KnM8C2HoC1\njlNJKbiVTQsMsMHr2qRigoWvKqmqiiriVK5BZNeuXVx++eUcOHCAhg0bcuaZZ7JmzRpatGhRnrcV\nkRrMa1glwA/8wjvrnm9dyxPhb9LAcphcE8ZzBZfyhv1CHMXM70/PzGHMrPV+937xVSVVRMo5iPzn\nP/8pz5cXEfHgOaziVFxPRWHHd9Y1jLCtooHlMFsczRmXfxO/mOYl3tvgnPeRsnAzA9olqrdDJEDa\nfVdEqgXXsErhEALHeyoWbUwr9vp9WUf//pOF+/Ov5bn8SxiW92hAIcTFAGmZOaxNzQiy9SI1l4KI\niFR5hYdVinIdS1m4GbvDxxl5R+Gzezjrx/vdhzKI4SX7SPIIL1V79h3OKfkkEQEURESkGjg+rOKb\n356KXd/DtN6wdhoN/1hAz6gdZdIeFSgTCZyCiIhUeUs3pwd0nrunwp4PK56ANwfAwa1QNwlGzeHM\ns887oXZYcM5J6d4q7oReR6QmqdA6IiIiZaHwypg/DhzlzVV/BHRdo7pRsO8XmHs9pP3oPJh8CVzw\nNNSK45aTDDO+/YNDR/ODbpMKlImUjoKIiFQpvlbGlMRVSr17i1h49Tz4KxWi6sGQ5yD5Yvd5NquF\nySM7uGuJBEMFykRKR0FERKqMwgXHgmH4u6ciLAwufBb+9xoMfQlifBcfmzqqCxMXbCI9q/hdcevX\nCufhoe1JjFGBMpHSUhARkSqhuJUx/jlLtPc8pTGDki90HmpzHrQ+17lXjB+uSqivLN/G80t/83re\ndeWkkR3UAyJyghRERKRKKGllTFHxZDIpfDoDbN9TsKsOZP4DYps4nywmhLjYrBZu738ypybW0T4x\nIuVIQUREKo3iyrMHU5vjfOs6Hg9/k3hLFvmEYet9F9RNLFWbtE+MSPlSEBGRSqGk8uyB1Oaoy1Em\nhL/DJbavAdjiaM7BgS9z9tl9T6ht2idGpPyojoiIhFwg5dm7t4ojKTYKf/0Q0eTwWcR9XGL7Grux\nMLVgKP9nm0zPs/qU/zcgIqWmICIiFcbuMKzefpD5G3azevtB7A6D3WEY//HPJZZnB+fKF8BnGDlG\nFJ85uvOnoxH/yHuYJwsuZ/8xWLP9oNc9RaTysBhjKu1vZVZWFrGxsWRmZhITExPq5ojICfA39HJG\ni3os/KnkyqizR59Jz9YNPF6no2U7mdTmT+Oc/xFJHjYcHOX4ME696HAOHTteoCzQ3XhFpPSC+fxW\nj4iIlDt/Qy9pmTkBhRA4Pll1UHISK+86h49P+4qPIybwfPgUbNgByCXCI4QAHiEEAt+NV0QqhoKI\niJSr0tX/8OaerLr/N2wzBtIldRphFgd7TDxR5AX8Oubvr4kLNmmYRqQSUBARkXIVbP0PX+rVCqd7\ny3qwZipMOwf2/ABR9fix+zPcmn8bR4kO+jXTs3J5Zfm2E2qXiJw4BRERKVfB1P/wZ0y3+thmDYdF\n46EgB1qfBzetptMFo5k6qguJsZ7DMfWiwwN63eeX/qYhGpEQUx0RESlXgdT/KE69WuFc178TvJUJ\n4bVg4GNwxjXu6qi+Co45jOGK6f8L6PVTFm5mQLtEFSgTCREFEREpV676H+mZOcXOE7GAx/NxZHGY\nWkwe2QVbeARc/JYzfDRo7XVt0YJjdochKTYqoCGhtMwc1qZmqGCZSIhoaEZESuSr/kegbFaL3/of\nlr+/bujdymN4ZYD1O5ZG3cOizt8eX2Yb3wYatA6oLYXvGYiyGD4SkdJRj4iIFKuk0uuF+dsrZlBy\nElNHdfG5edxDF55G/dqRtE2M4XBmBn1+f5YWO+cBEHdoFRTkQVhE0G0ZlJzEuP4n8/zSrSV+jyc6\nfCQipaeCZiLil6v+R9F/JFw9G1NHdXEHgEBCQtGg8ld2Ho9+6rzmTOtmngl/jaaWAxgsWHrdBv0e\ngLDIoNviYncYek1eTnqW7x4PC84wtPLeczVHRKQMqaCZiJyw4up/FC69bneYgPaKgeNzOYZ1bkLm\nsTxufn89GZlZPBj2Lv+JeIymlgPscDTkn7kPsShpjDuEBNOWwmxWCxMvauceAirM9XjC0HYKISIh\npCAiIj6VVP/D4JzouWb7waBDQuFg0cjyF5fblgPwfsG5DM6bzFrTlvvn/kxegSOotqxNzfB6zjUs\nVHSJb2JslM9eFBGpWJojIiI+BTqB89vtBwIOCa6VKWt/P+i+ZqdJ4IH8a8mkNiscp7uvy8jO58xJ\ny3hiRDK5fweS0rbZ1xJf1/wVEQktBRER8SnQCZwzV/8R0HnukLD/N0799FrOtF7EGodzZcs8x9k+\nr8nIzmPMrPWM7X9yQPcors1Fl/iKSOWgoRkR8clV/6OkPoPsXHtAr9eoTgSseQ2mnUPcXz/xUNi7\nEOAONLPX7iAxxn9bLDgnxnZvFRfQ64lI5aEgIiI+FVf/IxgWoFPMEc5cdS0suhcKcjAn9eO+qAew\nBPDKBue+MJd3b+6zLZp0KlK1KYiIiF/+JnrG1Q5sLxcwjLB+w0fmTiypX0FYNFzwDJYr53LTRb2D\nakvL+FqadCpSDamOiIiUqGj9j/SsHMZ9sKHE6wZE/8Ib5hHng6bdYMQ0jxLtizamcf/cn8nIzi/x\ntWaPPpOerRv4LZomIpVHMJ/fmqwqUgMF+2FeeKKn3WGYuSo1oPv8+/L/gx83QkJ76DUWbJ7/5AxK\nTuLctgmcOWkZGdl5Pl/DVXTMNf9Dk05FqhcFEZEaJpgy6S6u4LJkczrzNuzxGxrqcJSxYXN4pWAE\n0bHxnNkmHk5+y71Trq8AFBFm5YkRyYyZtR7wnL6q+R8i1Z+CiEgN4q9MuqsCqq+5Fr6Ciy89LFt4\nJvw1mln309CSSeTQtzzCQ0kByN9eNMUFJBGp+jRHRKSGyCtwBDQEUnjfFX/BpbBI8rgz7EOus32G\n1WLYTQK7+jxDj34Xuc8JdJ8Yzf8QqR40R0REPAQyKbRoBdTi9ndxaW9J5fnwKZxi3Q3AL41HcvKV\nL9Ik+vg/PCXtE2PBWQJ+QLtEzf8QqYG0fFekmnP1RgSyMgWOV0AtaX+XAdbvmBfxMKdYd7PfxHJN\n3l382v0xbNGe//s5kX1iRKT6U4+ISDUWSK9GUVv3HmHV1gN8+/uBYs/7n6MtB4jlB3sbHsi/hr+I\nYbSPEuuB7lkT6HkiUr0oiIhUYyX1RvjyyoptvLJim9dxCw7Os/7AUkcXwEIWdbgo9zH2E4sFi98S\n64HuWRPoeSJSvWhoRqQaK6tehiQO8k74ZKZHPMultq/cx/dTz12m3d8S25L2rNE+MSI1m4KISDV2\n4r0MhuHWlSyOvJdzbBs5ZiKwFhnoSYiJZGz/k8ktcLB6+0HsDs/ni9uzRnVCRERDMyLVmKs3Ij0z\nJ6h5IgD1yeLx8Le4wLYWgA2O1tyRP4bfTWP3OYOTE/hhRybPL93qPuarOJrqhIiIP6ojIlLFBFtr\nw7VqBgg4jJxt/Znnw6fQ0JJJvrHxYsFIptovwo6txGuL1gY5kbaLSNWkOiIi1VRpyrP7640oTq4J\npwFZ/OZowrj8m9hkWnmdY7WAw0ey8VUbxEV1QkSkKPWIiFQRgVYnBd89DwDPL/nN54oYgAZkcpBY\n9+NzretZ5Ugmlwiv+wX6j4Zrx1wRqVnUIyJSzQRTnXTJ5nS/vSbhNu9hEFeJ9n/ZljEk73H+MM4w\ns9zRxWdbEmOjuCA5kTdX/VFiu1UbRERKoiAiUgUEWp30leXbeGHpb16BJS0zhxtnrSc22vNXvr3l\nD54Ln8Kp1l0AnG/9jmn2oT7vUSvCxhv/dwZnntSAtakZAQUR1QYRkZIoiIhUAYH2LMxYlVrssEnm\nsQIAbNi50baQsWFzCLfY2W9iGJ8/mmWOrn6vfe4fnejVJh4oeTWOawM91QYRkZKojohIFRBoz8Kh\nYyXvJ9PKksZHESncHf5fwi12Prd34/zcp9whpF50uMf59aLDGdf/ZAa0S3QfU20QESkrCiIiVUAg\n1UljowLr4LzI+i2nW7eRZaK5I+9GxuSPJYPjk8levux0xvU/xR1IDh3L5/mlWzn7yeUs2pjmPs+1\nGicx1jMkJcZG+Vy6KyLii1bNiFQRJa2aubhLEz5av9vP1cZ9ZhgFPBD2Hq8XDCEN7xUtt53bhpeX\nbwtodQ6oNoiIeAvm81s9IiJVSHSEj4JiFri+dyt6ndzQxxWGYdaVvB/+OOE454cUEEZKwVU+QwjA\nW37mmbiOpSzc7FHG3VUbZFjnJvRs3UAhRESCoiAiUgUs2pjGjbPWczTP7vWcMTDt61SWb0n3OF6f\nLF4Nf5EXI6Zwlm0zl9uWBXSvI7ne93DfC+cKnLWpGUG1X0TEH62aEank7A7DxAWbSjxv4U/Hg0g/\n6w88Gf4GjSyHyDc2Xi4YwXv2/mXWJtUHEZGyoiAiUsmtTc0gPSs3oHNrc4wHwmbxr7AVAGx1NOGO\n/DH8bE4CnLVAfPWquK+PtJFdTI+Ii+qDiEhZ0dCMSCUXTO/DE+FvukPI9ILBDMl73B1CxvU/hef+\n0anY65++uGOJq3OSVB9ERMqQgohIJRdM78OzBZfyq6Mpl+U9yGMFV3rsE9MyvhaDkpN4bVQXEmMi\nPa5LjInktVFduKBjY9UHEZEKpaEZkRBzLX9NzzxGRnYecXUiSYw5vgz2r2z/wzLtLH9wpnULb9kH\nA7DDJDAobzLGx/8xXIFmUHISA9ol+l1y62+33sQSdvkVESkNBRGREFq0Mc3rA98lKTaKizol8frX\nqV7P2bBzw98l2iMsdjabFqxxOHsyioYQX+XWXUtu/SkprIiIlBUFEZEQ8VegzCUtM4dpPkJIS0sa\nz4a/RlfrVufr2Lvxm6Opz9c4keGUksKKiEhZUBARCQG7w5CycHOxG9R5M4yyLeX+sPepZckly0Qz\nMf8qPnacgytyxNWOICM7z32FhlNEpLJTEBEJgbWpGT6HY4rzcvjLDLWtAWCVvT1359/AHpy74bqG\nX766ux/f//mXhlNEpMpQEBEJgdIUBFtuP50B1u+ZXHA5b9sHes0FmTC0HRFhVg2niEiVoiAiEgKB\nLMmtx2GaWfa764DMdZzNmtx2XnvEJGn4RUSqsAqpIzJlyhRatWpFVFQUXbt25ZtvvqmI24pUCnaH\nYfX2g8zfsJvV2w9idxi6t4ojKdZ/GOlr3cDiyHuZHvEM9Tj891GLVwgZ1/9kVt57rkKIiFRZ5d4j\n8sEHHzB27FimTJlCr169mDZtGoMHD2bz5s00b968vG8vUu5cdUB8zcvwtTzX1YMxYWg7r1Uztcjh\nwbBZ/CtsOQDbHI1pYMnikKnrcU/1gohIdWExxgQ3cT9IPXr0oEuXLkydOtV97LTTTmP48OFMmjSp\n2GuzsrKIjY0lMzOTmJiY8mymSKkUFzQAn8tzXVNHp47qAuC+/gzLLzwb/hotrPsAeKtgEE8WXOZR\nHbVedDivXtGFM09qoEmoIlJpBfP5Xa49Inl5eXz//feMHz/e4/jAgQP59ttvvc7Pzc0lN/d4Fcms\nrKzybJ7ICfFXByQ9M4cbZ62nXq1wn8tzDc4wkrJwMyvvPZcBpzUi/ePxNN70BhYMu0w8d+ffwGpH\ne69rJ1/cgV5t4svhuxERCY1ynSNy4MAB7HY7CQkJHscTEhJIT0/3On/SpEnExsa6v5o1a1aezRMp\nteLqgLiOHTqa7/d6g7Ng2drUDGw2G0nWQ1gwfFjQm8G5k32GkHq1whnQLrFM2i8iUllUyGRVi8Wz\nC9kY43UM4L777iMzM9P9tXPnzoponkjQSlMHpDArDupw1L2M97t293Nd3p3cXXAjh6nl85pDR/NZ\nm5pR6nuKiFRG5To0Ex8fj81m8+r92Ldvn1cvCUBkZCSRkZFex0UqQnGTTosqTR0QlxaWdJ4Nf42/\nTB3q1OkHQFpuBEsdXUu89kTuKyJSGZVrEImIiKBr164sWbKEESNGuI8vWbKEYcOGleetRYJS3KRT\nXytTAqkD4s1whW0ZD4S9Ry1LLtlEE1UvE4gP+PVKd18Rkcqr3Idm7rjjDqZPn85bb73Fli1bGDdu\nHDt27ODGG28s71uLBMQ16bToUEt6Zg5jZq1n0cY0r2tcdUACXbfSiL+YGf4Uj4e/RS1LLt/a27Fu\n8CfY4lsH9HoWnMGo8A66IiLVQbkHkX/+85+88MILPPLII3Tu3Jmvv/6azz77jBYtWpT3rUVKFMik\n05SFm7E7PM+wWS3uJbolGWJdzReR99DX9iO5JpwXbFeT9Y+P6NvjDJ+vVzSMnMgOuiIilV251xE5\nEaojIuVt9faDXP7GmhLPmz36TJ97uCzamMb9c38mI9v3CplI8vgi4h5aWPeRXrst6ee+SIfTe/gN\nFMEOEYmIVEaVpo6ISGUX6ORPf+cNSk7i3LYJnDlpGRnZeV7P5xLBnfk3co5tI6cMSGFw5+KrCQ9K\nTmJAu8SAJ82KiFR1CiJSo5XFJNGIMCuPDWvPTe//QC1yuD/sPX4zTXnHfj4A35m2fFfQlqTPtzKw\nY7MSQ4XNatEOuiJSY1RIHRGRyqqsJonWrx1JV8uvfBZxH6PCljE+7D/Ux7MysKuAmYiIHKcgIjVa\nmUwSLcilwZon+G/EI7S07mW3acB1+XfyF97joqoDIiLiSUFEarxByUlMHdWFxFjP4ZfE2CimjupS\n/CTR9I3wxrmcsnU6Nothjv0cBuU+ybeOZJ+nqw6IiIgnzRERoZSTRLMPwpsDIP8oplYD7su7lg9y\nOvtcCmzBGWxUB0RExJOCiMjfgp4kWrsBnHUbpP2I5aKX6PuHnQ9mrccCHmFEdUBERPzT0IxIoIyB\n72bA3k3Hj/W5By6fDXUandgQj4hIDaUeEal2gtm8LmCH02H+LbBtCSR0gNHLISwCrDaP01QHREQk\nOAoiUq2URWXSokGmx9GvsH52Bxz7C2yR0OkysPr/1VEdEBGRwCmISLXh2ryu6GRR1+Z1gQyPFA4y\nsRzhkfCZWG3fOp9M6gQjXodGbcvnGxARqYE0R0SqhdJuXldY4V14m1n2sjjyXobZvqXAWHmpYASL\ne85SCBERKWPqEZFqYW1qhsdwTFGG45VNfQ2bFA0yu01DdpqGZJso7swfw4+mDYmfbqV/cskl2kVE\nJHAKIlItnOjmdWtTM2iYtYkMmpFLBA6s3JR3O4epRQ6RgDPIzFyVSnzdSE1CFREpIwoiUi2c0OZ1\nBXk0+N9k5ka8wUz7IB4tuBKA/dT3OvXRT7e4/xzsJFgREfGmOSJSLZR687q9m5wl2n97HZvFUM9y\nBAuOgO7pmgS7aGPaCbVdRKQmUxCRaiHozescdlj1IrzeF/b+jImO476wu7krfwwmwF+LQCfBioiI\nfwoiUm0EXNn00A6YeSEseRjseXDKICw3raHP8GsB7yBTnMKTYEVEJHiaIyLVSkCVTS1W2LsZIurA\noElw+pVgsTAoGaaO6uJVEC0QgU6WFRERTwoiUiUVV8bdVdnUdc4nP+0hMaqAM05p7jwntilc+hY0\naAP1W3q8btEgc+BwrscEVX8CnSwrIiKeFESkygmkjHvhcy6wruGx8Le4K3ws5w8f5TynTX+/r1+4\nRLvdYZi+MpX0zByfxdIsOId+vCbBiohIQDRHRCoVu8OwevtB5m/YzertB70mgRauflpY4RUsrnOy\nMw/wfPirTIl4iTjLEYbmfhL0KpegJ8GKiEhQLMaYSjvdPysri9jYWDIzM4mJiQl1c6ScldTTYXcY\nzn5yud/5GxYgISYSsNDmyDqeDp9GkiUDu7Hwqn0YLxeMpIAwEmOjWHnvuUGFh7LYTE9EpKYI5vNb\nQzNSKQSyYV1sdESJZdwzszIZHzabqyKWAPC7I5E788fwgznZfV5xpd79CWgSrIiIBE1BREKupA3r\nLDhrddwzqOQN53paN3NVmDOEvF0wgMkFl3MM74mkpVnlUnjuiIiIlA0FEQm5QDesyziSW+JrLXd0\nYVrBhax0dOAbR0e/52mVi4hI5aDJqhJygfZOxNWO8CrjfoplJ++ET6Ihh5wrWGIimVHrWlb6CSF+\nS72LiEhIKIhIyAXaO5EYG+1ewWLDwWjbJyyMeIDetp+5P/x9ACZe1J6Hh7Tzu9QWtMpFRKQy0dCM\nhJxrw7pAanXYrBZmjmhEzKLbON1sBmCZ/XSmR1/N1H92AeDRTzf7vE+iVrmIiFQ66hGRkAu4VocF\n+P5t+iwbzulmM/aw2mzonEKtqz5iwfiLAXzWGHF56MLTFEJERCoZBRGpFALasG7ddFh4G+QdgeY9\nsd20is7Dx9KzTTyA35U34Aw0j366RbvkiohUMhqakUqjxFodnS6HtW/A6aOg581gtbmvDXTlTbD1\nQ0REpHwpiEil4lGr49gh+PZFOOs2sFohsg6MWQW2cK/rAl15o11yRUQqFwURqZy2r4D5N0PWbgiv\nBT2udx73EUIg8JU3qh8iIlK5KIhI5ZJ3FJZOhLXTnI/jWkPj00u8LJiVNyIiUnlosqqUi5J20fVp\n13cw7ZzjIaTbaLjxG2jWrcRLtUuuiEjVpB4RKXOl2ql23XT47G4wDqibBMNegTb9g7qva+VN0Xur\nfoiISOVlMcZU2vWMwWwjLJWDv110Xf0Q7qW4Re1eD9P7Q/JIuOBpiK5f6jbYHUa75IqIhFAwn9/q\nEZEyE+guugPaJYJxsOn7r0mNOOXvsHA6tptWQ8NTT7gd2iVXRKTqUBCRMhNoLY+3P/uazt/fR3vH\nr9yd9xi/mubHh24aVlx7RUQk9DRZVcpMyTU6DJfavuTSdf+ki9lEATZaWtIBSM/MYcys9SzamFbu\n7RQRkcpDPSJSZoqr0RFPJpPCpzPA9j0A6xyncGf+GHaYBMB76EZzOkREagYFESkz/mp5DLSuY1L4\ndBpYDpNrwniu4FLesF+Io0iHnMqwi4jUPBqakTLjr5ZHS0s6DSyH2eJozrC8x5hmH+oVQgpTGXYR\nkZpDQUTKlKuWR4uY41Fkuv1Cngq7nmVnz+YX07zE11AZdhGRmkNDM1K28o4yaOcLnB+zgrUXzyX9\nGH8vzx0CwHvf71UZdhERcVMQkbKz63uYewMc3IoF6FGwFjqP8DhlwtB2jJm1Hgt4hBGVYRcRqZk0\nNCMnzp4PK56ANwfAwa3OEu2j5kD7EV6nuoZuEmM9h18SY6P8V10VEZFqSz0icmL2/QJzr4e0H52P\nky+GC56BWv6HVwYlJzGgXaLKsIuIiIKInKClE5whJKoeXPgsdLjE/VRxe76oDLuIiICCiJyoC5+F\n8Gg4fxLEHB9WKdUOvCIiUuNojogEzhj44T1Y/MDxY7FN4dKZXiFkzKz1XvvOpGXmcKPKuIuISCEK\nIhKYI/vhP1fA/Jtg9Svwx0qfp9kdhokLfO/A6zL+45+xO4o7Q0REagoFESnZlk9gypnw66dgDYf+\nE6F5T5+nvrJ8K+lZxVdGPXQ0n1eWbyuHhoqISFWjICL+5WTC3DHwwRVw9AAkJMP1X8LZ48Bq8zp9\n0cY0nl+6NaCXnvFtqnpFREREQUT8MAbevgh+fB9jsbL15OtYc96H2Bu193m63WFIWbg54Jc/dDSf\ntakZZdVaERGpohRExDeLhfUtr2UXiVyS8xADfj6Xy976gbOfXO5zsuna1Ayvyakl0eZ2IiKiICLH\n7V4PW5cCzmGWi1c04NycJ/nenOo+JT0zhzE+Vr6UJlRoczsREVEQEWeJ9i8nw/T+8PFo7FnppCx0\nrnzJI9zjVNesjpSFmz3meAQTKiw4a4poczsREVEQqen2/+bcI+bLSWDscFIf1u/KLnaYxeCsCVJ4\njkf3VnEkxUZRUpF2bW4nIiKFKYjUVA4HrJkK086BPT84S7Rf/CZcOpM9eYH1bhQejrFZLUwY2g6g\n2DCize1ERKQwlXiviQry4L1LIPUr5+PW58GwVyCmMRD4MEvR81w76xYt7R5XO5wRnZvQv12iNrcT\nEREPCiI1UVgExJ0Eu9bBwMfgjGvAcjwcuIZZ0jNzfFZIteDs2fA1x0M764qISDAsxphKW1UqKyuL\n2NhYMjMziYmJCXVzqrbsA85Jqa49YXKPwJG90KC1z9Nd+8UAHmHEFSc0vCIiIv4E8/ldrnNEWrZs\nicVi8fgaP358ed5SfPnlU2eJ9rk3OOeGAETW8RtC4PgwS2Ks5/CL5niIiEhZKvehmUceeYTRo0e7\nH9epU6e8bykuOVmw6D7YMMv5OHu/s1R7nUYBXa5hFhERKW/lHkTq1q1LYmJied9Gikr9BubdBJk7\nAAv0ug36PQBhkUG9jM1qoWfrBuXTRhERqfHKdY5Iy5Ytyc3NJS8vj2bNmnHppZdy9913ExER4fP8\n3NxccnNz3Y+zsrJo1qyZ5ogEIz8Hlj0Ca151Pq7XAkZMgxa+d8sVEREpa8HMESnXHpHbb7+dLl26\nUL9+fdauXct9991Hamoq06dP93n+pEmTSElJKc8m1QAGtjnLtNP1385VMZF1Q9oiERERf4LuEZk4\ncWKJYWHdunWcccYZXsfnzJnDJZdcwoEDB2jQwLu7Xz0ipWQvcC6/tdqcj/dsgCP74JSBIW2WiIjU\nTMH0iAQdRA4cOMCBAweKPadly5ZERXkXxdq9ezdNmzZlzZo19OjRo8R7afluAA5sda6GOe0iOHts\nqFsjIiJSvkMz8fHxxMfHl6phP/zwAwBJSVr6ecIcDlj3Bix5GApy4NBO6D4aImqHumUiIiIBK7c5\nIqtXr2bNmjX069eP2NhY1q1bx7hx47joooto3rx5ed22Zsjc5VwR4yrRflI/GPaqQoiIiFQ55RZE\nIiMj+eCDD0hJSSE3N5cWLVowevRo7rnnnvK6ZfVnDPz0AXx2D+RmQlg0DHwUul3nUaJdRESkqii3\nINKlSxfWrFlTXi9fM2XuhAW3gj0PmnZzLsstpjqqiIhIZadN76qSes2hfwrkH4VeY8Gmvz4REana\n9ElWmeVkwRcPOOuBNOnqPNbzppA2SUREpCwpiFRWf6yEeWPg0A7Y8T+4afXxOiEiIiLVhIJIZZOf\nA8sfhdWvAoac2k35ru0D2FIPacM5ERGpdhREKpM9G5zFyfb/AsB8a3/uP3g52UvDgDUkxUYxYWg7\nBiWrDouIiFQP1lA3QP625weYfh7s/4XcyHiuzbuL249eQzbR7lPSM3MYM2s9izamhbChIiIiZUc9\nIpVFYidoeQ4mMoZh20fwi8N7h2IDWICUhZsZ0C5RwzQiIlLlqUckVBwOWP8O5B52PrZa4bL3WdP1\nOX7J8g4hLgZIy8xhbWpGxbRTRESkHCmIhELmLpg1wlmcbPEDx49H1GLfkVz/1xWy73BOOTVORESk\n4mhopiIZAz9/CJ/edbxEe2IHj1Ma1fXetdiXQM8TERGpzBREKkr2QfhkLGxZ4Hzc5Axnifb4Nh6n\ndW8VR1JsFOmZORgfL2MBEmOj6N4qrrxbLCIiUu40NFMRdq6DKWc6Q4g1DM59EK5Z7BVCAGxWCxOG\ntgOcoaMw1+MJQ9tpoqqIiFQLCiLFsDsMq7cfZP6G3azefhC7w1cfRQDqtwBjh4anwXXLoPfdxe4T\nMyg5iamjupAY6zn8khgbxdRRXVRHREREqg2LMaaUn67lLysri9jYWDIzM4mJianQey/amEbKws2k\nZR6fFBpUQbH9v0HDU44/Tv8ZGpwM4YHP7bA7DGtTM9h3OIdGdaNUWVVERKqEYD6/FUR8WLQxjTGz\n1nvN0XBFgGJ7JfJzYMVj8O0rcOlMaD+8/BoqIiJSCQXz+a2hmSLsDkPKws0+J4q6jqUs3Ox7mCbt\nR3i9L3z7svPs3d+VX0NFRESqAa2aKWJtaobHcExRhQuK9WzdwHnQXgCrnocvJ4OjAGo3hItehlMH\nV0yjRUREqigFkSICLRTmPu/gdudGdbvWOR+fNhSGvAC148ungSIiItWIgkgRQRcUy0h1hpDIWLjg\naej4D7BoQqmIiEggFESKCKSgWJOYsOMFxU7uDxc84xyGiW1akU0VERGp8jRZtYjiC4oZLrKu4ouw\ncdgO7z7+RPfRCiEiIiKloCDig6+CYvU4zPRar/JixKvUOrrbuTxXREREToiGZvwYlJzEgHaJrE3N\nwLJ1MV1+fJiIY/udJdr73Atn3xHqJoqIiFR5CiLFsOUfoeemFFj/tvNA/Kkwcho0Pj20DRMREakm\nFESKs2bq8RDS8xbnZnXh0aFtk4iISDWiIFKcs26DnWuh1+3Q6pxQt0ZERKTa0WTVwtJ+gvk3g8Pu\nfBweBaM+UggREREpJ+oRgb9LtL/wd4n2fGjUDnreHOpWiYiIVHsKIge3w9wbYdda5+O2Q6DjP0Pb\nJhERkRqi5gYRY+C7N+GLhyD/KETGwOCnoNNlKtEuIiJSQWpuEFl8P6yZ4vxzq94wbArUaxbaNomI\niNQwNXey6ulXQlQsDHoSrpyvECIiIhICNbdHJKEdjN0IUTGhbomIiEiNVXN7REAhREREJMRqdhAR\nERGRkFIQERERkZBREBEREZGQURARERGRkFEQERERkZBREBEREZGQURARERGRkKmRBc3sDsPa1Az2\nHc6hUd0oureKw2bV/jIiIiIVrcYFkUUb00hZuJm0zBz3saTYKCYMbceg5KQQtkxERKTmqVFDM4s2\npjFm1nqPEAKQnpnDmFnrWbQxLUQtExERqZlqTBCxOwwpCzdjfDznOpaycDN2h68zREREpDzUmCCy\nNjXDqyekMAOkZeawNjWj4holIiJSw9WYILLvsP8QUprzRERE5MTVmCDSqG5UmZ4nIiIiJ67GBJHu\nreJIio3C3yJdC87VM91bxVVks0RERGq0GhNEbFYLE4a2A/AKI67HE4a2Uz0RERGRClRjggjAoOQk\npo7qQmKs5/BLYmwUU0d1UR0RERGRClbjCpoNSk5iQLtEVVYVERGpBGpcEAHnME3P1g1C3QwREZEa\nr0YNzYiIiEjloiAiIiIiIaMgIiIiIiGjICIiIiIhoyAiIiIiIaMgIiIiIiGjICIiIiIhoyAiIiIi\nIaMgIiIiIiFTqSurGmMAyMrKCnFLREREJFCuz23X53hxKnUQOXz4MADNmjULcUtEREQkWIcPHyY2\nNrbYcywmkLgSIg6Hgz179lC3bl0slpq5KV1WVhbNmjVj586dxMTEhLo51Y7e3/Kj97Z86f0tX3p/\nT4wxhsOHD9O4cWOs1uJngVTqHhGr1UrTpk1D3YxKISYmRr8M5Ujvb/nRe1u+9P6WL72/pVdST4iL\nJquKiIhIyCiIiIiISMgoiFRykZGRTJgwgcjIyFA3pVrS+1t+9N6WL72/5Uvvb8Wp1JNVRUREpHpT\nj4iIiIiEjIKIiIiIhIyCiIiIiISMgoiIiIiEjIKIiIiIhIyCSBXxxx9/cO2119KqVSuio6Np3bo1\nEyZMIC8vL9RNqzYef/xxzjrrLGrVqkW9evVC3Zwqb8qUKbRq1YqoqCi6du3KN998E+omVQtff/01\nQ4cOpXHjxlgsFubNmxfqJlUbkyZNolu3btStW5dGjRoxfPhwfv3111A3q9pTEKkifvnlFxwOB9Om\nTWPTpk08//zzvPbaa9x///2hblq1kZeXx6WXXsqYMWNC3ZQq74MPPmDs2LE88MAD/PDDD5xzzjkM\nHjyYHTt2hLppVV52djadOnXilVdeCXVTqp2vvvqKm2++mTVr1rBkyRIKCgoYOHAg2dnZoW5ataY6\nIlXY008/zdSpU/n9999D3ZRqZebMmYwdO5ZDhw6FuilVVo8ePejSpQtTp051HzvttNMYPnw4kyZN\nCmHLqheLxcLcuXMZPnx4qJtSLe3fv59GjRrx1Vdf0bt371A3p9pSj0gVlpmZSVxcXKibIeIhLy+P\n77//noEDB3ocHzhwIN9++22IWiUSvMzMTAD9O1vOFESqqO3bt/Pyyy9z4403hropIh4OHDiA3W4n\nISHB43hCQgLp6ekhapVIcIwx3HHHHZx99tkkJyeHujnVmoJIiE2cOBGLxVLs13fffedxzZ49exg0\naBCXXnop1113XYhaXjWU5v2VsmGxWDweG2O8jolUVrfccgs//fQTs2fPDnVTqr2wUDegprvlllu4\n7LLLij2nZcuW7j/v2bOHfv360bNnT15//fVybl3VF+z7KycuPj4em83m1fuxb98+r14Skcro1ltv\nZcGCBXz99dc0bdo01M2p9hREQiw+Pp74+PiAzt29ezf9+vWja9euzJgxA6tVHVolCeb9lbIRERFB\n165dWbJkCSNGjHAfX7JkCcOGDQthy0SKZ4zh1ltvZe7cuXz55Ze0atUq1E2qERREqog9e/bQt29f\nmjdvzjPPPMP+/fvdzyUmJoawZdXHjh07yMjIYMeOHdjtdjZs2ABAmzZtqFOnTmgbV8XccccdXHnl\nlZxxxhnu3rsdO3ZoTlMZOHLkCNu2bXM/Tk1NZcOGDcTFxdG8efMQtqzqu/nmm3n//feZP38+devW\ndffqxcbGEh0dHeLWVWNGqoQZM2YYwOeXlI2rrrrK5/u7YsWKUDetSnr11VdNixYtTEREhOnSpYv5\n6quvQt2kamHFihU+f06vuuqqUDetyvP3b+yMGTNC3bRqTXVEREREJGQ0yUBERERCRkFEREREQkZB\nREREREJGQURERERCRkFEREREQkZBREREREJGQURERERCRkFEREREQkZBREREREJGQURERERCRkFE\nREREQub/Ac5dv6ujzszWAAAAAElFTkSuQmCC\n"
}
}
],
"source": [
"plt.plot(x,y,'o')\n",
"plt.plot(x,net(X).data,'--')\n",
"plt.title(f'net.weight={net.weight.data.reshape(-1)}');"
],
"id": "a1e1d8ca-19c1-466e-b90e-332d2075058b"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## E. Step4의 수정 – optimizer의 이용\n",
"\n",
"***기존코드의 에폭별분해***\n",
"\n",
"`-` 준비과정"
],
"id": "d1865719-e165-4178-8055-07930da8364a"
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# step1을 위한 사전준비\n",
"net = torch.nn.Linear(\n",
" in_features=2,\n",
" out_features=1,\n",
" bias=False\n",
")\n",
"net.weight.data = torch.tensor([[-5.0, 10.0]])\n",
"# step2를 위한 사전준비\n",
"loss_fn = torch.nn.MSELoss()"
],
"id": "801c4c0e-0cba-4fe0-92c1-65da50845c9f"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 에폭별분해\n",
"\n",
"(미분전) – step1~2 완료"
],
"id": "f1381972-cfe9-4ae8-a7da-243382962fa9"
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"yhat = net(X)\n",
"loss = loss_fn(yhat,y)"
],
"id": "55ef6c53-dbda-4204-b964-b663b37c0f3f"
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-5., 10.]])\n",
"미분값 = None"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "71366888-d58f-42f6-a378-abf4d8584c54"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(미분후, 업데이트 진행전) – step3 완료"
],
"id": "2500b9c5-14fb-481c-89a4-327c45d30b98"
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"loss.backward()"
],
"id": "7d0f070d-4a55-494d-9a3b-7c7f190bc660"
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-5., 10.]])\n",
"미분값 = tensor([[-13.4225, 11.8892]])"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "06ae294b-0678-462f-ba90-98ab70d491a0"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(업데이트 진행후) – step4 의 첫째줄 완료"
],
"id": "350bdfe1-7ddc-406a-be17-6f769e6ab360"
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"net.weight.data = net.weight.data - 0.1 * net.weight.grad"
],
"id": "a2e3e002-c7e4-4a36-b7e4-8738b488a601"
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-3.6578, 8.8111]])\n",
"미분값 = tensor([[-13.4225, 11.8892]])"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "c5cf3873-e9f5-408b-9951-9d5d954d6054"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(업데이트 완료 후 초기화까지 끝냄) – step4 의 두번째줄 완료"
],
"id": "d575966a-a9bf-4ef7-a773-0cae266fae94"
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"net.weight.grad = None"
],
"id": "43bcf154-b9b4-4153-8368-e9ae2592dc4c"
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-3.6578, 8.8111]])\n",
"미분값 = None"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "37f036dd-4fa6-4a69-a7a4-79e05b23d0d0"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***새로운코드의 에폭별분해***\n",
"\n",
"`-` 준비과정 – 옵티마이저라는 오브젝트를 셋팅한다!"
],
"id": "78e32367-d73f-4247-9770-e34e0c23c6cd"
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# step1을 위한 사전준비\n",
"net = torch.nn.Linear(\n",
" in_features=2,\n",
" out_features=1,\n",
" bias=False\n",
")\n",
"net.weight.data = torch.tensor([[-5.0, 10.0]])\n",
"# step2를 위한 사전준비\n",
"loss_fn = torch.nn.MSELoss()\n",
"# step3을 위한 사전준비 \n",
"optimizr = torch.optim.SGD(params=net.parameters(),lr=0.1)"
],
"id": "821d9ec0-7bab-45ce-9f8b-db0b60cfa351"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 에폭별분해\n",
"\n",
"(미분전) – step1~2 완료"
],
"id": "bb8d9837-a926-4e70-84b9-0d37a8c0548a"
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"yhat = net(X)\n",
"loss = loss_fn(yhat,y)"
],
"id": "8a8405ac-3629-4637-9d30-33e92aa94a3b"
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-5., 10.]])\n",
"미분값 = None"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "fb744ec3-3102-449a-bee4-9ac8ad8f2b79"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(미분후, 업데이트 진행전) – step3 완료"
],
"id": "80a63e8c-e107-4967-af16-26656454866d"
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"loss.backward()"
],
"id": "9c1264fd-f836-42af-8836-0280f2b742ea"
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-5., 10.]])\n",
"미분값 = tensor([[-13.4225, 11.8892]])"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "64cb7cb3-11ea-48b8-9afb-a18630205508"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(업데이트 진행후) – step4 의 첫째줄 완료"
],
"id": "2ef96347-9570-4578-a369-b9432f90e732"
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"#net.weight.data = net.weight.data - 0.1 * net.weight.grad\n",
"optimizr.step()"
],
"id": "6220984c-23f7-40ce-aa2c-6eab097f470b"
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-3.6578, 8.8111]])\n",
"미분값 = tensor([[-13.4225, 11.8892]])"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "056581d0-71c7-4ce6-9938-f0e232cba157"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(업데이트 완료 후 초기화까지 끝냄) – step4 의 두번째줄 완료"
],
"id": "f9ea1f2f-642b-4e48-b9f0-f506bffd8f74"
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"#net.weight.grad = None\n",
"optimizr.zero_grad()"
],
"id": "162c2046-abd9-4ead-818d-0d135c71ce0f"
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"파라메터 = tensor([[-3.6578, 8.8111]])\n",
"미분값 = None"
]
}
],
"source": [
"print(f'파라메터 = {net.weight.data}')\n",
"print(f'미분값 = {net.weight.grad}')"
],
"id": "1e06c04e-cc8f-4b22-bab3-bed2398f37e5"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***최종코드***\n",
"\n",
"`-` 학습"
],
"id": "5649744e-4060-4878-aa86-99014bcb5baf"
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# step1을 위한 사전준비\n",
"net = torch.nn.Linear(\n",
" in_features=2,\n",
" out_features=1,\n",
" bias=False\n",
")\n",
"net.weight.data = torch.tensor([[-5.0, 10.0]])\n",
"# step2를 위한 사전준비\n",
"loss_fn = torch.nn.MSELoss()\n",
"# step4를 위한 사전준비 \n",
"optimizr = torch.optim.SGD(net.parameters(),lr=0.1)\n",
"for epoc in range(30):\n",
" # step1: yhat \n",
" yhat = net(X)\n",
" # step2: loss\n",
" loss = loss_fn(yhat,y)\n",
" # step3: 미분\n",
" loss.backward()\n",
" # step4: update\n",
" optimizr.step()\n",
" optimizr.zero_grad()"
],
"id": "318baa0a-00cd-4766-912a-d58bd1f42ca5"
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`-` 결과확인"
],
"id": "8411a1ed-64ae-4377-9d85-a02202ca6505"
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGxCAYAAABfrt1aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\nbGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9h\nAAAPYQGoP6dpAABa0UlEQVR4nO3dd3iT5f7H8XeSbqCFMtqCjIIDyzyAIKIMBQSlCqjn6BF/6nEg\nLsCJE+oA13EcFUQ54kA5nqOADEVBUARBVERlqICV2bIqLRS6kvv3R0xomqRNStt0fF7X1Qvy5Hme\n3A2FfLjH97YYYwwiIiIiIWANdQNERESk7lIQERERkZBREBEREZGQURARERGRkFEQERERkZBREBER\nEZGQURARERGRkFEQERERkZBREBEREZGQURCRKvXuu+/y/PPPh7oZbm3atOGaa64p17X9+/enY8eO\nZZ63Z88eJk2axPr168v1Or5Ut/exIv3jH/9gyJAh7sdvvPEGFovF/XXgwAH3czNmzGD48OG0adOG\n6OhoTj75ZMaMGUNGRkbQr2uMoW/fvlgsFm699VaP53799VfuuusuunfvTsOGDYmPj6dPnz68//77\nPu+1fPlyBg0aRLNmzahfvz6dO3fmX//6F3a73eO8goICHn74YZKTk4mIiKB169bcd999HDt2LOj2\n+zNq1CgsFgvDhg0L+Jp169YxcOBA6tevT8OGDRk5ciS//fab13nPP/88I0eOJDk5GYvFQv/+/QO6\n/4MPPojFYvH596d///4ef96ur+I/EwDr16/3eL74n8VVV13F8OHDA/5+JcSMSBW68MILTevWrUPd\nDLd169aZrVu3luvafv36mQ4dOpR53jfffGMAM3PmzHK9ji/V7X2sKOvWrTNWq9V888037mMzZ840\ngJkzZ45ZvXq1KSwsdD/XvHlzc+WVV5p33nnHfP7552b69OnmpJNOMklJSSYzMzOo137xxRdNUlKS\nAcwtt9zi9Vz79u3N448/bj799FPz0UcfmauvvtoAJi0tzePcJUuWGKvVavr372/mzZtnlixZYm67\n7TYDmNtvv93j3JEjR5qoqCgzefJks2TJEvPII4+YiIgIk5qaGlTb/Vm4cKGpV6+eiY2NNRdeeGFA\n12zevNk0aNDAnHPOOWbRokXmgw8+MB06dDDNmzc3+/bt8zj3tNNOM926dTP/+Mc/TNOmTU2/fv3K\nvP/3339vIiMjTUJCgs+/P/369TNt27Y1q1ev9vjavHmzx3m5ublm9erV5uWXXzaA+d///ud+buvW\nrSYsLMx89tlnAX3PEloKIlKlatMHqIJIxcjNzXX//q9//as588wzPZ53BZH09HSva/fu3et1zPV+\nP/roowG3IT093dSvX9/MmTPHZxDZv3+/cTgcXtddeOGFJiYmxuTl5bmPXXnllSYyMtIcOXLE49zB\ngweb2NhY9+PVq1cbwPzzn//0OG/y5MkGMJ9++mnA7ffl0KFDpkWLFubZZ581rVu3DjiIXHbZZaZJ\nkyYmOzvbfez333834eHh5p577vE41263u3/foUOHMoNIYWGh6dq1q7n99tv9/v0J9O+Vy/Lly72C\niDHGDBs2zAwaNCjg+0joaGhG/Jo0aRIWi4WNGzdyxRVXEBcXR0JCAv/4xz/Izs72ONcYw9SpU+na\ntSvR0dE0atSISy+91KM7t3///ixatIjt27d7dKn6c/fddxMXF+fRnX3bbbdhsVh4+umn3ccOHjyI\n1WrlxRdfdB/Lycnhrrvucnd5t2jRgnHjxpGbm+vxGr6GZjZu3MjgwYOJiYmhadOm3HLLLSxatAiL\nxcLnn3/u1c5vvvmGc845h5iYGNq2bcsTTzyBw+EA4PPPP+eMM84A4Nprr3V/z5MmTfL7fZelrPex\noKCAxx57jPbt2xMZGUnTpk259tpr2b9/v9f3PmzYMBYvXky3bt2Ijo6mffv2vP766x7nHT161P1e\nRkVFER8fT48ePZg9e7bHefPnz6d3797ExMTQoEEDBg0axOrVqz3Ocf1MrVu3jksvvZRGjRrRrl07\nAPbu3cvcuXO56qqrAn4vmjVr5nWse/fu2Gw2du7cGfB9brzxRgYNGsSIESN8Pt+kSROfP6s9e/bk\n6NGjZGVluY+Fh4cTERFBdHS0x7kNGzYkKirK/XjVqlUAXHDBBR7nuYZQPvjgg4Db78udd95JUlIS\nt99+e8DXFBUVsXDhQi655BJiY2Pdx1u3bs2AAQOYO3eux/lWa3AfIU888QRZWVk8/vjjQV1XHldd\ndRVLly5l27Ztlf5acmIURKRMl1xyCaeeeioffPABEyZM4N1332X8+PEe54wePZpx48YxcOBA5s2b\nx9SpU9m4cSNnnXUWe/fuBWDq1Kn06dOHxMREVq9e7f7yZ+DAgeTk5LB27Vr3saVLlxIdHc2SJUvc\nxz777DOMMQwcOBBwfnD269ePN998k9tvv52PP/6Ye++9lzfeeIOLLroIU8qG0xkZGfTr149ffvmF\nadOm8dZbb3H48GGvOQMumZmZXHnllYwaNYr58+czdOhQ7rvvPmbNmgVAt27dmDlzJuAcF3d9z9df\nfz3gDHBFRUUBfbmU9j46HA4uvvhinnjiCf7+97+zaNEinnjiCZYsWUL//v295h788MMP3HnnnYwf\nP54PP/yQzp07c91117FixQr3OXfccQfTpk3j9ttvZ/Hixbz99ttcdtllHDx40H3Ou+++y8UXX0xs\nbCyzZ8/m3//+N3/88Qf9+/dn5cqVXu/byJEjOfnkk/nf//7HK6+8AsCnn35KYWEhAwYM8PvnE4gv\nvvgCu91Ohw4dAjp/xowZrF27lpdeeino11q+fDlNmzb1CEQ33XQTBQUF3H777ezZs4dDhw7x9ttv\nM3fuXO655x73eQUFBQBERkZ63NP1+Mcffwy6PS5Lly7lrbfeYsaMGdhstoCv27ZtG8eOHaNz585e\nz3Xu3JmtW7eSl5dXrjZt2rSJxx57jGnTplG/fv0y2xEfH09YWBjt2rXjgQceCHreTP/+/THG8NFH\nH5WrvVKFQtofI9XaxIkTDWCeeuopj+M333yziYqKcndV++ti3rlzp4mOjvbozg1mSCE3N9dERESY\nRx55xBhjzK5duwxg7r33XhMdHe3uDr/hhhtM8+bN3ddNmTLFa56BMca8//77BjAfffSR+1jr1q3N\n1Vdf7X589913G4vFYjZu3Ohx7fnnn28As3z5cvexfv36GcB8/fXXHuempKSY888/3/24tKEZ17BD\nIF/F+XsfZ8+ebQDzwQcfeBx3tWHq1Kke33tUVJTZvn27+9ixY8dMfHy8GT16tPtYx44dzfDhw71e\ny8Vut5vmzZubTp06eXTVHz582DRr1sycddZZ7mOun6mHH37Y6z5jxowx0dHRXkMgpQ3NlJSTk2NO\nP/1007JlS3P48OEyz9+1a5eJi4sz06dPdx/Dx9CML6+99poBzAsvvOD13KpVq0zz5s3df3Y2m83r\n79G8efMMYN5++22P4//+978NYE499dQy2+DL4cOHTZs2bcx9993nPhbo0MyqVasMYGbPnu31nGvI\naM+ePT6vLW1oxm63m169epkrrrjCfczfEMwDDzxgpk6dapYtW2YWLVpkbr31VhMWFmb69u3r8fPl\n4m9oxhhjWrRoYf72t7/5+3almgirirAjNdtFF13k8bhz587k5eWxb98+EhISWLhwIRaLhVGjRnn8\nzz0xMZEuXbr4HM4IRExMDL1792bp0qU89NBDLFmyhIYNG3L33XfzzDPPsHLlSs477zyWLl3q7g0B\nWLhwIR07dqRr164e7Tn//PPdwytDhw71+ZpffPEFHTt2JCUlxeP4FVdcwSeffOJ1fmJiIj179vQ4\n1rlz54BXyKSmpvLNN98EdG4gFi5cSMOGDUlNTfX43rt27UpiYiKff/45Y8aM8TjeqlUr9+OoqChO\nPfVUtm/f7j7Ws2dP3nnnHSZMmMCQIUPo1auXx7DDL7/8wp49exg3bpxHV339+vW55JJLmD59OkeP\nHiUmJsb93CWXXOLV9j179tC0adNSh+tKk5eXx8iRI9m+fTvLli0r83/d4Oy96NKlCzfccENQr/Xx\nxx9zyy23cOmll3Lbbbd5PPfdd98xYsQIevXqxfTp06lXrx7Lli3jwQcfJC8vj4ceegiAoUOHcvLJ\nJ3PvvfeSkJDAGWecwZo1a7j//vux2WxBD3u4TJgwgfDwcB5++OFyXQ+U+mdQnj+fZ599li1btjB/\n/vwyz33sscc8Hl9wwQW0adOGu+66iw8//NDv8JkvzZo1Y/fu3UG3V6qWgoiUqXHjxh6PXV3Hrq7S\nvXv3YowhISHB5/Vt27Yt92sPHDiQRx99lNzcXJYuXcq5555L48aN6d69O0uXLqVt27akp6eTlpbm\nvmbv3r1s3bqV8PBwn/csvvyzpIMHD5KcnOx13N/3VvK9Aef7E2g3cnx8PHFxcQGdG4i9e/dy6NAh\nIiIifD5f8nsPpP3/+te/OOmkk3jvvfd48skniYqK4vzzz+fpp5/mlFNOcQ/RJCUled2refPmOBwO\n/vjjD48g4uvcY8eOecyhCEZ+fj4jRoxg5cqVLFy4kF69epV5zfvvv8/ixYtZuXKl15yngoICDh06\nRL169bx+jj755BNGjhzJoEGDeOedd7w+mG+55RYSEhKYO3eue1hkwIABWK1WJk2axJVXXknbtm2J\niIjg448/5qqrrmLw4MEA1KtXj8mTJ/Poo4/SokWLoN+HtWvXMnXqVObMmUNeXp57GMXhcFBUVMSh\nQ4eIjo72Gg5ycf08FB92c8nKysJisdCwYcOg2rRjxw4efvhhnnjiCSIiIjh06BDgnI/icDg4dOgQ\nkZGRXnNqihs1ahR33XUXa9asCSqIREVFVehSaKkcCiJywlwT+b788kuf/8D5+0cvEOeddx4PPfQQ\nK1as4LPPPmPixInu459++qk7NJx33nke7YmOjvaadFn8eX8aN27sntNSXGZmZrm/h9K8+eabXHvt\ntQGda0qZ2+LSpEkTGjduzOLFi30+36BBg6DaB84Px7S0NNLS0ti7dy8ff/wxEyZMIDU1lZ9//tn9\n4eWrdseePXuwWq00atTI47iv/1U3adKEdevWBd2+/Px8hg8fzvLly/nwww89fhZKs2HDBoqKijjz\nzDO9nnvttdd47bXXmDt3rkc9ik8++YThw4fTr18/PvjgA5+Bb/369VxxxRVeczPOOOMMHA4Hmzdv\ndofzk08+mdWrV7N7926ysrJo164d2dnZjB07lr59+wbxLjht2rQJY4zPD+udO3fSqFEjnnvuOcaN\nG+fz+nbt2hEdHc1PP/3k9dxPP/3EySefHHRY/O233zh27Bhjx45l7NixXs83atSIsWPHBlQXJ9he\noqysLNq0aRPUNVL1FETkhA0bNownnniC3bt389e//rXUc4PpLQDnsEBsbCzPP/88mZmZDBo0CHD2\nlDz55JP897//JSUlhebNm3u0Z/LkyTRu3Nhn70Zp+vXrxzPPPMOmTZs8hmf+85//BHWf4kr2IBVX\n3qEZf+/jsGHD+M9//oPdbg+oVyBYCQkJXHPNNfzwww88//zzHD16lNNOO40WLVrw7rvvctddd7lD\nRm5uLh988IF7JU1Z2rdvz+zZs8nOzg64l8jVE7Js2TLmzJnD+eefH/D3cs011/gswDVgwACGDx/O\n2LFjPQpuffrppwwfPpyzzz6befPm+Q3YzZs359tvv8Vut3uEEdeE4pNOOsnrmhYtWrh7QB588EHq\n1avHddddF/D34jJkyBCWL1/udfzyyy8nOTmZKVOmcPLJJ/u9PiwsjNTUVObMmcNTTz3lDq47duxg\n+fLlXpPUA9G1a1efbRo3bhzZ2dnMnDnT53tS3JtvvgngMzT6U1RUxM6dO71WJUn1oyAiJ6xPnz7c\neOONXHvttXz77bf07duXevXqkZGRwcqVK+nUqZN7XkKnTp2YM2cO06ZNo3v37litVnr06AHg/gdy\n69at7nvbbDb69evHggULSE5Odi/17NOnD5GRkXz22WdeyxPHjRvHBx98QN++fRk/fjydO3fG4XCw\nY8cOPv30U+68806/H9Ljxo3j9ddfZ+jQoTzyyCMkJCTw7rvv8vPPPwPB/48Mjv8v85133uH000+n\nfv36NG/enObNm9O4cWOfwyNl8fc+Xn755bzzzjtccMEFjB07lp49exIeHs6uXbtYvnw5F198cVBd\n2wC9evVi2LBhdO7cmUaNGrF582befvttj4Dx1FNPceWVVzJs2DBGjx5Nfn4+Tz/9NIcOHeKJJ54I\n6HVcqxy+/vpr91BFWS699FI+/vhjHnjgARo3bsyaNWvcz8XGxnqEyZI/X23atPH7v+UWLVp4hJSV\nK1cyfPhwEhMTuf/++73mAKWkpLiXu44fP57bb7+d1NRURo8eTUxMDJ999hn//Oc/GThwIF26dHFf\n99RTT5GYmEirVq3Yu3cv//3vf5k3bx5vv/2219CMq62///673/cjMTGRxMREr+NRUVE0btzYK3j5\n+juXlpbGGWecwbBhw5gwYQJ5eXk8/PDDNGnShDvvvNPj+m+//dbdnpycHIwx7gqnZ5xxBq1bt6Zh\nw4Y+A1/Dhg0pKiryeO7LL7/k8ccfZ8SIEbRt25a8vDw+/vhjXn31Vc4991xSU1P9fu8l/fjjjxw9\nevSEV2FJFQjpVFmp1lwrHPbv3+9x3N8qhtdff9306tXL1KtXz0RHR5t27dqZ//u//zPffvut+5ys\nrCxz6aWXmoYNGxqLxeKxGqR169Y+V4K88MILBjA33HCDx/FBgwYZwMyfP9/rmiNHjpgHH3zQnHba\naSYiIsLExcWZTp06mfHjx3tU3Cy5asYYYzZs2GAGDhxooqKiTHx8vLnuuuvMm2++aQDzww8/uM/z\nN+v/6quv9vo+Zs+ebdq3b2/Cw8MNYCZOnOh1XTBKex8LCwvNM888Y7p06WKioqJM/fr1Tfv27c3o\n0aPNli1bPL53Xysp+vXr57H6YcKECaZHjx6mUaNGJjIy0rRt29aMHz/eHDhwwOO6efPmmV69epmo\nqChTr149c95555lVq1Z5nOPvZ8oY58qKNm3amJtvvtnjeGmrZihllVHJFRz+fr583bPkqhlXu/19\nFV9NZYwxH3zwgTn77LNNkyZNTL169UyHDh3Mo48+6lXkLC0tzbRr185ERkaahg0bmiFDhpgVK1b4\nbFeTJk28ir0Fyt+ftb/35NtvvzXnnXeeiYmJMbGxsWb48OE+KxC7qsv6+iqrgJ+vvz9btmwxF1xw\ngWnRooWJjIw0UVFRplOnTubxxx/3KBpXnL9VMw899JBp0qSJ3+uk+lAQEQnADTfcYOrXr2/y8/ND\n3ZRa7ZlnnjGNGjUyR48edR9zBZGtW7d6lHevSzZu3GgAs3DhwlA3pVopLCw0S5cu9QoiRUVFpk2b\nNub+++8PYeskUCpoJlLCI488wowZM1i2bBnz58/nxhtvZMaMGYwfP97vahSpGLfccgtxcXG8/PLL\nXs+dfPLJhIeHl7rqqbZavnw5vXv35sILLwx1U6qN9evXEx4e7rF032XWrFkcOXKEu+++OwQtk2BZ\njAlgKr5IHTJlyhTeeOMNdu3aRVFREaeccgrXX389Y8eOLXeNCwncypUr+f777931OQ4ePEh6err7\n+a5duxIWpultdd2xY8fYuHGj+3G7du3cq7NmzpxJixYtAp5rJKGlICIiIiIho6EZERERCRkFERER\nEQkZBREREREJmWo948vhcLBnzx4aNGigSYIiIiI1hDGGw4cP07x58zILQVbrILJnzx5atmwZ6maI\niIhIOezcubPMEv7VOoi49jnYuXOnu3yyiIiIVG85OTm0bNkyoI02q3UQcQ3HxMbGKoiIiIjUMIFM\nq9BkVREREQkZBREREREJGQURERERCRkFEREREQkZBREREREJGQURERERCRkFEREREQkZBREREREJ\nmWpd0ExEREQqh91hWJuexb7DeTRrEEXP5Hhs1qrf101BREREpI5ZvCGDtAWbyMjOcx9LiotiYmoK\nQzomVWlbNDQjIiJShyzekMGYWes8QghAZnYeY2atY/GGjCptj4KIiIhIHWF3GNIWbML4eM51LG3B\nJuwOX2dUDgURERGROmJtepZXT0hxBsjIzmNtelaVtUlBREREpI7Yd9h/CCnPeRVBQURERKSOaNYg\nqkLPqwgKIiIiInVEz+R4kuKi8LdI14Jz9UzP5Pgqa5OCiIiISB1hs1qYmJoC4BVGXI8npqZUaT0R\nBREREZE6ZEjHJKaN6kZinOfwS2JcFNNGdavyOiIqaCYiIlLHDOmYxKCURFVWFRERkdCwWS30btc4\n1M1QEBEREantqsu+Mr4oiIiIiNRi1WlfGV80WVVERKSWqm77yviiICIiIlILlbWvzHnW75jz4Zwq\n3VfGFw3NiIiI1EL+9pWpz1EeCpvF38I+Z3t+M779NZVe7VuFoIVOCiIiIiK1kK/9YnpaNvPP8Fdo\n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\n9CyvnpDiDJCRncfa9Kyqa5SIiEgdV2eCyL7D/kNIec4TERGRE1dngkizBlEVep6IiIicuDoTRHom\nx5MUF4W/RboWnKtneibHV2WzRERE6rQ6E0RsVgsTU1MAvMKI6/HE1BTVExEREalCdSaIAAzpmMS0\nUd1IjPMcfkmMi2LaqG6qIyIiIlLF6lxBsyEdkxiUkqjKqiIiItVAnQsi4Bym6d2ucaibISIiUufV\nqaEZERERqV4URERERCRkFEREREQkZBREREREJGQURERERCRkFEREREQkZBREREREJGQURERERCRk\nFEREREQkZKp1ZVVjDAA5OTkhbomIiIgEyvW57focL021DiKHDx8GoGXLliFuiYiIiATr8OHDxMXF\nlXqOxQQSV0LE4XCwZ88eGjRogMVSNzely8nJoWXLluzcuZPY2NhQN6fW0ftbefTeVi69v5VL7++J\nMcZw+PBhmjdvjtVa+iyQat0jYrVaOemkk0LdjGohNjZWfxkqkd7fyqP3tnLp/a1cen/Lr6yeEBdN\nVhUREZGQURARERGRkFEQqeYiIyOZOHEikZGRoW5KraT3t/Lova1cen8rl97fqlOtJ6uKiIhI7aYe\nEREREQkZBREREREJGQURERERCRkFEREREQkZBREREREJGQWRGuL333/nuuuuIzk5mejoaNq1a8fE\niRMpKCgIddNqjccff5yzzjqLmJgYGjZsGOrm1HhTp04lOTmZqKgounfvzpdffhnqJtUKK1asIDU1\nlebNm2OxWJg3b16om1RrTJkyhTPOOIMGDRrQrFkzhg8fzi+//BLqZtV6CiI1xM8//4zD4WD69Ols\n3LiR5557jldeeYX7778/1E2rNQoKCrjssssYM2ZMqJtS47333nuMGzeOBx54gO+//55zzjmHoUOH\nsmPHjlA3rcbLzc2lS5cuvPTSS6FuSq3zxRdfcMstt7BmzRqWLFlCUVERgwcPJjc3N9RNq9VUR6QG\ne/rpp5k2bRq//fZbqJtSq7zxxhuMGzeOQ4cOhbopNVavXr3o1q0b06ZNcx87/fTTGT58OFOmTAlh\ny2oXi8XC3LlzGT58eKibUivt37+fZs2a8cUXX9C3b99QN6fWUo9IDZadnU18fHyomyHioaCggO++\n+47Bgwd7HB88eDBfffVViFolErzs7GwA/TtbyRREaqht27bx4osvctNNN4W6KSIeDhw4gN1uJyEh\nweN4QkICmZmZIWqVSHCMMdxxxx2cffbZdOzYMdTNqdUUREJs0qRJWCyWUr++/fZbj2v27NnDkCFD\nuOyyy7j++utD1PKaoTzvr1QMi8Xi8dgY43VMpLq69dZb+fHHH5k9e3aom1LrhYW6AXXdrbfeyuWX\nX17qOW3atHH/fs+ePQwYMIDevXvz6quvVnLrar5g3185cU2aNMFms3n1fuzbt8+rl0SkOrrtttuY\nP38+K1as4KSTTgp1c2o9BZEQa9KkCU2aNAno3N27dzNgwAC6d+/OzJkzsVrVoVWWYN5fqRgRERF0\n796dJUuWMGLECPfxJUuWcPHFF4ewZSKlM8Zw2223MXfuXD7//HOSk5ND3aQ6QUGkhtizZw/9+/en\nVatWPPPMM+zfv9/9XGJiYghbVnvs2LGDrKwsduzYgd1uZ/369QCcfPLJ1K9fP7SNq2HuuOMOrrrq\nKnr06OHuvduxY4fmNFWAI0eOsHXrVvfj9PR01q9fT3x8PK1atQphy2q+W265hXfffZcPP/yQBg0a\nuHv14uLiiI6ODnHrajEjNcLMmTMN4PNLKsbVV1/t8/1dvnx5qJtWI7388sumdevWJiIiwnTr1s18\n8cUXoW5SrbB8+XKfP6dXX311qJtW4/n7N3bmzJmhblqtpjoiIiIiEjKaZCAiIiIhoyAiIiIiIaMg\nIiIiIiGjICIiIiIhoyAiIiIiIaMgIiIiIiGjICIiIiIhoyAiIiIiIaMgIiIiIiGjICIiIiIhoyAi\nIiIiIfP/XzRyFlLC0UgAAAAASUVORK5CYII=\n"
}
}
],
"source": [
"plt.plot(x,y,'o')\n",
"plt.plot(x,yhat.data,'--')\n",
"plt.title(f'net.weight={net.weight.data.reshape(-1)}');"
],
"id": "ab5007a3-46a8-40a8-8436-955b8f308bef"
}
],
"nbformat": 4,
"nbformat_minor": 5,
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3 (ipykernel)",
"language": "python"
},
"language_info": {
"name": "python",
"codemirror_mode": {
"name": "ipython",
"version": "3"
},
"file_extension": ".py",
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
}
}