diff --git a/lab/10_Sieci_neuronowe.ipynb b/lab/10_Sieci_neuronowe.ipynb index 311bcae..4078570 100644 --- a/lab/10_Sieci_neuronowe.ipynb +++ b/lab/10_Sieci_neuronowe.ipynb @@ -45,7 +45,7 @@ "source": [ "### Część zaawansowana (3 punkty)\n", "\n", - "Zastosuj poniższą implementację sieci neuronowej do klasyfikacji binarnej zbioru wygenerowanego za pomocą wybranej funkcji [sklearn.datasets](http://scikit-learn.org/stable/modules/classes.html#samples-generator). Ustal rozmiary warstw wejściowej ($n \\gt 2$) i ukrytej, dobierz odpowiednie parametry sieci (parametr $\\alpha$, liczba epok, wielkość warstwy ukrytej). Podaj skuteczność klasyfikacji." + "Zastosuj poniższą implementację sieci neuronowej do klasyfikacji binarnej zbioru wygenerowanego za pomocą wybranej funkcji [sklearn.datasets](http://scikit-learn.org/stable/modules/classes.html#samples-generator). Ustal rozmiary warstw wejściowej i wyjściowej, dobierz odpowiednie parametry sieci (parametr $\\alpha$, liczba epok, wielkość warstwy ukrytej). Podaj skuteczność klasyfikacji." ] }, { @@ -157,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": { "jupyter": { "outputs_hidden": false @@ -184,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": { "jupyter": { "outputs_hidden": false @@ -225,6 +225,49 @@ "visualize(X, y, model)" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost after iteration 0: 0.6739\n", + "Cost after iteration 1000: 0.3618\n", + "Cost after iteration 2000: 0.3618\n", + "Cost after iteration 3000: 0.3618\n", + "Cost after iteration 4000: 0.3618\n", + "Cost after iteration 5000: 0.3618\n", + "Cost after iteration 6000: 0.3618\n", + "Cost after iteration 7000: 0.3618\n", + "Cost after iteration 8000: 0.3618\n", + "Cost after iteration 9000: 0.3618\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eZxkZ13v//4+59TSVb1Pz57JZJIMCUmQRQg3gIIIioiiBAT5EQW5F1G496XAzQUV+XmVK+6iQDDIIuoFUS9clgiKyCKLLCGBrGSbLLP39N5d2znP9/7xnKqu5Zzuqu7qZWbO+/WaZKbqdJ1T1d2f8zzf5fMVVSUlJSUl5dzHbPUFpKSkpKRsDqngp6SkpJwnpIKfkpKScp6QCn5KSkrKeUIq+CkpKSnnCf5WX8BKZM2ADvjDW30ZKSkpKWcNc7VTk6q6M+65bS34A/4wT9n14q2+jJSUlJSzhk8f/fMHk55LQzopKSkp5wmp4KekpKScJ6SCn5KSknKekAp+SkpKynlCKvgpKSkp5wmp4KekpKScJ6SCn5KSknKekAp+SkpKynlCKvgpKSkp5wmp4KekpKScJ6SCn5KSknKekAp+SkpKynlCKvgpKSkp5wmp4KekpKScJ6SCn5KSknKekAp+SkpKynlCXwRfRN4nIqdE5LaE558hIrMickv05zf7cd6UlJSUlO7p18SrDwDvAD64wjFfUtXn9el8KSkpKSk90pcVvqp+EZjqx2ulpKSkpGwMmxnDv0ZEbhWRfxKRK5MOEpFXicg3ReSbVVvaxMtLSUlJObfZrCHmNwMHVXVBRJ4LfAw4HHegqt4I3Agwkt2tm3R9KSkpKec8m7LCV9U5VV2I/n4TkBGRic04d0pKSkqKY1MEX0T2iIhEf786Ou+ZzTh3SkpKSoqjLyEdEfkQ8AxgQkQeAd4CZABU9d3AC4FfEpEAKAEvUdU0XJOSkpKyifRF8FX1Z1d5/h24ss2UlJSUlC0i7bRNOa9Ra9FaDbV2qy8lJWXD2awqnZSUROrRvSjNs2nntHPz6OIiiIAqMjCAGR3Z1OtISdlMUsFP2TI0DLGzc2i5DIDk85iRYcTzNvzcdnERXVqKLsTdcLRUwhrBGxnZ8POnpGwFqeCnbAmqSjh5BsJw+bFymbBWxdu1q++r7IFCwDU/dJLhkRq3fmOce75Uagh9y3UtldDh4XSVn3JOkgp+ypag5TLExc2touUyMjDQt3NddtUMv/2ObyACfsZiQ+Hay68isDGinhaPpZzDpEnblK0hCOPFVRWCoG+nMUZ58x/dTHEwpFAMyWaV/IDlsscvxX+B56Wr+5RzllTwU7YG33fJ0nZE3HMxaBBgSyW0UqXbNo7DV8ySy4Utj9Wqwsv/x3H8bOcOw6Tx+5RzmDSkk7IlSD4HxrTE8AEwBsnnWx5SVezMLFoqgevXBmPwJnasmuA1nlK/NVRKwg1v3s9n/3EMG0JhyDIfRL8Cvo83PIRks315fykp25FU8FM2DK3V0CBAfB/JZFqeExG8iR3xVTptK3+7tISWI+dUjf4ThoRT0/g7V7Zk+t5tI9goVv97r72Qb3xumFrFbWznpw0QrfKDIH7HkZKyzTl27SEAPvj6Pwbg0weTj00FP6XvqLWEZ6YgqAGuxp1sFm/HeIuYi+fhjY+t/nqLSxAXwanV0DBccZUfhoa3velx/PIbvsvXm8S+A2sJp6bxdu1ccwx/K/oJUs5f3vaVj/b8Nangp/QdOzcHtVr0r0ipq1Xs3NzaatyT4vVRw9Rq3PIfE7zuuieBzq18oLVupd+2G1n18qo1wtnZxnuWwgBmeBgxaYospb/cff1BXvD0r3Pd2FfW9PWp4Kf0FVVFl+IH1+hSCdYg+JLPu47YjicEumzSml8qEFbnVz+wx7JMDULCM2davk6XSoRBiD+xo6fXSkmJo3TVft5+Y3+syFLBT9k81ljjboYGCcvl1gSvCGZstOvwiRgDAwNQWmWKWo+re7u4GP++qlW0VuvIXaSkdMOVnzoJsOaVfBKp4Kf0FRFxotkI6TQ9l8ut7TWNwds5gV0qQbUCno8pFpCE8s3E18nlXKVPAr3cQOpozPt0JxOXX0gFP6VLjl17CH3WNH/92Pdv2DlSwU/pO97oiLNNaF75imBGhtf8mmIM3mARKK75NYxnCJPi/vkcpq0ctKvrymbRarXzCdWeb0gp5ydXfupk31fySaQ/kSl9RzIZvF07sYtLrlInk0HyA2ilgl1cQrJZJJ/b/GqWbBaMQNgp+N7Q0Jpe0hQLhDFhHcnnUsFPieXu6w8yeGh2Q1fySaQ/kSkbgnge3rATUVupYicnl10pl5bA9/B2TCCmO9FXq2itiiCQzazpZiEieDt2uJLRJh8fGR5ec+hFPM+Fm2bn0EoFRJBiETM02PVraN1OIkpCp2Wd5x6lq/YzfVm2USu/VaSCn7JhqLWEMzNQrrQ9oVALsIsLXa2s7VIJOzu7/IAI3vhYR1dss91CkmiK7+Pt2ukE1lrIZtctsOL7eDvGY5/TIMAuLEYJXB8zONiy8reVCnZ6ZnmHYIx7b2ns/5zg6A2jW7KSTyIV/JQNI5yagmpCUpOoTHMVwdcgwM7MtD2ohGem8Pbsboh1uLiIzi84ETcGGRrEK8bH+xuJ5Q1Gq7WWkk2t1QhLZbwdO5Bsxs0DmJpuDQeFoXtvu/tvEZ2yORy79tCWr+STSAX/LESDALu0BGGI5HLIwMC2Ewet1WIrdVro4prtUoKrJWDn5qNqmABK5aYnLDo7RxiGbkXd1AClQYiGkd3DBg9aCWdnOxPEqoSzs/g7J9x7S3AM1XIFGeg9iZyyNfSzVn4jSQX/LMOWy25VGKHlCiwsOiOxLe7stOWK67INw6gLduXjpdCF533SrFnV+Gas5kMWFgkXFpGBPDIygk7PNOLsqCKFQqx3T99IuuHVai78FCa/N2wY/1zKtuHu6w/y0Z/6062+jJ5IBf8sQlVdvLf1QQgC7OISXg+Jwn5jy2Xs9PSyyK/WZJXLYhJCLs1IPo+WyusaTKKlMlqtLTduNSWPre/hDW7Q55ZUAiqCiCC5rOsLiDkmde3cnpwtK/kk+iL4IvI+4HnAKVW9KuZ5Ad4OPBdYAl6uqjf349znFbXkwSBaKsEmCL4GAVoLEN9rSSzaublVV/R1zNhY12WZksu5eHtcrXsvtNswR+jCIqwg+KqKViro4hKqigzkMYVCd9deKMTuQqRQcP/P58FfbN0JCEgunyZttxmbWSu/kfRrhf8B4B3ABxOe/zHgcPTnycAN0f9TemElkemyvHGt1HcXWi5H16HgZ5wDpjFuglU3eB6S8bsPo3STC1gPq+wc7Ny8KyNtSbyWXOJ1lfdghoewYbj8mak6C+ioXLVhEb2wGHn9i+sg7uN4x5S1cezaQzz7F752Toh8M30RfFX9oohctMIhzwc+qK5u7msiMioie1X1eD/Of97ge+DFiKtIV+GR9WAXFhq+9Q2RrNWwM7PO4tgzyTHpZupVKF3YEDdsljdwzuxKoRMNgs4VelRS2s3cXYnKRzUMl+cCtCWKRcSF4rYwHJeyzFosh88mNiuGvx94uOnfj0SPdQi+iLwKeBVA3ltb9+O5ihOQ8VbbAlVXpZPPuzK/lgaggqtSiYRVVdFSCbtUcjHkYhGT787fRhfjq2W0XHahjsFBdHYV++E61rpV+ypxai33GLvP5zH5vKvZb+98LRbRpcXWsJMIZtjZPai1LhGsilgLfsZZJsTF4aMqGrpciYvnbXhFUMraOXrDKD9y4d3n3Go+js0S/LilXOxvsqreCNwIMJLdvXFLu7MU8X283bvQShVs6GwKfN+thk9PLle1qKLzC9ha4FaZqq4mPKqLV0CrVbRQwOvG42Yl4VXFKxYJFXR+3h0r4v4kVNmotbE/FC10s2NoplzGlsvI0CAEgUvUeh5maBCTy6GFARc+CQIkm8EUB8EI4Zkpd5NsRgRW8tZJve7PWkpX7WfqNYvbqiFqs9gswX8EOND07wuAY5t07nMOEXEzYZuwi0ux4qrlcpRorXUmfaPSRh0srroClVxuOaTTjO83ykG9wSJaLDQE3y4uonMxHvSqSGb1KhTJZpMrXepD0GPi+7qw6BqX2kRZMhm8sdGWx4LTk/E5AlUolxIT0aZYWPX6U7YX50ridT1sluB/HHitiHwYl6ydTeP3fSapikXEzZZNCo+IoJVKo3IkCTM8RFipdDhgeqOtA02kvrIHTKFAuLjU4WMvxSLidbFCzmacG2Xz6jvqkvV2jLv4fgJaq61qx6y1YOWEsAIZ3+00mt63GRlJjdHOEu6+3g14Pdvq5TeKfpVlfgh4BjAhIo8AbwEyAKr6buAmXEnmvbiyzFf047wpTfg+tIclIsT3UbPCCj5aCau1znO+UnGhkGKhUR7oPGh2YZcWXVjI9zDF4orC1/CxX1xyNxzjksvd2hCLCGZ8zA0xj6ZoycCAuy4RjBGSgj7dVAFpo0FshXCVVRdCq1ZRVUxuC1w+U3piO1sbbDX9qtL52VWeV+A1/ThXSitqNSr7SzjA95FMBlNwfjNxSC63nANoWo2HS0uYsVFMlJwUz/RsIyzGrKsKRUScJ05bFdKjrpzh2hd/j9//rxdQKbXdzIzpyitHMn5XDWJ2ZrYxOCXMZvBGRra8Tl41+r6HobOf7oMJ3NnM+ZR4XQ/pvnQDqf9SNpKHkZWAnZtHS0suZJDNRgLS+7dCazVXseNO5v7ftGKVfB4ThVwkk0FGR1oraURcHb0I4fxCbHOSnZlF8vl1iYkGwXLlUD6/bgsIP2P5n3/+TYaGAx68O8uH3r6bTFZRhWrNh5Hx7hqjPM81RyV0u2KMs0Fozn1U3Wfu7dq5ZZU3Gobu5qy6nCD3PdcbcB4lk49dewggXc33QCr4G8Ry1UzohF2EcH7eDd0OmgWkSjg52bOAqCphu9OiewKGh/CKxQ7R8woFND/gfOWjWHijZDMuIVsnCNbsLhnOzaMLC+4fAszOYcbGui4HjeP7r5nEGPe+/79fPcWPXzfFbV8vUhgKeODIBO97+56uX8uMDGMzvqu3D60TTyOu2zWX7bSyAFDFLi2teWjKegmnZ1oT9HW76fl5vDUMiT/b2G6Ww2cTqeBvEHZ+vnXFXBfmIMYeYS0CEgTJBlulMpJgFyBG4pOZSZ269RXkGtBqFV1caHrA/cdOTyMxVTTdUigGLZc0OhHwtOc6v/ypmd4ELylkBM6HP5E+df9qpeoWAkHgQm9DQ0g2+eaqVhMT9Foqwzko+Fs5IepcIxX8DUJLK6yY41iTgEQWBx0nX35MrV1u3cf5uJhBJ252acl5yVjrunjj8P01V6TYpeSyRq1U1mwhcOs3xvH9zhcuLXl89fO71/SacbgwW8Ib6KKsdDXaDee0UiGsVvHGx5Fc0uuv3A9xrlC6aj/AWW1Uth1JBX+70GvIpF6HHue0GOUKGs1WTTFonZ935ZUZH5q7Z5vj1PXlczR9ac1skABNTeb58Hsv5mdecT+1KsxN+QyNWe69a4Svf2lX384jmYwT9vYVdeR5s17sbIzhnCrh3Bz+zon4a6onpGMWCOeCB8/ZaDl8NpEK/hpRVbcyFhM7l1UKheXYdcsTMSItglmlDr7zZQRvbMxNlWpO2Gb8hq+OVirxpma1WnLdfjRQxfheS4x/TWSzUIoJi6iuWiO/Gh9+7yXc9P4h5k6GGE+x1qDFIUyhf5UqGoSYoUFsqezeR3TdZmS4q3CU1mqEs3Pus446d8UzoLgVfIKD52q7PW9sdDlpC1HewTRM2c4m0sTr5pIK/hqw5TJ2ZraROJOBvGvGaRIBMzRIWK24lXOT1YDZMe6sduuVIdks3ujImio+JJfF27ULLZXQMERyWTcBq56IrVbjV9krrbwrFbRSwdYrfNYg+M5Zc9r5zcRdd5eCuRJ2ZpbpkgWEMIiucWYexMesc1KUWusS4nWhBmRoCG+we4M6DcMOzyNKpeVxAStM8lrNtqFhrxF1UUsm46yWwxBbq23KNK9+cK4blW1HUsHvEa3WWiZOgYvXW6stg6xFBG/HDqjWnK2B5y17wI+OuD99QDyDJAiReB6asKNYLdyi5TLhlMWf2NHzNdn5+Xix9303oHudXapqbSMn0XHuhfl1C35D7GHZFnl+Huv7XVcX2YXFVf2HkkhKuLccY0yjO7rhKtpk9rbh07zWwLlqOXw2kQp+j9i4MA0ufKJh2LKyEhHIZVdIwG0sMjAAcV42Ii7cktCZ26BadcNOeuwRSHLWJAhcWep6UU3MV9cN11zX8JITQd/HFIpIUmK6+aXDMD7cpYpdXOjeXbTbJHzdVrq+kygWes4P2JnZzhvU0hJhtIuQfM7tQLdg1X+2T4g610gFv0c0rqwS3C9sGPZH0PqEGIM3scOtWOvxYt/HGxsD32vpII1/AXE3sV6bwja6WsQYkhRfspnOxiQqhItLq1S/RNTFN+499ODeKRnfhdRWPS6L2TniwoOe1/OKvNFpvdIx5QphNer12KTGrNSobHuSCn6PSDYbL/qqrnJmmyGZDN6unZGQ0bLK88ZG0dER1/kbZ7uguqYOYHJZqMSI3XqTwBEiggwPo7Oz7U9ghoZcD0S7c6gq4czM6oNXVni/vezUTLFIuJTQwdt0vVIoOBFeqxBrlzcha9FSGdlAl8+0wmb7s/0UaptjBgcJY1rxpVjctm3tErXeJz1nBotu+9/+ngYGeuv+DUNQxQwPY5sTlu5Efe0C9YoFrGewkSWEZLOuaSnjJyaLCcPGSjoJEUGGhtD5tpJJYzCDg8sGc0EN/AymMBD7fRffx9uxg3B2tm1mbZP1RWFgzeE+VU2+USdgy+W+2zqnK/mzi1Twe0R8zzlAzs27skfjkqa9llVuJ8SLeU/FQtdjEzUMXbt/teoiLWIwI8NoEKLVKpLxMcXBrmLovWCiCVedb2iFFXwXOwxvsIjN+C5fE1pXihklxsNTp5d3D1ImnJ/H2zkRm4iWbAZ/54Qr4QUak7LUveZ6kteNJG0vxOSZ1kJqbXD2kgr+GpCo2uRcYq3vyTV3TS1bRiigFjs7izcxgWxAbXhdQJNCM64HYr4zxJ/Ldr0LM7kcpq1XIJya6vSwAcLZWfwdydVMjesUaTTFrQet1qCWIPbGJE4ZA9bsAZRaDp8bpIKfsj5qQXwDkYJdXMQbHe18bo1oGLpEc1RdJPm8Kz1sW7GawSK2PvSlLraet+5rSQwVVZxX/maVQGpQIzFpnctCJhM/aQySm71iSFfy5x6p4KesC00ycMN1qvbtPKqtM3uJegVqtY5ErBv2PtYY7SheH7qG3Qt3XYG0Y2eZl/6Xe3nCNZPMz2b4P39ziM9/ei/Jgwt6uAxvhV9b38fkcoTEl+Ou1uGcTog6t0kFP2VdSCaTKILd2CdkcyGFYsDsdBbVZDFM9Ky31hmxxcTyZR3Gb3HIQL4xeav98eabyeh4hT/72y8zOBTgZ5Rde8u89tdu58ChBf76hket/0KymU6bbWhYdIjnuWstt42k9L3YzymtlT9/SAU/ZV2I5yHFQmezlTErVoRkcyG//D/u4Ok/6kYbz89leNfbHs3XvhDvZa9BkGwTkdQb0WfM8DBhreb8iep2GZ6Haas++smXPEihGOJnlq93oBDy0y87wkf/9iIW5tbXiCcieBM7XHirXoMf3XDC05NIsYCMjCC5shtur+r8kQaXZyRsR8thAUaNx5B41LCcCUOqK7mDpvRMKvjbAFV1pXvGbMlwbHWjolyjkGd6nkplhofRTAa7uAhWXWfn4OCKr/G6//87XP0Dp8nmXIhmx84K//13vsOv/3KOu77bmTwWP5NsE7FJn5kYgxkaxs7Oulh4Qu/FY594pvG+mgmqhkOH5/nut3q3q4i7Fm98DBuG2OZQlyo6vwC1Gt74eEv12GYblXlAXgyBKpVVhNsAl/g5MiJ4Iqgaxo3PQ0GV+W57DVJWJRX8LcaWSq41HhoCsh6/GY2Sct2W3rnJWVNuMHndsmB2Dm9iR9dzWyVqIFqtNFVV0UqFvF/Glit4XusvcjZnedHL7+e3X//9necYyMP8HIRtwuEZ8DzCmVkXr89k3Ep2A24CGgSRf33TNZTLhNO2pUrnxNECh6+c7Sj39zKWyZN5wqUlJ8rWQiaDNzy84tCTFa8pIdSl5Urj89gKk7Jdxmen57thb0BJLQ8GVZKyOjuMT1YEU7eYEEGAC/wsd9Z6nC2Rksj27BQ6T9BaDTsz02QBAAQB4Zmp5drt+rHVKnZ+Abu4hMaU3WmtRnDyFGH0Jzg9mWwD0YRdXFoWe4jKKt34xPZrWA9u5ONp7PQMS6dK/PHrLuAXnnY5U6eWhdkY2Hcg3ofHhTEmGNzpYTxFzLJLqZ0849wnazXnIXN6sitbgxWvNwyxiwsMeaeZGJ1G1RIuLMSHlSrVls/6o397EbVq669WtSrcc/sIj9yl6EzTDqFaJTwz2b33TjvN37smwpzhJW/+6paI/YjxmPB8TLRaNyIMiOGAnxzKGjFeQ+ybESC/jQzgznZSwd9CXHw17gnbaKqpz64NJ89g5+exc3OEJ0+hTdYFaq2z4m0uuYsGnK8m2hrTYdu4hj5W2djZueXYN1Be9Jg8nuHP37i/cUwQwB3fiS+dzOZCfvfGb/G3X7uFf7zrdj76vdt4x6fuQBbnOq9f1fnQrxGtVNHJU3jlWaYfDpg5ssglux5AKgm+QyItFUn33jXCH/zG9zEzlaVcMlSrhlu/voPffv3j3cq+44RusP2aSNjJDHg1xi9YxRxvg5gwHl6bSBsRimISQwo2IeQjgF3DuiMvwgEvw2E/xwEvQ26DbhoZ5KwS0b7se0XkOcDbcWG7v1TVt7U9/wzg/wIPRA/9H1X9n/0491nNCjXRaq2rtC6XG3Xn7omo2WdqCm/PbkTEuUImJDS1XF7jJCQl/m60NuIMvsLA8B//MuLCzwo2FAaHAp71vEf4wj/vpVZdjom87Bfv4fLHzJDLL+9uDl68gK3Ua9LbqNXWVBuvqujsFDYEG7pf5fKSx/135tGwHqDo+KIOz6GvfWEPX//SbnbtLbG44DM/m+DBVH+JNa7wL/+HRe5+AdimjZGXsew4WObCx8c7u2407WJfRwEPIYj5uTpjQ/JiWr7WqlJR7TlxWxDDIT/rmr5FyKowbDzuDyqU+rRrHTMeez0XhhNgxoYcC2vbPsW8bsEXEQ94J/Bs4BHgGyLycVW9o+3QL6nq89Z7vnOKfA6qlU5dVUWybvtbr7KIpVpzRmVJLo6qqzo8SmEgvklHTJ+TofHvQRUW5jyKgyEi8LQfPsn3XzPJi15+P697+TUsLrhfqmf/5NEWsQfIZJWBQcvSfEy+QmRtdfdBgBGLbRP2oGoS3wPGxOZMrBVOHC20HJf4vezBdqK96/WhDxX5yPWXcPp+V3J52Q/O8OI/uH+ts+d7JqgIi9M+xfEAP6vM25CMkY4QjfMtjX//szakIMK48RtHhCgPBr2H5vZ5mZZz1/++z8tw3xper50hMR3nGDUeChwL+zPcfqPox2/01cC9qno/gIh8GHg+0C74KW2YQoFwcbE1dBK13/fidyLZDLqUUMGS8dFa4KpvYqpmTLFIWK64KqF6qSG4xHEfFUNy+dhVvmZylJYyDI+GeNGv+kAhZNfeEi98+f381TsuAyCTjb9xPe/nJvnIu3Z3aLGsx9so8W0nPNGlo2h9aImWOkN5pgu7g6R4/IWPXeQNn/kOpVkPL6tkBzanqkUV/uXt+/n8jftQC8aDZ/7yUX7kl48xkvWdkZ6I2zUBR1cR2+NhwGQYUjCusmdxjdU5STH/AelP8GVXlJ9oxogwZjyOb/NVfj8Efz/wcNO/HwGeHHPcNSJyK3AMeIOq3h73YiLyKuBVAHnv7JvR2Qv1RKRdXERLZTCCKRZbmmNMoYCtxSfmiCo7JJ8Hb6GzHt2Y5elcqs6KYLR1FKObzDWOVqtopeomaA3EO0CuBzMS1bBbu3xjEWH3ZTlGxjuFIJtTfuBZJxqC/80vT/CUHzpJc5OptXD1c8r8/XvzyzYK9fe5Vg8f38fLCEG1NXzj+TYapdgpJqa4+oSqxrEjw1iR5dyJMcjwUIdvDzhrA6DrWvmBkf7lXLrhC+/Zy7/9xT5qpeXFyb++Yz+5wRB+/iQ7jM+gMdRUmbRBbDilKIZx42EQZjVkxobMNnVv50QYNx4ZDPPR86sJqsXFltvp16eTWeHG4SNsZ8nvh+DH3U7b3/HNwEFVXRCR5wIfAw7HvZiq3gjcCDCS3b19P7k+IcY4M6uEFZ4M5N0A7fbpVFGFB9EMW29iB3Zhwd04wN0MyuWW74SWy9gZOkzSpN5yv87B4ishnoe3a6fLSdRqiJ9BBvKEWiFmBjwA1cryL9Zf/unlXPWEaQYKAfkBS6VsqNUM7/q9K/HGh9AwdPNdu5jn6l4jZPpMlvYfXxEhLO5gQE65iFhNMJ7ymP+0wB3fGmRpru21M5lVp2DVy1G1XFluSBseatz4mndSpav288Tfu/mssBz+3A2tYg9QLXl87p37edrPn+SUDTi1wiJ9p/HZ5fmNWHtRDWPG44FoJzAcVfbUnx9Uw4TxuS+osNLafzIMmPD8jnzAZNifBr0laxk2pmMHbGFbiz30R/AfAQ40/fsC3Cq+garONf39JhF5l4hMqOpkH85/TiMiSD7fmriNCKemG4lbMQZveBiGhwEIJidjQ85aLruE8BZ494uISyA3JZGnz+R54J4hLn10a916uWS46R8vbPx78uQAr3rBD/DDzzvKo66c5ch9g/zL/z3A3IzLdYjnrSr0xcEav/KW7/Kkp55GVZg+k+XPfucqbvn6ROuBfhY7tpfHXHWUCw/OcfDRVe64bTfVO3dDbcHdSOu9B0Mrr+5VFTs13TJQPlxYQEZH8JrCTmebr7wqLE3H9w4snFm5p2DEeEwYjwFpFU1PhAEMw2KYV8sFfrYldOJFtfnjxmfSJov3KRvgRyGW+j5tygacXuFreuGkrTFocpimogCryoltHr+H/gj+N4DDInIIOAq8BHhp8wEisgc4qaoqIlfjykHP9OHc5wUrjiGs1dx8WpxtrikxKlsAACAASURBVJ2fd9UgSRVAIi6Ru02GtQwOVxkZqzQSjPVd/23fHuemf7iw5dilxQyf+LuL1nyut/zJtzh8xRyZrKtA2r2vzJv/6GZ+5bqn8PCRVuEOQ49bbr2QW24FPh49aMAf681xU8vlFrFvPD47x7GXXM4H3/j2Nb+frUQEJg6VmHygswJs16UJM42BPZ7PuPETK3k8EUaMR05NbLmjiZ5fSfDBJU9PhjUyIlRVV9wR9EpFlftqFXZ7PgXjUVXL6TA4KzqC1/1br6oB8FrgM8CdwEdU9XYRebWIvDo67IXAbVEM/8+Al2g/u3rOZ6JP0VYqroGnUlndArfPg0jWw3WvvocdOyuN+0/dPWF4tIq1/UsaH7hogUsun+uwPPAzlue/9EjfztOOJow5zBdrvOnJf9W385TnPf7pDy/gbc94LH/4o4/hK3+zixWMTPvC83/zQTL51pNk8iE/+eYHY4/3cR21SWIP0Y4IdaGehOOSavbbCYFyn8W+TgXlobDGXbUy959F9g99qbtT1ZuAm9oee3fT398BpHZ8a6SbxK2dnYsN4bQgggwPbZpvezc87VknoxX3MsbAxYfnKRRrLC2uzXKgnV17SwSBgbZff9+H/Rd2PyawV+oVKu2fuAJ+QuVRrwQV4c9++kqmHs4RVNzN/BNvPch9Xxvmunfc25dzxPHoH5rhle+/m8/88QWcum+A3YdLPOf1D3Px1fFNZAUxq/6IKhCscJBV5UwPsXjBJYYFWNBubxXnLqmXzlmADOSRcsl119b9bhBMVDqpqzlGeh54biZr7EjALSQMk5t0VrJL7pX7vzdENkZgqxXhuzeP9+08dUpX7uMpY//Etz82QUBndY/na6Iw9sqtn9rBzLFlsQeolTzu+OwYJ+4ZYM/hFUKC6+TSa+a49O+7q8BO+gmt3xTBhWK8hPJXVWVJLXNNq2kfGDQeVpX5NkEviuFgm53DI0G15evPN1LB3+aotW6u6sgIJgyXZ862l04mDecwBn/3rs274IiBYoCgq67QP/uJ/fzUS4+0NFUFgXD7LWOUllb+8bzsqhme+dyjeL7yxX/ey3e+OU5Srfz0mTyf/eQ+nvncY+SjOvUwgNKSz6f+/sLYr+mVu68/yAue/nWuG/sKd/7bKB/8pcNRw1YzSrYY8oq/vBsv05/15r1fHaa61BmmE4GHvj24oYLfC0tqCVBEaUnGKnA8rDFnQ3Z7GUZNvOS3NzbVq3yaP8UjQZUltRjgoJ/tCB8d8LPcXSsn3nwMMGF8ho1HgKvsWTiHbhCp4G9TVNUNFV9cXK4vLxYww8MdIRkRQYpFd2yb6EuXg8j7xZ79S7zut77DZVc6B9B77hjhj97yGI4/En8dH37vJVz1hCkuftQ8nqcENWFhPsMfv+X7VjzPy37xe/z0y464VbvAM55znC98Zi9//tYrSRL9d73tSh64Z4if+tkHKQ4FfPPLE/z1uw8zO732ctS7rz8YOx3qi+/dQ63cKcLGV178B/dz6In9sz0Yu6CCnw0Jqq3nE6OM7F5/Z2k/eaBW5UI/S55l846j0ar7Ej9LXkzjZtCc5lPgjA2oRI8VxMQ2QB30s9xVKzNikvNUowlVPgY4nMnhs9wlXBDDqTBYMUk8YTx2ehk8oIpyPKht25h+KvjbFLuwiC5FseXoh1wXl7D1uv02zNAg1lrX0NN8gxjcGMHXIGjU/Es+h2QyZLIhf/jerzE8Vm2UWD7qqhn+8H3/wS/8xNOpVDp/CasVj+v/85O54rEzXHL5HCePDfDNr0w0fGzi2LN/iRdc17orGCiEPOM5x/nnj13A3bfHV9KoCjf9w0Fu+oeD63jnjtVcKE/cHd/pawPBy/RXDJ784lN8/i/2QZO2i7EMDIccftpsX8+1Xmoo9wUVMgieuKQqwIAIuSaxBxrhykW1nAhrLY1bYwm7gHrM3hB/2xfAS4gUjhu/RezBVQ3t9nymbBCb/N0Z2UDXdxI5hAv9LEeC6po7hTeSVPC3ERqGzggtCKLxdDHHLCzGNmmJCN7oCDo85Kp0PK8l5FNfLfUjYRsuLKJzTW6U8/PI4CBPf9E8uYGwpZ7e85zT5VN++AT/dtP+zhdzV8Udt45xx62dg0/ieNLTTsc+ns2FXP30U4mCvx5KV+1n6jWLXXe9VkvJN6y9lyWXLcaPJl+ZkT01Xvn+u/jQr17K4rSPWmHP4SWuu+EeVljobik1lFrTG80ldK+KCDWrHV26huSfZQMsWBvbbmuB+Rh7cYBhY2ItmhVny9Au4AItYt84f3STuL8Pvj39JhX8bYJWa4RnziSbazUO1BVdIMWYlhp7tRY7N7c8izWTwRsZWXHghlrrasdFkGy25VwahK1iX398YYF8tkwu31kLmB8I2bOvf3HkStnElmyGgVApdadwhw7Pccllcxx/pMDtt4wRtx5sNynrhYlDZY5+t7Mpy8tYhnd1NugUIkOuvAgKTNmQE22+LEdvL/DJ372Qh749SHE84BmvPsY1Lz2FCFzy5Hl+/cvf5syDOfycMrp3+4nNSlQSVsOhKqWY52ZtyFCMDXO9Gsfimq3GmspAQ3XGbksJ56ol/G4JxDp8eiTbLiXdwLaaVPA3AQ0CbDSZyOTzkMl0/FCF9UEoq+En1yfHEU5NN7z1AeeTf+YM3s6dSEw9vl0quRF+TXjj40guau6qJE8fuuVLBaplj4Fiq+iXSx733T3c9TXHkc2FDA7VmJnK8dXP7+YX33Bn57Vb4Yv/vHfF1/Ezljf/0c1c9fgp1DpxPXV8gDe9+upG124/hob86K8+wl+/5nCL9YCfD3nqdSfJ5Fu/z1mEQ01dpa6b1COD8FDovnen7s3zzhddSXXJBSsqiz6f/J2DzJ7I8mOvf8R9ncDERVvjgb9eSqqU1TJAawxfgemYhoI5tSyqpYiJRiJqI6lbl/PjYcC8tVH4R5ixwYoVOmdsyHBbqKhu0VyJ+d0MSN6NlbdhOAdSwd9wwqUlN+Go/u/FJTfzdXS0IdxqbdeDuM1I98KptVqr2DeeUOziIl7ba2kQuAlc7e9hagoZGnRJ4QS75d0HKrz6N06QL4TNpptUK+Li8l/e2fV1N+P7lv/y+jt59k8cBdzN471/ejlve9PjeOPv3oINBQR8X3nn265otSOO4SWvvJfHPGGqJf6//+Air/yr+9i9866WY8sLhk+97UJu/uhOwppw2TNm+Km3HGFsv/tMS3Nu+lau2PmZXPHMGa596/188q0HKc35GF956s+d4LnXP9xx7ETkJ9OMEWHIGDKhM+P6lz+/gFq5tbyzWvL44nv28sxXH4u9hrVgLdz5r2Pc/LEdeBnlSS86zaVPmdsUq+UjQZU9XqYRn59Xy/Ggltg49WBQZUgMw8YjRJm2YYcwL6hlYRWL8DpLajka1tjX5HNfVuXBIPkmeiqssbvNKtmqcrJPvj39RrZzw+tIdrc+ZdeLt/oy1oxaS3jiZOcTIpix0UZNfOJxdTwP8X3M0GDDJ78bbLmMnU7YOWSz+BOtw7TDuXl0offqkcJQyPu/fCdDY8vxe1WXSvj4hy/kf7/nUZQW17a2eO2v3cYP/dhyKSU4n53/df3juePWMb7/mkk83/Ktr06wMLf6Z/PXn/4c4xOdN0FV5fZaubFiU4U/f8GVHL29SBiVVopRiuM1XvGeu/nobx7i2J0FRODiJ8/xkj+6j5HdnaEaa6E065MfDBPLMC/2sxRjgu2hOj/4RbW87RmPZfJIp41BbjDgtf9wO3svX3/ITBX+5rWXcue/jUVlns5q+ZqXneQnfv2hdb/+2UJ9rGKodDV8Zcx47PJ8MghlVY6HtS1N2D7u4CPfUtUnxj23PQNN5whaqRK7NFJt8ccRY9wgkxhkaBB/9y68HeM9iT3gBnkn3NBjXyshmbUaz3rhFPmCtiRrRaBW9fjK5/auWezzAwE//OOtYu8et7zkP99Hacnn3/91D1/4zL6uxB4gP57sN9D8nXrw5kFO3F1oiD2AWqGy4HHDS67gkduK2MAQ1gz3fnWEd1x7ZayVgTFQHAtWrLkvqcXGfJ+E5dj2zkNl4gIIlQWP//0rl3D3F0cSX79b7v+PoSaxd1dQLXl8+YN7OP3A9mrY20gUF2LqdtLWtA25u1bhtlqZe4PKtqzOqZMK/kay4ja4rfNydNSVtEQ+8QiQy2IGu/da7ziD7yNx1r0izqK3/eF8Pv4GtQJmeIhLn6TkC/E/5AcOJe8YRJTLHzPN466eJJfv3AKPjlcTO3F37+1+RXvs2kNc+amTvO0rH6Wilc4B8aodnisnvleIvVfWyp7zxW/qAtZQWJr2+crf7OZ9r7yM37r6CbzjhVd0LcKTYRh1Fi+fMFRlxoaNBqFn/dejZPJxn7Fw/K5BPvCqR3HH59ZXnXTn58aiHEE72pcbSsrWk8bwNxDJJjT0iBst2PJQ3S++WoUwRDIZJLN+HxkzNuYcNKNRiZLLYUaGY62EJZdFstlYd8dYfB8zOMgD94xQLp3sWIkDHS6UdQ5eMs9v/dk3KQ4GqBU8X3nn717B55pKNydP5mOrcWwId922ugDFJV9PhDUGjcGoq7G2UbLvkbA1zLPz4lLsvc94NrZHIKgKn/idg42bwfypLB/4xSIv+r37ecJPrmwMW69N3+tlKGIIgTNhq53vwScscN277uGjb76I6aM52hcMtbLHJ956kCue2ZmD6Zb8kNuJhLW2MkMPcsXNHa6SsjGkK/wNRIyL1TdW7fXHC4XYCUcigsnlMIVCrNhrEGDLZTTo/pdPRPCGh/H37sHft9eFhhJm1Yo4fx4zOoLkcm5y1Pg4MjTUufIXGlOl/vWT+6mUvRaTzmpFeORIkTtv7Vx1Gs/y1nd9gx07KxSKIcUhN5Dktb92OxdduuwvEwSGD77rMOWmShdroVLx+Nu/6Jyfc/f1Bzl6wyhv+8pHEyttAuB7tQonwhrTYcDJMOB7tXKjAajOxVfPM3FRuaVJSozFzymZgc7P34bGCWXTyr9W8vjEbx/sKlJWUeWrt3v8+mv286ofOcwNbzzAmYdaf0aueOYMb/rSLYmvMbnOsMsTfuoMxou/0V/1I9Preu2U7UG6wt9gTD6P7N7lulJVXVdqj8PBG0M0KpXWMX5jo31ppGombkiJ5rJuLN/CglNcz8MMDTWSzkuLGV738mv4pevv4HFPPkMYCJ//zF7+8o8vJy6u9X1PnCKbCzss+X3f8pwXPMy7f/+KxmOf/MhBpiZz/Owr72PHrjJ3fXeUv3rno3jwPnez6bUhCohqtEOmVhh6JwKv/tAdfPQ3L+I7N+3AhsIl/2me57/lAd7/ny9n9oQQ1twb8HMhNjBozHtdmvUpzfoUx1au2rj3q8O89xcuI6gIag3H7yzwtQ/tIjsQcvipc/z4Gx9i1yVljIGhnTXmT3fmLIZ2rq/2fvxAhRf/wX383X+/BOMvC//Lb/weA8Obs8IXtv+YwLOZtEpng9FazXniVKtukHhxEFMY6K2WfmbWWSa0IYODeGud3bpGVmr6io5gleQFT3vWcf7bb9xGcbBTRL74L3v4vTc9btXr2MwJUaqN8bMALE77fPoPL+A7N+3AZJQnvfAUt31mnFP3deZFMvmQ3/7ON/GzK/+e/f4Pf1/s14PLdeSKIa//zHcY21/l3/9qN59868E2YzZlz+VLvO5T3113d21l0XDvV0YwvnLpNbMdfQMbxb6oJBPcTflEWIutwU9ZmZWqdNIV/iqsx5JAg4Bwsql7NupStWHYtVCraqzYA64ufpMFf/XPYfXP6fZvj5GJqVopLXn8xxfinT2PXXsIYM2dr+uhLSJHcSzg2rce4dq3Hmk8tveyEh9548UtjVaZgZBrXnpqVbGvlYXTMZOj6qgKtYrh8zfu46d/6whPfskpPvHWdodP4cyDeW75xA6e8FPrGyaXK1qufPbmhnD2ej5jxmvUsxvcDSCIbI9T+kMq+AmotdjZ2eWh4F1YErRj5+c7k5+q6OIiOlhc/1zZZjfBZk/8HrtxN5vpM3n+/gMXc+3PPdAI7ZSXDA/eN8i/f3ZPy7FJbpTbjcc//wzzkxk+8ycXoFawITzpRaf58TfFT39qxssoXtYSxLhr1glrhgdvdgnwB28ews8qbXlmaiWPb/7jznUL/mZTn1Pb7mNjRNjl+cz32ZPGRH+2Z2vUxpIKfgLhmSk3L7ZO3ZJg185Vh2XX0eoKQ43DsKu5siICmUzrtdSp2x3Uas5CoZ4drDd2xSSGtwv/+z2XcvstYzz32ocoDtX44j/v5XM37ScIDEdvGOUjj/sAE8YnK8Ki9TljgxUi7tuDH3zlCZ5y3UnmTmYp7qiRSyhVbcd4cPWLTvP1v9+ZKPpiLDsvdqWonp+8Y+iXx/5mstJvU1YMPv0RZwPs9zIMR2GjEDh2ng1ESQU/Bq3VIIgR2LolwXCX9ga+Fz9fVhW6vGkAeCPD7gbUvFuIqm9UtTVsVL/OqWmkh5vTVnDrN3Zw6zd2ULrKlWK+/QtuCuaQGC703c3KiFAQw7jnc+8Kgyu2C35WGT/Qu5/NT/7GgyxO+dz+2XFsgLOMaAqP+Tnlh37xOAAXPn4+VtizhZCrf+bUmq99vWQRJjyfvAgldcNDukm+BriYfceoGFU84LJMngDlaFBb1zCSA17WleQ2hY0O+FnuDyodbpznKqngx6BBQKJRba17yfEGhwirZzpeRvL5nsI5ks3i7ZxwHvlBgGQymMEi4nnOlC32TSh2aSnWO3+7ULpqP0/8vZu5bqy1hHJ/k5EYRNORVNnlZVomHp1L+Dnlunfey+zJDKfuHeA//m4nt316B2phZG+VF/6vB9h3hcvleD684j1385c//2hnYVETjKc89sfPcNWPbk355IAIh/xcw7a4oMqY8bg/qHSUvMZxIvKwaR9+IiII7mZy0M9yX5ev144bhdhpfyy4CVcPn6M/V+2kgh+DZDLJjUc9xPAll8WMjGLn5hrhFhkYwIz23rUovo8X93XWJl9rl6ZRm8lqlsMZJHaLXzcT2/ZxnXUysrvGyO4ah586R1C5n1rZkB8OO9ogDj1xgTd/7Wa++5kxSjM+lz51jn2PTvbZ32j2eZkWq2IRwaiyz8t05Qs/bUMCVedJE4Vx4vJQO4zP0TWIczZhgLpEg1fOF1LBj0F8H8nlXN17yxOCKfQ2QcoUBpCBvBNmY/pfN5/kryOCbKMYfreWw3aFEEC4wbtuH5c8HBBDGcuZMGiEkDIIeXH14WtZYa7penKKn0u+w+WHQp70wslNuRZwn8GE51EQQzkK2VSoT6zqFE0RodBDb+e8WuaDamP4ePuN34iQW+PvT1ltbP2YVWVRz/FVRBN9EXwReQ7wdlz+5S9V9W1tz0v0/HOBJeDlqnpzP869UZjxMez8giuJVHWr9eFhxOt9NSAiPcXse3rtTAYZyEcTspqEKMlHZxM5esNoTw1R4BbwdZ/z5u13qLriXNH1MiyGC3138xQRhtSww/jcF1SYMD6jxmt0GJTVciSonuubjRZyCJdkcghOePOqjBqvMcrPEp98XctntLI4r23XaoHTYcBE04Squof+6W1qZbwRrFvwRcQD3gk8G3gE+IaIfFxV72g67MeAw9GfJwM3RP/ftjhLgqFNr3NfC2Z0FC2VsItLgLqwUbG46aWZyzH59TVEPRxUOehnW1aHBhgUw8wGyGw2mkMqMSGJg14WX1rnnOYxXOBlebC9LvIcZo+XaRkrWP889nkZ7gkqTNmAHW2llVaVM2sQ0xA3sHzctIqzhTW9Xp1TNqCKMmF8fBEWbciJpl3c+UA/VvhXA/eq6v0AIvJh4PlAs+A/H/igukzM10RkVET2qurxPpz/vEdEnD9PYeXhHxtFv7teQ2DOWga81lX+sPHYg3KizyuynV6yt1CWzliyEXEJwJDE4RznGsWEcGROBAOcDAMyCMNNO6FZG3JqjbuyE2FARZ04eyIs2JB5GzJqfKpqmdeVgn/JzNiQmfO4e7cfgr8faB7j8widq/e4Y/YDHYIvIq8CXgWQ97bH6lqtdSETcF44622YOge4+w0X8sPydQ4feZjxz1ao/Ljpuu68Gya8zkYcT4Rx4/dd8AdkbbkVw+YKfhjAyXsK5IcCxi/Y3N1FiOIldFFnxQ3+eDiskQkDsiJU1K575TxtQ6ZtiACH/Cz7/Wyjds4C99UqqedOj/RD8ON+Ctq/C90c4x5UvRG4EZyXzvoubf00RhTWBWFGkdERvC1aTW8l9Zh8ed7jnS+6gmMP5zmyuJ9swfLJ/3Uhr/mH29l1SfLM215IynjE3WqHxDBqPCxuBddrnLeklrxKh+irKlXV2FV+Dd3UUMB3/mmMv3/jJY0a/T2XlXj5X9zNyJ7NKSecDAMX1om5MV7i53g4amCqodT6nNTeGSXSm88tqhzwu6sASlmmH0vVR4ADTf++ADi2hmO2HRqGy/No6w5agM7MonENVecgR28YbVgO1xOw//z2/Zy6f4DqogcI1SWPpRmfD73ukr6ddylBtNtnlh7wMhzws4xGXiwX+Vl2J4RokjgdBh0rdVUlQHkgqLjGoPr3XhWrrgloszh2Z4EP/eqllGZ9Kos+tbLH0dsK3Hjdo7saW9APzkSrbVVtGdQiUX5jv9/bNLZeGPO8WNuFATGxAubTjaPT+Uk/VvjfAA6LyCHgKPAS4KVtx3wceG0U338yMHs2xO8bPjoJz8lgbyWaZwvHrj2EPms6scLmlo9PtIz+A2fwdeyOIkuzHoWR9d8Mj4c1LhGDsLy6dlUVy2JTFMOQ8RqJvXqTzoTxmQrDrrf71UjY93kZBsRggekw4HgUf76nVmbM+AwaQ0UtZ8Kw6/F3/eDLf7WboG0oiQ0N00dzPPLdIge+b7Hv5/zm/5ngs3+2n7lTWfY+eomf+LUH4fsXGBRDLiakKbh4fvsNeS0MisGLkqr1Fsgkmp8bNR57o+QyOAvsE2Ea9Glm3YKvqoGIvBb4DG4n/j5VvV1EXh09/27gJlxJ5r24ssxXrPe8m8JKP7znWCt2TyZlK/wG9mtlVQ8LtFfOZDEMi2FOLUMmfoUHMGQMUz0k50qq3JcQHgiBSRswuUUZ2uljOTRmypbxlPnTnY2Aw2IYiUJc0zZM3C0l8Y337eVjf3ABlcj588FvDfEXL3s0v/ShO7j4iTXiin0FVzrbKwUxFMQQoFTUcpGfa/wMiZfhVBgwY0N2mNZKqfpYyvp3eEgM+9tCTmPGZR3O1e7stdCXOnxVvQkn6s2Pvbvp7wq8ph/n2kwkn4P5+eTnznLuvv4gQM9ulN//gtN86b17CKrLkXYxlgses8hAH1b34FbvcfLhiTBiPOZCi9V49/16Um+74bG2uvTLfnCGB74+RK3NWC2omo7V/UEvS9G4FbJGtfKn2sYlrsR+m+U3/2RZ7OvUSoZ/+oMDPOZD95CPVuB1VJXSGpK09WutJ2Kbyz7r7PJ8HgyqDImSwX3/w/pYyqYb9M6EJP+Y8TiervIbpJ22KyCZDFIsoEullhW9FIt9mTe7FZSu2s/0Zdl1+co/678e5Z4vj3DqvgFqZUM2H5IZsPzsn9zbt+tMEmzbtKqbsWFiSeXcFpfeCcs3raIYJjwfwb2v42Gtp9LAJ7/4NP/+gT3Mn5LG0JPMQMhTf/4EQzuXV69DYhpiD8shrl2ez7Rdvd68KIbaVK5jpm39HR27s8isDcmLMGH8hohWVXmox+TpuPE6vG3ihjEJbqV+T1BhWAwDxlBVZdaGLT8j2QR7BCWdoNVMKvir4I2MoPmBhkmZKQwk2xlsU/rVEFUnV7D8t4/dxj3/PsLR24qM7a9w1Y9O9XUy0sIKddZT0Wq1inI0rLHfy7Qc+2BQ3dIV/rAYLqh37db/NDk07vcyWNWubXnzQyG/+qnv8oX37OW2z4wzMBzwA79wgu977lTreZvyGc0oMGi8VW8yQ8YwPBYkxuV2HHQ5rZNhwGQYMBCFYtZiNRHnfx9XGisiZEQ44GXIiWFJLYttYg9QshY/oVcgFftlUsHvAsll8XJnl8hv9IQoY+CyH5zlsh+c3ZDXB3ggqHCoOaaLWx03C8yMDZmzIYPRanohassfNx55MZTUdqwGN5IMwoE2t8923GCPDHNB9zbKhZGQH3vDI/zYGx5JPCZEE0dQ2i5EOVDI5JWffMUkH3//jpawTnYg5Ed/ZfncIazLqrhbrCoDYiiIE/+8CqPG476g0pIgjq37jnYCKcukgn+OUbpqP2+/8R1bfRl9oazKnbUyg1H53aLa2Bi4hcZqOYNwaeT5Uo/37vYya/LSzyGMeh5FMWQQVGAmDDltg8Q142iXA2WzG2B7MW1Ddhg/Vvy6GRM4a0N2ez6veNNxMlnlo++ZoFoxjE7UeO5vHOGyp698cx8Wwx4vQ0aEqionw1riLmbaBuSks66/2Ra5/nfTlrg3quz1MhyJwkge8Z3AEpVupiyTCv45wFpMys4mellJ7vddWV5dJLwmm96HeqjWGDMe+7zM8u4ier2dnjAUrTDj8KS7SqVSD+9pWAxjxkdkZWuAiirHIl/55hvSkaC7ItIaLhZ/wM/ysv9+nJ993XHKJcOpXJnSKnukYTEtO5u8CAck22jIamfKhgwbjwFMS8fymTBgp+cv71Ti4voiFFt8lpI/cW8d91WDCz0NRnmDM03uoGcrqeCfhTQmRJ0jK/l+MhhjkyDiRJouBd+DlmEczRgRcrgEadyqed5axs3KY/usKie7tIfY72UYaYrNF6KSywcTkqTTNmS2LcTVi0TNq+XOWplC9PVLudVvTIU2sa9jRNjjZ5irdd4cFXggqDIohoIxBKrM2JDLMrmOUtw4mvdYNTRxYtaCXVvYyQMuzeTwceWgGg10eSiontVD1VPBP8twRmXdecufj8SVadYf75bByAAsCU+EAWOYjxkws6iWBRsy2CTS9TJCwa3sT4ZBV7XxOXHxgrfadgAAFjdJREFU6mYh9aLVbVFMooVEc4hrLWj0PrphMPKuT1pIJz/jWFDLQvQ5FjCJfj3NhJEXfzNHo51JPUFuI3fNU2v0Xdrl+Q2xh+WKp/1+lrtq/bEP2QpSwd/mHLv2EM/+ha/11Y1yu2JwoZQh47kttA167tyci0IF7Ta9vZRBxpUHNhPqyn4xD4U1hiNnR3Dx6rWsCgcT4s8GV1GzuA0mmu3z43dCdXqpkBlZYdZE3R5ZcJ/nmbbv55xa7o9mF2TFsKghk+uwPh4ynXYO4D77LLKpndb9JBX8bUq3E6LOFdq30DbaQifFgJM4FtbIi6G5S6Kqyoke4vcriXP9ZrBa9cecWubW6ZcfEr8zUVxFzVZTnzWbRC+hK3D18nEhHI1u2GdsQLWpD6OdUuTY2Q9swlbR9VJsgw9/jaSCv40415OvKzHRtoWu/3+/n2WubQstuGqYIfEIUKZs0CjVDIF7ggpFMQ1vl17dMxV4KKg2JmCZpserqjwcbk6d/5wN2ed1NvgJUNsGceR6R3NcvkKjBHIvO6sFtQypxvYSnAyDTa2nn7QB+9uqiFSVpT7YPm8lqeBvIaWr9jP1msXzUuQNUaMQsGAtwxK/hW435RKcHW9WBK9pJ3C0TVwW1bK4Dn1YUMtdtbLb2uMae4JVLJHzIqjSt0oOi6uwOdQUmyb6/wV+lkpQ2ZT5uj5u4tWQ8bAoZ8KwMW5ysm1sILiV/fGwxnSPNfD1zmnR5Rt+PRy32c1TMzZkIJq/0NxR/PBZbsecCv4WcOWnTgKct8nXghguaupExXNNQ3EI0fY6Ytx4DbGH1lF7szbpVdaGZfXQDbhY+4GmxGWA8mCt2iH8GSQaFhLfTxBHnIkcACqUvjvCnafg8mfMsFEzeVyoLe8sh8X1De/yhAERHg5rnLIBntAQRsHZTfdiXFdHgXtrFXZ6PiPizN/O2KDnG0e/OB4GnI46ijdzeP1Gkgr+JtGTG+U5zkE/27ltV7eaa99Cl6KhGnVGEuwDwN1I1jrkeq1kEA62lSQahUOZXKOaQ4AL/WyjVLKeeDzWRXw7IxJ7EzMGcsbwN6+9hIueOM8r33cXPY4B6Iox4+PResOpG9gJcNoGHA8DToZBw7NmPbJoceGbk9skcBLQXdPa2UIq+BvIsWsPbZi1wdlKUeLbZIwIZWvJspyorMWYcq2UrOzv+t7dQHYYDw9hVl3DU/sZxmI6a+vdoPVa/X1exnULN4nmqPGpqHZUmzTjA7uMH2sBXavCHd8oUl3yOPLNIW791A6e8Pwzq74nDyfiAyKUVJm2wYq7jWLbdTe/x+GooqoeTjtbK1fOJ1LB7zNHbxgFOC/j8t2wUpV1Vd0gkropVylmCz1lAwZNpz3vWk282nGDuE1juEo9dl5Qw7jxuL+tazUjkliW6IsgSkctPbhV8oTnJwq+AJdkcmRiKlfCEColwz/+xU4Aqkse3/7YxKqCn22ynTAiDKuy0/O5r1ZJFOsylkFNFn1hY8JpKRtDKvh9IF3Jd09SyCVUZUbDVbfQC2o5HQbs8paTaSHKkdr6k2kTxm+MR2xOkoIT6ByGA16GrBhCXPPPglpGYipLBFi0dsUb3EpNRsPRzqJzzi5875YBfv+/HeT0sWVDPz+/etihbjvRcO4UQSLbiQfDeMmfCp0/z2oMRE6WKdubVPDXyLlkUraZKPBwU8lj3SN+IbIE6IbTNmDKBhTFENJ9V+hK5EXYHTNEoxkvCmPUBXNADGeiOHyzS2W9sqQuoTWUHO3CrSys8H5zSGwoRy18/V9HOPbA8gCeXCHkZ142w2E/xykbJH6OxQTbiUFjuMLkmbIBJ8JWY7gaypGgyn4vQ07i6+SFtU27Stl8UsHvgbVOiEppZV4td9fKjBofT1xZZq+iHbI++4B26knIlWi3HvZEGgNY2oXwZFMD0NGg1qhKqjeVKXBihaRtWW1sjbsCJx7MMjAYoiFYK/zEz03ypGcsIGLYLxl8iA0VJdlO1EMz48bHQ3ikrXlpSW1jAMkFbQl3q0pV9aw3FTtfSAV/FbbbSj6oCLfetIMj3xpk4qIyT7x2kuLY9qho6IUAGrXc24FuTBWTjLziHh83Pqei97eolnujtv+cCEtqV237n1NX999ck66qeJ7wK3/4EE/51xEWZj0e/wML7LlwOZzlibDbyzAVE1OfsWFsPqGOiapvjoe12ETunFpOhQG7m8JpQbQDSDk7SAU/AWdStr38a5ZmPN7+/KuYP52luuSRyYf8y59ewC9/5A72XbG01Ze3IWQQJjyPgWiYyWS4MU04swle8nUPl3p4JUn0mzEi5NqOq6ibztUL99Uq7I3cMusIkBuAH3hesje9ED/W73hYIydCPrIkjrUxwCWik0I0kzZg2q5v2lXK1pEKfsRGT4jqB5/54wPMHMsR1pz81MoeNZQPve4SXv/p727x1fWfvAgX+8tVJQPqfOHv34AO01Jk1lYX/fqrT4YBZbUUjWG8LXlpVWN3BuEa7BziCIFHwlojxHJZJreq+yQ4wb/Az7CotjH/tW6DcH9QJS/CPi/jvOhjks3V1czj2JxpVyn9JxV8zh6jsu/803hD7JcRTt03wOKUT3F8+4RI+sE+L9MSL677ku/zMty/AWGEE2HATOS2qepW/fXyyHrVTt08TXGr9kCVYtMwbjdkvTd3zm55KKhyyM8lrs7r1AeEFMVgcbYI99UqjRV/WZVHghqXZnIteYm67XAq5ecu6xJ8ERkH/g64CDgC/IyqTsccdwSYxy0OAlV94nrOu17uvv4gL3j617ddyGY1PD955WVWeO5spRBjDywiFGLrV/pDWZVylEydMB67o6lXzT42qkpFlXujqVcT6rPD8zAIszbkVFjbENEs/b/27i9GrvK84/j3d87MrBcvNsbg/2BoglCgorRKURFS1bQoItwgqKiSSFUuIlGpjdRKvSgSd73iqupNLrDaqr1IGiG1FlFBIaFKhSpVLU5EFBwDJabBm7VjjA1es/buzJynF+fserx7ZnZnZ71n1uf3kaydP8d73j1eP+ed98/zRPB2+wp70wa3Fp9EVptXSAFFcKjR5P2em+QCwcnOPHvTJtvJh2c+7K4tjcGuJOW2pEGivODL2W571X2xKVeTrVl1Ru3hPwv8e0Q8L+nZ4vlf9Tn2CxFxbsTzrdu4Tb6ux2//0Vl++MIBOleujukmacbh35plcseNV6y5XybGzQgatxTBvt+Go22wNPRzLusMPQEtWNp9eynrrjm3Tkae42Wxfu2UEpp9lksuSooef+9QFeQ3t36Vs/rZnzbydAvF+XYl+VLVd9tXSv9dJiUOpa2lGr5zkXGqszAmiRPqZ9SA/wTwe8XjfwL+g/4BvxLjOPm6Xn/wpzO8/8YOPnhzisggSYObbunw1b/9edVNuy7OF2Pqy4uZfLQJq3tuTwavyQ+uLnMc9rPVpMRdjasr85U2OdNtD0yzsNyVYhK4ibinOTGwpOJGSMhvgrcuuy6JBBHcmjRW3PQawN2NiWuG5baT8GvNCd4tKXto19+oAX9vRJwGiIjTkvb0OS6A70sK4IWIONLvG0p6BngGYFt689ANmvnDu5n9THZDrpVvTAR/8q0TnPrJdk79dIpbD81z7+9+TEk6lxvCr7qdItVBuhRcL2bddZetG0ZjQLDPiqRun2tuIyVfYnpmjbnfBdzVmFjx/fel+STrsJPRixuj7mg08wIii+dZdpP8dMjatr2295Qx7JcHaSpJOLesi7+rZNWTJBrBwBKNdv2sGvAlvQbsK3nruSHO80hEzBQ3hB9IejsiXi87sLgZHAHY2dq75t/RG6knP4gEdz74KXc++GnVTbnuAjjVbdPsdpZy4m9GXvQE6ESsyBIJ+TLNdgSTPUnFmuTFxoPV0ylP9UkeB/na/Zl1VGyai4x32vM0i88bhxsTtIqfIyOv0PTLzvoqQYk+2U17RLH5arnWgDxDLWmkegW2PqsG/Ih4tN97kn4laX/Ru98PnO3zPWaKr2clHQUeAkoD/jDqXCGqTtoMriG7kRLyVTmtkjw2WQRnOm32lNRxTYrUDKsF/EGbnkadil68Gb7XmWdKCZNKmI+M2RF69/3q6vYKWEox0WtuQJ6hy+7dV2LUIZ3vAl8Dni++vrT8AEnbgSQiZovHXwT+ej0nu/zrB7lwb2us18rb1rYrSWmxsmcaRarm2cjYz8qyg0DRwx7sUtZFJWULuxFc3MClnJci25C18oN+osUspdOddmlqhY+zLntKKlhdyoYfurKNMWrAfx54UdLXgQ+ApwEkHQD+LiIeB/YCR4veUgP4dkR8b5iTuCdvm2VHn9QDGVcnZztEaXBfbcMS5OuSz3Tb7CuCflLsap2LbENzA22US1Ge8bMbwUynzcfR/yYl4IP2ArekKTuTBrGsPKJtPsUY32nvf6AV3/63vVU3w2rkjiKVwYoc9BFLO3x3JimHli3ZzHo+AazFpLRUTeqTrDuWwX7RLUnKweIGtZjddDbrcmrAfMOBYvlmb9nDsw70m+LBw9M/6rfXyTttzXp8VOy07Q332bICK59kXSKCvWmTVjGZfKbbHmoI5XIEl9cxQVuFj7Muc1nGnrTBpBIyYqnnX9Zd3Js2uGXZ8s3b0wYdYl21bm3jOOCb9ZiLjJlum/09PdqFWJkR8mJkXOzUZy35ziTNh7sAKWFC5RXAAHb3bMxalBSppB3wq+WAb7bMhSyvXztZVLaaH+Nhz7VqIQ40mmwvCqmfz/LC42v5yVJgz7LiMIsVwHYm6TX7DwR9VxutXJVvm+36JSUx28KCvLd/IwT7BvDZ5sRSKodUYnfS4M60terfBZZuEsulEjt07a6/gL71cb0Us3oO+GZjTOTDKfvTBruTdF0pFMoSrS3ujl1LuuVGnz0Ci3Mby53utPOqXouZRSPIIji9ReYsbmQe0jEbE9skblJCO4LZyJY2gTXJe+XdYqJ42HoAvbuCe0VxzrLlpNuVsD9tsq0nS2iZ8yUrb2Yj4/3OAnvSBhOIy1lwNmt77f0YcMA3GwOH0xZTydWhk4xgNuteswksLVIzH0pbS6mZ1+IKGVNRXuykbMgqT+7WGpw8riis0i+Iz0Xm0odjyEM6ZhXbnaRMJVfH11OJBlqxtBHynvaENNTQzkfF5Gzvnpus2OxVtkN2sQbAavqN1dv4csA3q9jylMOQB/aBaQ2G+P4d4GRnnrnIlsbTL2Tdvj3wbUpWrd2bAZ9mnoTdajykY1axQbE1i1ixo/dyZEMXgbkSseaykFcio6n+nyEWPx04vfHW44BvVrFPsi63JSsTti0UWUIne6pVdQlOrTPV8Vqd7XbYvmyid3FFTrv4dLCWUog2fhzwzSr2YbfDDqU0ySdms4i8FkBngcsR3KSEyWI1zVpz9YxiLjJ+0Vlgf9pkQqILnOt2+NC5cLY8B3yzimXkOex3JOnSsswLWWepzu1cZMxt8vzopcj43xqljqgLB3yzMbBYLeuTNZczNxueV+mYmdWEe/hmW1AK3JY22KGUjOBc1l21vKKZA77ZFpOQJ0Nr9OzCPVhM7J4pqS1rtshDOmZbzK4kvSbYA0sZMN2Ds0Ec8M22mCmV190N8kRpZv34t8Nsi2kT9KtFvbaSJlZXDvhmW8xH2cqwHpHvgr287EaQAmtLhWZ14CE/sy1mPoIPOgscauTlS0ReTeqDnlw5KXCo0WKqGOLpEkx3hiu0bjeekXr4kp6WdFxSJunzA457TNI7kt6T9Owo5zSzvMjIifYVft6Z5932PCc7C/Suz7mrCPaJ8sndphION1pMuLdfa6MO6bwFPAW83u8ASSnwTeBLwH3AVyTdN+J5zYy8t99eNsAzIbGtpMqVgN2pP9TX2Uj/+hFxAvqXPys8BLwXESeLY78DPAH8bJRzm1m5Fiqdul0snmL1tRmTtgeBUz3Pp4vXSkl6RtIxSccunPd4o9mwLkdWOnCTRXDJRUtqbdUevqTXgH0lbz0XES+t4Rxlv3t9145FxBHgCMD9D7S8xsxsSB3y4uK7kgZp0aPPIuhSXnTc6mPVgB8Rj454jmngjp7nh4CZEb+nmQ1wutvhSgS3JQ1SwcUs42y37VycNbcZMzhvAPdIuhv4JfBl4KubcF6zWnNlKltu1GWZT0qaBh4GXpb0avH6AUmvAEREB/gG8CpwAngxIo6P1mwzMxvWqKt0jgJHS16fAR7vef4K8Moo5zIzs9E4tYKZWU14F4aZjQUBu5MGO5O8qMtH3Q4XnQpiQzngm1nlBHymMcGErub5n1TChazDaRd12TAe0jGzyu1MUlpaWdTl1qThbJ8byAHfzCp3s5KlTWK9AtieOExtFF9JM6vcwKIufV634Tngm1nlzne7pUVdMsI5/DeQA76ZVW6BvKhLN4JuBFkECwQn2wur/2VbM6/SMbOxMBsZP2tfYVIiC5h3fd4N54BvZmNleV1e2zge0jEzqwkHfDOzmnDANzOrCQd8M7OacMA3M6sJB3wzs5pwwDczqwkHfDOzmnDANzOrCQd8M7OacMA3M6sJB3wzs5oYKeBLelrScUmZpM8POO7/JP1U0puSjo1yTjMzW59Rs2W+BTwFvLCGY78QEedGPJ+Zma3TSAE/Ik4AqKQWpZmZjZfNGsMP4PuSfiTpmUEHSnpG0jFJxy6cd2kzM7ONsmoPX9JrwL6St56LiJfWeJ5HImJG0h7gB5LejojXyw6MiCPAEYD7H2i5EoKZ2QZZNeBHxKOjniQiZoqvZyUdBR4CSgO+mZldH9d9SEfSdkk3Lz4Gvkg+2WtmZpto1GWZT0qaBh4GXpb0avH6AUmvFIftBf5T0k+A/wFejojvjXJeMzMb3qirdI4CR0tenwEeLx6fBH5jlPOYmdnovNPWzKwmHPDNzGrCAd/MrCYc8M3MasIB38ysJhQxvptZJX0I/KLqdlTsNsBJ567la7KSr0m5Ol6XwxFxe9kbYx3wDSQdi4i+qafryNdkJV+Tcr4u1/KQjplZTTjgm5nVhAP++DtSdQPGkK/JSr4m5XxdengM38ysJtzDNzOrCQd8M7OacMDfAiQ9Lem4pExSrZeYSXpM0juS3pP0bNXtqZqkf5B0VpJrTBQk3SHph5JOFP9v/rzqNo0LB/yt4S3gKWpeJUxSCnwT+BJwH/AVSfdV26rK/SPwWNWNGDMd4C8j4nPA7wB/5t+TnAP+FhARJyLinarbMQYeAt6LiJMRsQB8B3ii4jZVqqgNfb7qdoyTiDgdET8uHs8CJ4CD1bZqPDjg21ZyEDjV83wa/0e2ASTdBfwm8N/VtmQ8jFTxyjaOpNeAfSVvPRcRL212e8aUSl7zumIrJWkK+BfgLyLiYtXtGQcO+GMiIh6tug1bwDRwR8/zQ8BMRW2xMSapSR7svxUR/1p1e8aFh3RsK3kDuEfS3ZJawJeB71bcJhszkgT8PXAiIv6m6vaMEwf8LUDSk5KmgYeBlyW9WnWbqhARHeAbwKvkE3EvRsTxaltVLUn/DPwXcK+kaUlfr7pNY+AR4I+B35f0ZvHn8aobNQ6cWsHMrCbcwzczqwkHfDOzmnDANzOrCQd8M7OacMA3M6sJB3wzs5pwwDczq4n/B+Gx72ZFQP29AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "model = train(initialize_model(dim_hid=1), X, y, debug=True)\n", + "visualize(X, y, model)" + ] + }, { "cell_type": "code", "execution_count": null,