Last active
February 16, 2022 08:22
-
-
Save CihanSoylu/6967249574192728a9fba367065e8949 to your computer and use it in GitHub Desktop.
Visualizing the non-linearity of neural networks.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Visualizing the non-linearity of neural networks.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/CihanSoylu/6967249574192728a9fba367065e8949/visualizing-the-non-linearity-of-neural-networks.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "UA9MqQE7UKMJ", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"In this notebook, we will be looking at a toy dataset and a simple neural network to demonstrate the advantage of the neural networks over linear classifiers. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "fmmYrxJNlwDx", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "YNXQ6oyHUvoC", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"The following utility functions are for creating random data and plotting. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "qSMBv9QBo9VU", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"def create_data():\n", | |
" x_1 = np.random.randn(100,2) * 0.1 + 0.5\n", | |
" x_2 = np.random.randn(100,2) * 0.1 + np.array([0.5,-0.5])\n", | |
" x_4 = np.random.randn(100,2) * 0.1 + np.array([-0.5,0.5])\n", | |
" x_3 = np.random.randn(100,2) * 0.1 - 0.5\n", | |
" x = np.concatenate((x_1, x_2, x_3, x_4))\n", | |
" \n", | |
" y_1 = np.ones(100)\n", | |
" y_2 = np.ones(100) * 0\n", | |
" y_4 = np.ones(100) * 0\n", | |
" y_3 = np.ones(100)\n", | |
" y = np.concatenate((y_1,y_2,y_3, y_4))\n", | |
" y = y.reshape((-1,1))\n", | |
" \n", | |
" return x, y" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "w8Oaj_qJlzp_", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"def plot_data(x, y):\n", | |
"\n", | |
" plt.plot(x[y[:,0] == 1,0], x[y[:,0]==1,1], 'bx')\n", | |
" plt.plot(x[y[:,0]==0,0], x[y[:,0]==0,1], 'ro')\n", | |
"\n", | |
"def plot_line(c_1, c_2, c):\n", | |
" # c_1*x + c_2*y + c = 0 \n", | |
"\n", | |
" plt.ylim(-1.2,1.2)\n", | |
" plt.xlim(-1.2,1.2)\n", | |
" x = np.linspace(-2,2,100)\n", | |
" y = (-c_1*x-c)/c_2\n", | |
" \n", | |
" plt.plot(x, y)\n", | |
"\n", | |
"def plot_lines(W, b):\n", | |
" for col, c in zip(W.T, b):\n", | |
" plot_line(col[0], col[1], c)" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Y8qFg3wBmRrN", | |
"colab_type": "code", | |
"outputId": "16f373ef-e4d1-4dd8-e57e-ba227e1aad6b", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 265 | |
} | |
}, | |
"source": [ | |
"x_train, y_train = create_data()\n", | |
"plot_data(x_train,y_train)" | |
], | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "yqQPRAAIVaDI", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"There are two classes in the data. In the above plot, blue points correspond to the positive class (label 1) and the red points correspond to the negative class (label 0). As you can see from the plot, this data is not linearly separable. In a 2-d input space, this means there is no line that separates the two classes." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "uhUgJ5U7WY0h", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"Now we will train a neural network on this data and visualize the features learned by the network. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "GXLs7b5SDJlH", | |
"colab_type": "code", | |
"outputId": "a2329577-24e2-430c-a020-35dbd320bff7", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"import tensorflow as tf\n", | |
"print(tf.__version__)" | |
], | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"2.2.0-rc2\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "KEB7DEwlDOUn", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"tf.keras.backend.clear_session()" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2Rr-MKiqA_pD", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"tf.random.set_seed(10)\n", | |
"inputs = tf.keras.Input(shape=(2,))\n", | |
"x = tf.keras.layers.Dense(2, activation=tf.nn.tanh)(inputs)\n", | |
"outputs = tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)(x)\n", | |
"model = tf.keras.Model(inputs=inputs, outputs=outputs)\n", | |
"\n", | |
"\n", | |
"model.compile(optimizer='adam',\n", | |
" loss='binary_crossentropy',\n", | |
" metrics=['accuracy'])" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "l2GveRU5cQcE", | |
"colab_type": "code", | |
"outputId": "63dc88de-c2b1-417d-b3f4-a26108a7dbf0", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 265 | |
} | |
}, | |
"source": [ | |
"plot_data(x_train ,y_train)\n", | |
"b = model.weights[1].numpy()\n", | |
"w = model.weights[0].numpy()\n", | |
"plot_lines(w,b)" | |
], | |
"execution_count": 33, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO2de3wV1bXHfzvvBybkgYpgEhAELD6ABFFLNY20IhTRVsQiVWsbjb29ttb6qEYrlApoqrZaBL1qNVSl3qsiPhBNfFZKgqKg8hISngqS8JBXXuv+sc/OzJkzM+c158zJOev7+cwn58zZM7MzJ/ntNWutvbYgIjAMwzDxT5LbHWAYhmGiAws+wzBMgsCCzzAMkyCw4DMMwyQILPgMwzAJQorbHbCisLCQSkpK3O5G4nBkH9CyCTjmeOCYvm73hmGYEFm5cuU3RNTH7LOYFfySkhI0Nja63Y3E4oUq4NNngWseAfqXut0bhmFCQAjRbPUZu3QYjfGzgWNOAF64Fmg75HZvGIZxGBZ8RiMjF5j8MLBnI/DW3W73hmEYh2HBZ7wZeB4wuhL4zyPApnfc7g3DMA7Cgs/4cv7dQP5JwEu/ksFchmHiAhZ8xpe0LODi+cD+7cDrf3C7NwzDOAQLPmPOiWXAd38LrKoF1r3mdm8YhnEAFnzGmnNvBY47FVj838DBPW73hmGYMGHBZ6xJSQMufgQ43Aq88luAS2kzTI+GBZ+x5/jhQPkfgM9fAlY/73ZvGIYJAxZ8xj/n3AD0Hw28+jtg/w63e8MwTIiw4DP+SUqWrp3OdmDxr9m1wzA9FBZ8JjAKTgLGzQA2vgmsfMLt3jAMEwIs+EzglF4jZ+IuvUNW1mQYpkfhiOALIR4XQuwSQqyx+FwIIf4qhNgohPhUCDHSiesyUSYpCbjoYSApRVbW7Op0u0cMwwSBUxb+kwAusPl8PIDBnq0SwDyHrstEm9z+wPg5wNblwIcPud0bhmGCwBHBJ6J3AbTYNLkIwFMkWQ6gtxCCV9noqZw+FRg6Eaj7E/D15273hmGYAImWD78fgK2699s8+7wQQlQKIRqFEI27d++OUteYoBECmPgAkJ4ja+d3tLndI4ZhAiCmgrZEtICISomotE8f0xW6mFihVx/gRw8AX30KvHuv271hGCYAoiX42wGcqHvf37OP6ckM+xFw+uXAezXA9pVu94ZhGD9ES/AXA/iZJ1tnDIB9RLQzStdmIskFs+XC5y9cB7Qfdrs3DMPY4FRa5jMAPgQwRAixTQhxjRDiOiHEdZ4mrwLYBGAjgEcBXO/EdZkYILO3TNX8Zj3w1gy3e8MwjA0pTpyEiC738zkB+JUT12JikJPKgbJfAsv/Dgy5EBgw1u0eMQxjQkwFbZkezLi7gfyBwIvXA0f2u90bhmFMYMFnnCEt27Ms4jZgKS+LyDCxCAs+4xwnjpallD9+Gli/1O3eMAxjgAWfcZbzbgOO/Y4so3zIbvI1wzDRhgWfcZaUdFk7/1AL8MqNbveGYRgdLPiM8/Q9DTjvFuCzF3hZRIaJIVjwmchwzm+BfqXAK78D9vMcO4aJBVjwmciQnCJdOx1HeVlEhokRWPCZyFE4GDj/j8DGZcBH/3C7NwyT8LDgM5FldCUw4HvA0tuB1ia3e8MwCQ0LPhNZkpKAi/4OiCQ5C7ery+0eMUzCwoIfjyxcCJSUSLEtKZHv3aT3ibKqZvMHst4OwzCuwIIfbyxcCFRWAs3NMlDa3CzfOy36wQ4qZ/xUFlZ7awawa62zfWEYJiBY8OON228HDh3y3nfokNzvFKEMKkIAP3oQSO8ll0XsbHeuPwzDBAQLfryxZUtw+0Mh1EGl17HAxPuBnavkKll6Ys0NxTBxCAt+vFFUFNz+UAhnUDnlIuDUKXId3B0fy33RckMxTILDgh9vzJoFZGV578vKkvudItxB5cK5QPaxnmURj0THDcUwDAt+3DFtGrBgAVBcLP3mxcXy/bRpvm1DdaOEO6hk5gEX/Q3YvRaomxkdNxTDMCz4ccm0aUBTk8x5b2qyFvtQ3SjBDCpWDDofKP058OHDQFlf8zZOuqEYL+bOBerrvffV18v9TPzCgp+ohOtGCWRQ8ce4mUBeMfCjdCA3wm6oBMZM3FNSgIkTtf319cCUKUBZWfT7x0QPFvxEJRbcKOm9gMmPAB0twJ3nhffEwFhSVibFXC/u99wDzJwp9995p/y5aBFQXu5uX5nIkuJ2B5gosXChtN63bJGukvx8YM8e33bRdqMUnwWc/Wvg338Flj0PDB4X3esnAOXlUsynTAGqqoB58zRx37tXCn91dXBiP3cu8OWX8vXUqfLY+nrg2WflvpNOAm6+2fnfhQkTIorJbdSoUcQ4RG0tUVYWkfTWa1tysvf7rCyiqiqi4mIiIeTP2trI96/tMNHDY4juPZno4J7IXy9Bqa6WX3N1tXxfV0dUWCjfFxbK94FSV0eUmyv/ZHJziWpqvN8Hcy7GWQA0koWuui7sVhsLvoMUF/uKvdoKCjRxr6ryHRiysqIj+jtWEd2dT/Svn0f+WgmIUdxrarxFXn0erOhnZBClpMg/lbQ0TfznzInM78H4hwU/0RHCXvAVVgNDcbH9+WtrnXkqeHsu0V05RGv+L7TjGVOMYl5XR5SdLYXZ2E4v1HPm+A4AlZVyU0yf7v2nMn26di2z443XYJyHBT/RsbPwAa2d3cBgJehm7qK0NDmQ6N1GgQwET/+D6Po8ot/3Ihp6YnSeLBKAUIXXbKDIydFcNmrgUF97UpL8E1EDiTq+slJrr86nrh/OoMADijks+IlOba294CsxN/r01WYcCFJTNVeQ1TFmm517SA0cBUlEfziGaGpm9NxJCYxeNNVrvWjW1EhRV66gykrNX5+erv05DB4sX6ekyPbqKUANEqmp8uvUC39NjWwXqmvJbEAK1i0Vj7DgM96mWDCbndUfymblHtI/hZyZJl07I1L9u5PinEhbsUarOzdXCrRemJXbprpaCnRODtHIkXJfv36a6I8YIQU/NdVb8CsqtK9WuXxqauR5lPUfTvA41GPjFRZ8RlrKqanBiXMw1nswA4gZxoHlZ1lEtx5D1DspuvcpxoiGFasXTeWyMQZ39e+zs+XXNXas9nVlZGgDQ0YG0YQJUszVAKL39Y8d6+0aIvLNIAqGcI6NR1jwEwm7AKrxs1i18AGiXCEF/6psoqefivRdi2miYcXqRVO91gdgVT9ycqTgK3eO2lSmzrhx2p9Ndrb304L+ITM93XcQ0/9+gT7ZsIXvCwt+omAWQDX6wfWi76SYJyfL8/XqZd0mEB++vv0ZqdK1MzY74X35kbRirSz8rCzfTJ7KSqKJE4kyM72/dr3oq23QIHnu0aO1c+kHiqFDNReRcVCZMMH/kw378M1hwU8U/KVVWk3ACtfSF0ITZH9PDnbZOrW1vm6kqZkyiHta/8jfvxglklZsID58fVBX+d7VoGDlJUxN1c4zdCh1W/W5uVqAVwg5eOhz91UfjL59szRSY4qo+n04S4cFPzGwEmXlNw/UjRPKpkQ8kLZ2lr7xd8gWMk3zF9lEHe1RuY2xRKStWH9ZOsbX6elSfFW79HTzUM+YMfLzrCyiSZO0r/XUU7U2GRla1o8QMhBs/N3s3EtszZvDgp8o+LPwnfbHG7eCApmMHUjbQH35ANEpKdK183bimW6xlmuuXDD6IG5GhvlXPGEC0dlnU7fNof/zy8iQg8WgQfJ8ytWjd1lZzQ5mf709LPiJgj8ffiQt/GA3q2wdq9/h3u/L0gvbP47a7WTMBxxjmmZqqpaOqb6ypCRt7E9N9XX9TJqkvU5NlQOAXsitnmz012bMYcGPJ/yVMfCXpZOW5r7YKwvfqq9m+w/ukcXVHjpTFltjIsb48Zq/XFn0VVXafr37ZeJE6eJRGTlVVb5ftV7s9Va+3hVUVSWvZ5ydq6emRo79bOHbw4IfLwSShWOH2X+jW1sohdrWvyFdO0vvcOZ+Mj7MmSO/GlUioa5Os9RPPllLt6ypkS6b1FQp+soXX1hINGCA+Vdutl9Z9yrAqwLDepdVXV14M3ITjYgLPoALAKwDsBHArSafXwVgN4BVnu0X/s7Jgm+CnUvGKvtFWcvBiHFaWuC+eLOtoMD+mnbzAPzNrF3830R35RI1/dvpu9sjccLHrz+HCrQq37s+yKoEWpVWyMiQg4M6vrBQDgqA9ufzne94H5+R4f2nVV1tnpljrL+jBhTjQBBqLCPWYiNOElHBB5AM4EsAAwGkAfgEwCmGNlcBeCiY87Lgm+Av6Kq3kGtrtQJmoQh2OE8Dqg9W51AmZLCDFxHRkf1E959K9MBpREcOROW2xzJOZPEYj1FfW26u/Hn88b6in5OjWfQ1NdLdowYJNRVDvVeDgDo2OVn6/DMztbo7+mJqakDJzNRSNo0WfriCHc85/JEW/LMALNW9vw3AbYY2LPhOEIilrsQy1Hx7ZYETyf/8UMor6H3v+nMkJ2vOWn+/i517p+kDaeW//JvI3/MegFWefjCiaDyHEmn1Z5Sa6l1KQU2qmjBBvh81Sv4sLNRsBiX62dmyno7+z6CuTpuIpbfujcHZ5GRN+J2edBWvs3QjLfg/AfCY7v10o7h7BH8ngE8BPA/gRItzVQJoBNBYVFQU+TvT0whEyIMpm2B3Dr1ohzqABDuz1mzwsmLp7dKfv2FZBG50z8NsJm4goqgfFFSRMyX2yueuHsZUKqX6etLT5Veo9ilB1y+IonLt1UOdcueMGyePVa4avQWvnjD0M3fNsnKcEOx4rMMTC4JfACDd8/paAHX+zssWvgX+fPIquyUcwTcTbX8lloMR7UCfHKxSN4lkps5DZxLdN4ToUEuEbnbPwE74/Imi+lzNoFUZNcceKy1zJdApKfK1XrwBuU8vzGr/yJHyK87I0Kz/qip5HWX9jxvnO9NX1dtR51SDir7ksp5wBJst/NAE369Lx9A+GcA+f+dlwfeDXcZOqL57O9GurQ1tIFGiHUq//AVwt38sc/Of/0Wk73bMEogVr5+tajxW+cyFkJ9nZHhn7lZVyUEgKUmrh6Nq4euDr3l53l9ddrb3uD5qlHacEJqFr3fjVFd7nzM9XQ5CkybJ81i5dcIpq8w+/OAFPwXAJgADdEHb7xja9NW9vhjAcn/nZcEPAH2+ekGBtihJJGbUhloqWQ0WwZZmVmrjj/rZnmURX4j03Y5J/Pnp9T5xs9WoVFv9hCbl2lG59uqzE07Q8u0rK4mKinzHdkDu18+eVVa6+hNQA4++D2pQUm2SkuRxqvqmejoYP973WLP34d63nkw00jIvBLDek61zu2ffDACTPK/vAfCZZzCoBzDU3zlPHzEy4jcmbgg3SBupTT1xhBpTCGTxk442ovnnEs0uIdr/VWTvcw/DKIJ6S14v9vqSBRkZcquo8Bb7khJNkGtq5Kb/qtRTQUqKFHsl1CNGaGIOyP1GoVaTu7KytFRPfSnlceOcz9KJZ3rkxKu04wfRuXPr6HeLVtGzK5pp464D1NXVFZk71NOJpZIJRsueKPQnDjsfvp5da4lm9CFaeBkR/410468sApE2CKhJVqoujrKohfC2zFU1zYoKra3ez5+eLgunJSfL9vr6+WolLKPf3izvXg0YSUnmWTqMNXaCn4IYpW9uBgYfdwzq1u7C8yu3AQAKstNQWpKHspJ8lJXk45QTcpCanORyT2OALVvc7oE9RUVAc3NoxwVCnyHA+XcBS/8ArFoIjLgi+GvFITff7P2+vh547TWguhqYNw8oLwc6OoD77gPuuQc4/XQgLQ24+mrgiScAIYD0dDn61tTINnfeKY9/6y0gKwsYNw5YtkyePzUVuOoqee7sbOCMM4DFi4G2NnneGTPkOaZOBRYtAhoa5HGXXCL3lZfL95deKs8xciSwdi1w6FDUbln8YzUSuL0pH35XVxdt+PoAPfOfZvrtcx/T2Dl1VHzLEiq+ZQkNveM1unzBh1Tzxjp6b/1u+vZI4pXPJaLYtPD1Lh07H74Q0lwMp2QEEVFnJ9HjFxLN6kfU2hyxW91T8efzNma7KD9+RYW5+2XQIPkVJSXJr1ZNoho9Wj4djB4t36unAv0at1arVikLPyNDK9+gXD1WWTqML+iJLh27oO1X+w7Tkk920F0vraELH3yXBtwqB4CBt71CE//6Hv1x8Rp69dMd9PX+BCiyFUz2i5mwRsO1Y9bPggL75RdDWeGqZTPRrBOInpggBwCmGzuftzHbxaoMsbHMgfKzq4wcVStf1cUJJmVSnbuiwnsWrxpkJk707Qv7682JO8E3sv9wG729bhfVLF1Ll83/Nw2549XupwB9HODLeIsDBBus1VeodErQ09LsBxw7P7wTIm+k8UmZtfPhvPDPlQAYs3X0hdOINGHXDw4qX37CBPn5xIlaqqWaaBVKyqR+gDDW91EDkX6AYp++OXEv+EaOtnfSR80ttOCdL+kX/2igM+5e2j0AjJr5Bl37VCM9+u6XtGpLK7V19GBLMFjh1otvOKmb6li9SNv1RaV0Gksgh+vGMaOri6j2UqKZxxLtXh/euRIAs8JpxoJoxqJlqq1e0EeO1MQ6FIEOdIJYvE2SigQJJ/hGZBxgP/3TEwf47py3ugeAYdWv0U8f/ZD+0hPjAMGKtj7N0d9gYWe1mwlzoE8b/lI1A0nF9Mf+nUSzi4kWlCfksojhYBRWs7r0ytrXT+jSFzvTl0oOxAUTaE59PJZBiAQJL/hm7Nx7mF7+ZLtpHOBHf3uP7l78Gb366Q7atf9IRPsRFlaiWVBgbj1XVXlP1LKzyP0tlqJKIBtr7gRa4M3f+rvhuntWPy9dO+/Mde5+Jwh6YTW6fPQVMvXpkyqtUwVZlR8/EALJqWcLP3BY8ANgnycOcJ8nDnDy7d5xgJsWraLnVmyJrTiAlVukqso3QGq24IjVpma4BlMKQW/1+3vy8FcP3yl3z6KrZOmFHZ84edfjGjNhNc7WrarSVrtSE6VUW5XnX1HhfJ/isQxCJGDBD4Gj7Z20srmF5r+zka550joO8MnWVmp3Mw5gtIStVpKyEu/sbPPyxUShu4z8Wfn+RN0pd8/BPUT3DiZ6eAxReww/qcUIdsKqd99kZXlPwlKDwoQJvjN5nYBn1QYHC74DdHbq4gDPfkznzPaNA9y/bB29v8HlOEAogVwr90moQWE7f75xkRaz6/pz9wTDuqXStfPGneHc1YTASlhVWQNl9etn6wZSq4eJLnaCL+TnsUdpaSk1Nja63Q1bvtp3BA1NLWhsakFDUyu++Go/iIDkJIHhJ+SgtCQfZSV5KC3JR2Gv9Oh0KilJymOgFBQAhw97T2fMygIWLJCvKyu9PxNCfn7woO+5iouBpib5euFC4Pbb5Qzb5GSgs1N+PmsWMG2afZ9KSsxn5urPHwyLfw18XAtc/TpQdGbwxycw9fXAlClyZmx5OfCXvwA33QRccYWctbtokWwzcyYwfTrw1FPexzY0+M74ZSKLEGIlEZWafsaC7xz7j7RjZXMrVja1oqGpBau27sXRji4AwMDCbJR6xL+sJB8lBVkQQjjfCSuxNCM1FcjJAfbs8f1MiasS7i1bZKmDWbPk58aBQA0S/sQ8EBYudPb8Rw8A884GRDJQ9QGQlh1+HxOEuXOBsjIp9kr8b7tNlmQoKwMuvljaFzfcIMshqIGBcQ8WfJdo6+jCmh370LC5RT4JNLdi76F2AEBhr/Ru67+sJA+n9M1BihN1gczEUghzq7+gAGhpMf9MCKCry/46xoHACbGP1Pmb3geenAiUXQNMqHGunz0cvaArrCxzY9v6emDyZFkHZ/5836cBxh3sBN91X73VFms+fCfo7Oyi9V/tp4XLzeMA0x5d3h0HOHg0jDiA0TcearZMoOe3W8bQ6Zm04fDabdKfv/Etd/sRQ4STAcPB1NgE7MOPXXbuO4zGplY0NrVgRVMr1prGAfJRWpIXehzAzic+a1Zw7pNA3S1Ou2WcoP0wMP9c6eK5/kMgs7c7/YgxlGVeVcVumXiAXTo9CH0cYEVTCz4xiQOo8tDFgcYB/IlvMO6TQAOqTgdenWL7R8Bj5wOn/gS4ZIF7/Ygx7rxTBl6rq2UZY6bnwoLfgzna0Yk12/d7MoHCiAM45RO3ygIy+vwDbecG9fcA78wGpjwNnDLJ3b7EAGzhxxcs+HFEVxfhy93fosGTCbRicwu27z0MAMhKS8bIojyUluRhdEk+zijqjaw0h9e46ekWPgB0tksrf99W4PrlQK9j3e2PixgDrRx47fmw4Mc5O/cdRoMnDtBgEgeQMQD5FFAQ7nyAnuzD17NrLTD/e8Cg84GpC+WTRwISTJYO0zNgwU8w9h1ux0dbPAPA5las2rYXbSoO0CcbZcX5KBsgB4Ci/BDmAwTqHop06ma4/PtvwBt3AJPnAWf81O3eMIwjsOAnODIOsA8rNstBoLG5FfsOyzjAscekd2cBlZXkY+jxxzgzH6An0NUpc/O/XgNU/RvofaLbPWKYsGHBZ7zo6iJs3P2tpyxEq1ccIDstGSOL81BaLJ8AIhIHiCVaNgPzzgH6lwLTX5TBZobpwbDgM37ZsfcwGps98wE2t2Dd1wdABKQkCXynXy7KivNQNiAfpcUOxAFijcYngCW/AcbfC5xZ6XZvGCYsWPCZoNl3uB0fNbd2PwUY4wCjdYHgkOIAsQQRsPBSWX7huveBwkFu94hhQoYFnwmbox2dWL1tH1Y0tWBlU2v8xQH27wT+PgYoHCyraibHsRuLiWvsBJ//qpmASE9JRqnHqge0OMCKzVp56FdW7wQA9EpPwYii3t2DwIgT85CZluxm9/2T01cWVfvfa4B/PwiM/Z3bPWIYx2ELn3GMHXsPd7uAGpp84wCjPbOCYzYOQAT86ypg7StAZT1w/Klu94hhgoZdOowr7DvUjpVbtAHgk6370NYp4wAn9cnunhA2uiQfJ+ZnxkYc4OAeYN5ZQHYf4Jd1QEoMDkwMYwMLPhMTHGn3zAfwPAU0NrVg/5EOAFocQNUGGtY3B8lJLg0A65cC/5wCfPdG4Py73OkDw4QI+/CZmCAj1TcOsGHXt54BoAUNm1tiIw5w8g+BEdOBDx4AhowHThwdnesyTIRhC5+JKbbvPaxVBm1q9YoDDO+XizJPJlBpST7ys9Mi15Ej++WErORU4Lr3eFlEpsfALh2mx6LiAKo4nFkcQG2OxwE2vwf8YyIwuhK48F7nzsswEYQFn4kbjrR3YvX2fVixuQUrm73jAMflpMvJYMUOxgFevw1Y/ndZduEkrhfMxD4s+Ezc0tVFWL/rgFYeenMLduw7AkDGAUYW53WXhTjjxN7ISA0yDtB+WJZRbjsoC6zxsohMjMOCzyQUVnGA1GQVB5AuoFHFeYHFAbavBB4bB5w2Bbj4kcj/AgwTBiz4TEKjjwM0bG7Bp9u0OMCgY3vJVNDifIwekI/+eRZxgLpZwLtzgcsWAsMmRvk3YJjAibjgCyEuAPAggGQAjxHRbMPn6QCeAjAKwB4AlxFRk905WfCZSKGPA6j1AQ4Y4gCjPemgQ4/3xAE62oDHKoD9OzzLIvZx+bdgGHMiKvhCiGQA6wGMA7ANQAOAy4noc12b6wGcRkTXCSGmAriYiC6zOy8LPhMturoI674+0F0TqKGpBTs9cYBjVBygJA9jc3fjtFcvghj8A+Cy2oRdFpGJbSIt+GcB+CMR/dDz/jYAIKJ7dG2Wetp8KIRIAfAVgD5kc3EWfMZNtrUe6i4J0dDUgvVffwsAqEpdgluS/4mXB96FjNJpKC3OQ14k5wMwTJBEeqZtPwBbde+3ATjTqg0RdQgh9gEoAPCNoaOVACoBoKioyIGuMUxo9M/LQv+8LEwe0Q8AsPdQm0wD3VyCzz/+BOd+eS9++HkhdqLAEwfI754UZhkHYBiXianSCkS0AMACQFr4LneHYbrpnZWGimHHoWLYccCYWtC87+L1E55F7eAH0djciiWf7sAzK7YAAI7PyeheG8ArDsAwLuOE4G8HoF/9ub9nn1mbbR6XTi5k8JZheh75AyF+MBO5r9yIX414G7j6l+jsIqzXxQFWbG7Bkk9lXSB9HKCsJB+nhzIfgGEcwAkffgpk0LYCUtgbAPyUiD7TtfkVgFN1QdtLiGiK3XnZh8/ENERA7Y+BLR/KZRELTjJ8TNjuWR9ATQpTcYDUZIFT++WibEA+yorlfACOAzBOEY20zAsBPACZlvk4Ec0SQswA0EhEi4UQGQCeBjACQAuAqUS0ye6cLPhMzLN/h2dZxCHAz18Hkuyt9taDMg7Q0CwnhH26bS/aO+X/38nH9epeI7i0mOMATOjwxCuGiRSfPAe8UAmc/0fgu78N6tAj7Z34dNu+7kyglU2tOHBUzgdQcYDRA/JRWpyPIccfw3EAJiC4Hj7DRIrTpgBrXwbq/wwM/gFw3HcCPjQjNRmjB8gZvgC64wDKDdSgjwNkpGBUsScQXJzHcQAmJNjCZ5hwOfiNdO30Ot6zLKIz/ngiwrbWw2hs1gaADbtkHCAtOQmn9s+V2UDFMhuodxbHARh26TBM5Fn7CvDsT4GxNwEV1RG7TKBxgLKSfPTrzXGARIQFn2GiwYvXA588A1yzDOhv+v/mOHZxgL65GV4DwMnHcRwgEWDBZ5hocGSfXBYxJR249j0gLSvqXejsIqz76gAam1uwYrMcBL7efxSAdxygrCQfp/XP5ThAHMKCzzDRYtM7wFOTgDOvA8bPcbs33XEA/XwAYxxAlYUYVcxxgHiABZ9hosmrNwMr5gM/WwwMPNft3vjQerANjZ7lIVc0tWDN9n3dcYAhxx3TXRaibICMAzA9CxZ8hokmbYeA+WOBjqNA1QdARq7bPbLlcFsnPtm2Fw2b5doAHzVrcYAT9HGAAfk4+dhjkMRxgJiGBZ9hos3WBuDxHwCn/xSY/LDbvQmKzi7C2q/2o7GpFSua5CIxKg6Q44kDlHIcIGZhwWcYN3hrJvDefcDlzwJDxrvdm5AxxgEamlqwURcHOK1/rldZiNysVJd7nNiw4DOMG3S0AY9+H/j2a7ksYnaB2z1yjBY1H8CTDrp62z50dGlxgLIBqjw0xwGiDQs+w7jFV2uABecBQy8ELv1H3C6LqI8DNDePahkAABwASURBVHjiAN/q4gBlA/K7nwI4DhBZuJYOw7jF8cOB8j8Ab90NrH4eOO1St3sUETLTkjFmYAHGDJRPMcY4wPJNe/DSqh0AvOMAowfk49R+HAeIFmzhM0yk6eoEHr8A+GaddO3knOB2j6KOdxxAxgKMcYCyAZ75AEUcBwgHdukwjNvs+RJ45LtA0VnAFf8bt66dYGg52IbGJpkKqo8DCGGYD1CSjxM4DhAwLPgMEwuseBR49SZg4v1A6c/d7k3McbitE6u27u1+CviouRUH2zoBAP16Z6K0JI/jAAHAgs8ExNy5QFkZUF6u7auvBxoagJtvDrwNY0FXF1B7CbB1BVD1PpA/0O0exTQdnV1Y+9UBLzfQ7gPafIBSzyLxZSUcB9DDQVvGFKN4l5UBF18MXHYZMH++FPIpU4BFi7Rjysq0feXl5m0YC5KSgIseBv5+lqysedUrfpdF7NEsXAjcfjuwZQtQVATMmgVMmxbw4SnJSRjeLxfD++Xi6nMGgIiwtUUfB2hB3dpdAIC0lCScrpsPMKo4H7mZHAfwgYhichs1ahQxkaWujqiwUP5U73NyiHJziaqrvT8zO86uDWPDqmeI7sohev9Bt3sSHLW1RMXFRELIn7W19m2zsojkcu9yy8ryf0yg5/fwzYEjtHTNTvrTks/ooofep5Nue4WKb1lCJbcuoR/e/w7d8cJqevHjbbS99VCQv2zPBXItcVNdZZdOgqMs9KoqYN48aanX1wMzZwLV1cCMGebH3Xmn/zaMBUTAc1cAG94Arn0XOHaY2z3yz8KFQGUlcOiQti8rC1iwwNxqLykBmpt99xcXA01N5ue/+mqgvV3bl5oKPPFEUE8Fh9s68fHWVjR6ZgQb4wBlJVpZiMHH9orLOAD78Blb9OJdXu47AOj99YD5IGFsw/jh4DfAw2fKFM1fvOXYsogRI1gBT0qSA5sRIWQsw0hhIbBnj+/+ggLgm2+C7W03dnGA3MxUlHbPB8jD8H65SE/p+S42FvwEJNDgql68H3xQ/j++8IKvf16dx7hPvb/kEmDqVA7mBsUXS4DnpgHfuxn4/u1u98aeYAU82AHCLk3VQY0iImxpOdS9NkBDUwu+3H0QgIwDnNG/d3cgeGRxXo+MA9gJflK0O8NEBxVcra+X75Uwl5VpbfTi3asXMHas7//WJZdI0VY0NHgPAOXlWsDW3/UYA8MmAqdfDrxXA2xf6cw5Fy6UYpuUJH8uXGi+L1iKioLbf+GFwe23w4n+exBCoLggGz8Z1R+zf3wa3vrdeVh5x/mYP30UrjyrGEc7u7Dg3U24+skGnDHjDVzwwLuofnENXlq1HTv3HQ75ujGDlXPf7Y2DtqEzZ44MpOqDq7m5RJWVvu0qK73b1tTIfaNHywCuPiBbWel7jro6eR71OjubaPp032CwasMYONRKVDOM6G+lRG1hBhbNAqVpaUSpqcEFTwM9d1YWUVWVeaC1uNi7rdqKi7Xz6Y/r1cu8PeBM/4Pg4NF2+mDDbnrwzfV0xWPL6ZTq16j4liVUfMsSOvuet+iGZz6i2uVNtO6r/dTZ2RWxfoQKbIK2rgu71caCHzr67JvqavktZ2baZ9wo0c/Jkf9f6elykFDH1NQQZWTIrabG+9iaGk3Qp0+X15s+3ff8jAUb62TWzmu3hnceK5G1E95gMIp0VZV1Jo4Q5tcVwnzwMIp6JPofIu0dnbR62176n/c20XVPN9Komcu6B4DT715K1zy5gua9vZEam/bQkfaOqPXLCjvBZx9+nFJfD0yeDHR0yP+QtDTNN2/k2muBZ58FbrgBqKmRiRjp6cD55wP/+Q8wfjxQWwvcd59sf9NNwBVXAK+9Btx2G3DPPd5uHdVeteGgbgC8chPQ8Chw5RJgwNjQzmHlZzfDyvduhT6nPj9f7jMLsgLSTw9Y+/CtPguGYPvvIETecYAVTS3YZBYHGJCPkUXRjwPY+fBdt+StNrbw/aNcN3qU+6SuTjOiqqvtLW1928xMaZ0LId0zY8d6W+xEmhU/dqz304H+/EZL319/E56j3xI9eAbRX4YTHd4X2jkiZeGbWeT+tqqq4PYHu0XRwg+Ebw4codfX7KSZL39GkyzmA7y0ajvt2Bv5+QBgl058YjZxSr2vrJTuGf3kKCtxVb53QHPlTJxIlJLiLezKv19Y6DsQ6MVc9WP6dKkTZv0ze5/wbPkP0R97E734q9COj5QPP5iBBCBKTrb34dsdG6kYRJRRcYAHlpnHAX7z7McRiwOw4McxZrNegxFW9VllJdHIkdRt5U+aJF/36ycHg6oqafWnpsrXhYVa+6oqbSCpqQlM5HmWrgXL7pL+/HWvh3a82WzVEGawemHlj7fb7Hz4dsdFov8xQHtHJ326NZA4QAsdbe8M61p2gs8+/B6KPs9eTZyaPh0YPlx+HmiBM3UeQNbRaWuT/3nt7cCECcDLL0tf/rJlwLBhQG6u9Osrf/4tt8g4QU0NMGIE8KMfyZm3N95ofW2epWtDx1G5LOLB3bJ2fla+2z2ynhRlhT8f/rZtQGen72fJyfKPyYww6/LEGkSE5j2HuieENTa1YtM3Mg6QnpKE00/sjTLdfICcjMDjAOzDj0P0GTLKfSKElkETjL/cmKmTni63nBzNFz9unLTcR4+WFn1urnwSyM6WmTsnneTfYp8zR+uvsvD1GT6Mh52fEt1dQLToSrd7IlH+vmD893a1dOz8+2aEUpenB7L7wBF6bbUnDvC392igLg5wwQPvUvWLq2nxqu20c+9h2/OAXTrxycSJUuRV3ntNjZZvH4xbxzg4qFTOwYO9xXnMGOnSyczUnsxHjdJcrOPGyQHBKODq/DU12qBUV6f1Xw1SjI537pWunU//5ex5A3GZGHPrQw2qWuXoE8nPkpOp2+dvJfZE/nP645SDR9vpfU8cYNqjy2mYLg5wzmwtDrDeEAewE3x26fRgrr0WePJJ6YZRdXAmT5YlDvTljc1q3piVXrj2WmD7dumyGTFCunEmTQLOOQdISZHpmGZP3Wlp8kl9wwYgIwN49VWt7EJDgzbr95JLgCFDpBunrU0ed+ed8nxcfsFAZwfwxAXANxs8yyL2Df+cZgXQUlNlimNbW/jnNxJC8TNTgi3rEKd0dHbhi50HvMpDf/Ot/N56Z6WitFiWhr7uvEHs0unpmLlo1GSozEz5hGucGUukWevV1d779Ra/crWoJ3eVjTNsmGa5FxZqgVuAKCnJ3OjKzrYPHFdXy/6a9YkxsHsD0czjiJ7+MVGXA5kcoVrr4WzZ2aH3Vz152D1FJDBdXV20afe39FzDFvr9v1bReffWU/EtS9ilEw8YBVTvHlGirs+OUcdkZVmXOtCnTwpBNHSot38+N1e6bADZJjtbGwTMRH/ECDnoVFSYu4/0/eQsnQBZ/oh07TQ+Ef65Qsm2cWIrKAg+w6a2VqZkWp0zDn34TrBr/xEW/HhBbyVnZ2u+cLUvJ0f60PV5+MqvP3GifD9hgpaGqS+9oHLmU1O1/7Nx47SfKjXTLn6XkaEFeaurfXPzc3JkMDgjw/wpgDGhs5PoyYlEf+pLtGdTeOcK18JXPvdwttTUwAaAggLrc/TQ1MxoETHBB5APYBmADZ6feRbtOgGs8myLAzk3C745SqArKrSMF73Vr584lZsr9+XkSKHWi21lpZZhM326bKuf33LccfLnpEnyGhMmyPbqfz4jw1vozzxTe69cQKp/aqCYMEEbhPxNBmN0tG4h+nN/ov+5gKgzjFotep+cXoDtLOlIb2aWem2t/TE9PCc/0kRS8OcCuNXz+lYAcyzafRvsuVnwfTFWv7QqZKZmwypXjbLeleVNpLmEUlK8JzPqjbhRo7Rz5uTIz4QgOvlk7/+/fv20AaSoSF5LL/b6QYAraIbIR7XStfPBXwM/Rp99U1DgO2NVCC2FUrVzQ/T1vvja2uAKqbFrx4dICv46AH09r/sCWGfRjgU/TMyCoLm5vuUTFOpJQJVAyMz0bqcCtXrjrl8/TfCTkjQ9mDNHc+8ov71qp8R/2DDr0gp6Nw8TIl1dRP+cSjSjD9HXn/tvH2j9G2Pg043ALhDe9RM8eGskkoK/V/da6N8b2nUAaASwHMBkm/NVeto1FhUVRfq+9CisJlJVVPiKqTEYqy91bJxkZaYJKnA7Zow2EOjFXf8EoP7fkpO9+6cvnqbP5VexA+PvwdZ+ABz4mmjOAKJHxhJ1tNm3DVQ4hfA+zqniZsFsyj0T6hOG8XdIcMISfABvAlhjsl1kFHgArRbn6Of5ORBAE4CT/F2XLXz/2NXRUS4VFaw1+s0rK6VLKDVVs97VNmaMFvTVT7BS9fCTkzVLf9Qo2VY/4UtNqBo8WBtAVH9VYFgtpMKB2yD57CXp2qn7s327QMVT+ekKCoKfURsrG1v4Xrju0jEc8ySAn/hrx4Jvj1WeuxJdY4aMej9+vCb4WVla8DUlRauOCchBID1dvk5KklqQnS3FWrlzlKu1qkoT/fR0LV1UDSr62bXZ2dKNZOWKYgLgf39J9Mc8om0rrdvYZbnE08Y+fB/sBD/cNW0XA7jS8/pKAC8ZGwgh8oQQ6Z7XhQDOAfB5mNdNSObO1daMVWvLAtoyoYsWASedBNx7r1wnuqFBHgPImbL33gv8/vdyNu5rr8kCZmecIT8XQm5JSXKC5LJlwNGjsiBbWhpw5IicEdvVJetejRoFXH01MGaMnMW7ebOcrHn0qFz45MYb5Wzfn/1MLqZy662yGFtKilwwpaxMXr+qSvZT/V6K+nqt74yB8XOBXscBL1wHtJuss7pwIXDggO/+5GSgoEB+0cnJke9nJBFCTu9esKBHF1GLOlYjQSAbgAIAb0GmZb4JIN+zvxTAY57XZwNYDeATz89rAjk3W/i+WFn1xvRM5YYdM0abQausbDU7NytLbunp3i4dlXOvrHpVA0d9npSk+e5V5o1y3egnVKmiaHV13k8O06drriE1QUtfA8js9yTixVN82PCmdO28/gffz6z89wUFWhu3LfNA3DQJWkMnXMATr+IHq3ryxv0q5VqJrVpc3Dg7V1XGVC4aIaQPvrJSG0hUfj8g3Tm5ud6TslTgV830NRZJU24jvStI/3lurjw2N9fazcOLp5jw8m+J7sol2vye9367WvQKq9oY0dgqKvxP4vJXcZOxhAU/zrCqj2Pcr1Iyk5O9V6hSVr/KpFH7lV9fTdhSA0dWlhwElOinpXmL/oQJmpWuSjIoH35OjndbpUVqERU1Q7iy0vr3UvDiKQaOfkv0wOlE9w8nOrJf2x+IZeyW2J9ySmDpokrY42Dxk2jDgh9HBGvhn3qq9j80dqyWiKECrWqiZXa2FvCtrNRcKGpgUDn/6ilh4kTv+vb6Mg0VFbJPc+Z4PymoQWfwYPmZ2axhf3Xy/Q0KCUfzh9LKf+nX2r5ALGO3BD+Y1Et23YQEC36cEKwPv6rK2/+emiq3jAwp5Kq6pvLr21XbzMz0nrBl7Iea3Ws1EBkXatFb+PoYA5G3S8js92cL38Ab1b7LIvqzjHtCFg/n14cEC36cYBW4VKmWivHjNQtelTlQLhX1fvRoX5+5MQiqBLaiQpu4pais9A2yKqtcpWjqBwh9UFYNSErQVVkGfaqm0cJnH74N7UeIHh5DdO9gooN7Ajsm2BIGbmxs4YcEC36CogYIY0VNJbx27hF/Aqt/b7T6VWVMdR3ly1fHqvZGQTebNWz8XYx9TNgsHSM7VhHdnU+06KrAj9E/BYRbCTOcILC+mJPaODgbMiz4cYw/IfTnBjLW19GLstHqt3oCMHOxBOt+YXeNA7w9V7p2Vj8f/LGB1t4BpDvIbJnEQI83WvEcnHUUFvw4xp8lroRbL+YqS0efK28WC7Bzm6jj9E8JxgEh0AAru2scoqOdaEE50exiov07gzu2tjYwv76d5e1vhSqzLVx4oPCBBT/OCcQ6tnPBqM/14u/P0lZuGxUHUFk8VllDduLN7hoH2b2eaOaxRLU/CXxZxECt84ICe0HVC36g2TjhwHn6prDgJwCBWNOBinCg59KXZ1bir48ZsMXuEh/O8yyL+GRg7a2sclVYLRDL2Ux8/Yl+uEFZnolrCgt+nGOXTROsmyXQQcHOpcMWu8t0dhI9MYFo1glELZv9tw9kZq4/QqljH64l7kS/4xAW/DhGbz3r3SwqN97oZsnNtV5kPFjLnAOtMUxrM9GsfkSPj5cDgB1OWMrB1rLX1/UJFbbwTWHBj2OM1rQS/YoKXzeL3s9uJuZmlrk+315/DTXRit02McxHT0vXzr8fsm/nhC/crmCbWXzAXzwgENiHbwoLfoJhdLMod49xJm0gbhYrq59XruoBdHURLbxMLou4a61923CzXezE1yoDyAlx5iwdH1jw4xg7C99Y4ybU+jPsuunB7P+KaHYJ0fxz/S+LGC524svul6jBgh/H2PnwjamT4Yg1Fy3rwax5Qbp26mc7f+5ALWwOsEYNFvw4xypLR/ntw10/li38OOD5a2Tphe0fOXfOYHzobOFHDRb8BMDMAnciPZJz6uOEQy1E9w0hemg0UdthZ84ZjIhzgDVq2Al+uGvaMjFAfb1cV7a6Wv5U68PefDNQXq61U2vE3nyz97F2a8eqtXPVurPl5d7ved3ZHkJmHjDpIWD3WqD+T86cc8uWwPdPmybXny0u5vVo3cRqJHB7Yws/MIKxwMOx1tnSjxMW3yAXTGn6IPxzsZsmJgFb+PGLssCVJa+3wI2oz6ZMAe68U/7UH2tHOMcyMcQP/gTkFQMvVgFHvw3vXLNmAVlZ3vuysuR+JjaxGgnc3tjCjxzhZNxwtk4c0PSBtPIX3xD+uTgPPuYAW/iMwsrfH+ljmRii+Gzg7P8CVj4BbHgzvHNNmwY0NQFdXfIn++RjGhb8BKK+XnPFzJihuWgCEe5wjmVikPI7gD7DgMX/BRxudbs3TJRgwU8ggvH3O3ksE4OkZgAXPwIc3A28+nu3e8NECSFdPrFHaWkpNTY2ut0NxoK5c4GyMu+gbX29HAD0aZ9MjPP2HODtPwOXPgl852K3e8M4gBBiJRGVmn3GFj4TEmVl3i4d5fIpK3O3X0yQjL0ROGEEsORG4MDXbveGiTAs+ExIcJpmnJCcClw8H2g7CLz83zKTnolbWPCZkCkvB6qqgJkz5U8W+x5KnyHA+XcB618HPq51uzdMBGHBZ0KG0zTjiDOrgOLvAq/fBrQ2u90bJkKw4DMhwWmacUZSEjD5YQAEvPQrmVfPxB0s+ExIcJpmHJJXAlxwD9D0HrBivtu9YSIAp2UyDKNBBPzzMmDzO8C17wF9Tna7R0yQcFomwzCBIQQw6a9Aaibw4nVAZ4fbPWIchAWfYRhvjjkemPAXYPtK4P373e4N4yAs+AzD+DL8EmD4j4F3ZgM7P3G7N4xDsOAzDGPOhfcBWYXA/10LdBx1uzeMA7DgMwxjTlY+cNFDwO4vgHpe1CQeCEvwhRCXCiE+E0J0CSFMo8KedhcIIdYJITYKIW4N55oMw0SRweOAkVcCH/wV2LLc7d4wYRKuhb8GwCUA3rVqIIRIBvAwgPEATgFwuRDilDCvyzBMtPjhLKB3EfDCdeEvi8i4SliCT0RfENE6P81GA9hIRJuIqA3AswAuCue6DMNEkfRjgMnzgNYmYFm1271hwiAaPvx+ALbq3m/z7PNBCFEphGgUQjTu3r07Cl1jGCYgSs4BzvoV0Pg4sDHMZREZ1/Ar+EKIN4UQa0w2x610IlpARKVEVNqnTx+nT88wTDh8vxooHAK8xMsi9lT8Cj4RnU9Ew022lwK8xnYAJ+re9/fsYximJ6GWRfx2F/AqL2vWE4mGS6cBwGAhxAAhRBqAqQAWR+G6DMM4Tb+RwLk3A6sXAZ8HavMxsUK4aZkXCyG2ATgLwCtCiKWe/ScIIV4FACLqAPBfAJYC+ALAIiL6LLxuMwzjGmN/B/Q9A3j5N9LaZ3oMXC2TYZjg2bUWmP89YFAFMPWfsugaExNwtUyGYZzl2KFARTWw7lVg1T/d7g0TICz4DMOExpjrgaKzgddvBfZu9d+ecR0WfIZhQiMpGZj8d6CrE3jpel4WsQfAgs8wTOjkD5ClFza/CzQ86nZvGD+w4DMMEx6jrgIGjQOW3QV8s9Ht3jA2sOAzDBMeQgCT/gakpAMvXMvLIsYwLPgMw4RPTl9gQg2wvRH44AG3e8NYwILPMIwzDP8xcMpk4O3ZwFer3e4NYwILPsMwziCEXPw8M4+XRYxRWPAZhnGO7ALpz9/1GfD2PW73hjHAgs8wjLMMuQAYcQXwwYPAlv+43RtGBws+wzDO88N7gJz+wIvXAW0H3e4N4yFmi6cJIXYDaI7iJQsBfBPF6/UU+L6Yw/fFHL4vvkT7nhQTkekKUjEr+NFGCNFoVWEukeH7Yg7fF3P4vvgSS/eEXToMwzAJAgs+wzBMgsCCr7HA7Q7EKHxfzOH7Yg7fF19i5p6wD59hGCZBYAufYRgmQWDBZxiGSRASVvCFEJcKIT4TQnQJISxTpoQQFwgh1gkhNgohbo1mH91ACJEvhFgmhNjg+Zln0a5TCLHKsy2Odj+jhb/vXwiRLoR4zvP5f4QQJdHvZXQJ4J5cJYTYrfv7+IUb/Yw2QojHhRC7hBBrLD4XQoi/eu7bp0KIkdHuY8IKPoA1AC4B8K5VAyFEMoCHAYwHcAqAy4UQp0Sne65xK4C3iGgwgLc87804TERneLZJ0ete9Ajw+78GQCsRDQJwP4A50e1ldAnif+I53d/HY1HtpHs8CeACm8/HAxjs2SoBzItCn7xIWMEnoi+IaJ2fZqMBbCSiTUTUBuBZABdFvneuchGAf3he/wPAZBf74jaBfP/6+/U8gAohhIhiH6NNIv5PBAQRvQugxabJRQCeIslyAL2FEH2j0ztJwgp+gPQDsFX3fptnXzxzHBHt9Lz+CsBxFu0yhBCNQojlQoh4HRQC+f672xBRB4B9AAqi0jt3CPR/4scet8XzQogTo9O1mMd1PUmJ5sWijRDiTQDHm3x0OxG9FO3+xAp290X/hohICGGVt1tMRNuFEAMB1AkhVhPRl073lemRvAzgGSI6KoS4FvIJ6Psu94lBnAs+EZ0f5im2A9BbJ/09+3o0dvdFCPG1EKIvEe30PG7usjjHds/PTUKItwGMABBvgh/I96/abBNCpADIBbAnOt1zBb/3hIj0v/9jAOZGoV89Adf1hF069jQAGCyEGCCESAMwFUDcZqR4WAzgSs/rKwH4PAkJIfKEEOme14UAzgHwedR6GD0C+f719+snAOoovmcz+r0nBr/0JABfRLF/scxiAD/zZOuMAbBP5z6NDkSUkBuAiyF9aEcBfA1gqWf/CQBe1bW7EMB6SOv1drf7HYX7UgCZnbMBwJsA8j37SwE85nl9NoDVAD7x/LzG7X5H8H74fP8AZgCY5HmdAeBfADYCWAFgoNt9joF7cg+Azzx/H/UAhrrd5yjdl2cA7ATQ7tGWawBcB+A6z+cCMsPpS8//TWm0+8ilFRiGYRIEdukwDMMkCCz4DMMwCQILPsMwTILAgs8wDJMgsOAzDMMkCCz4DMMwCQILPsMwTILw/xY4xBkYonN9AAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "9tUxF2QQBxK5", | |
"colab_type": "code", | |
"outputId": "f33ddd31-0582-4d5b-8e20-d5afb2eedb22", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 265 | |
} | |
}, | |
"source": [ | |
"plot_data(x_train ,y_train)\n", | |
"b = model.weights[1].numpy().reshape((1,-1))\n", | |
"w = model.weights[0].numpy()\n", | |
"plot_line(w[0,0], w[1,0], b[0,0]) \n", | |
"plot_line(w[0,1], w[1,1], b[0,1]) " | |
], | |
"execution_count": 34, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "6j0SlgipBTtT", | |
"colab_type": "code", | |
"outputId": "36adbbbb-7cdd-4468-efc6-321fcf1e6308", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
} | |
}, | |
"source": [ | |
"model.fit(x_train, y_train, batch_size = 16, epochs=100)" | |
], | |
"execution_count": 35, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Epoch 1/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6934 - accuracy: 0.4875\n", | |
"Epoch 2/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6931 - accuracy: 0.4700\n", | |
"Epoch 3/100\n", | |
"25/25 [==============================] - 0s 980us/step - loss: 0.6928 - accuracy: 0.4375\n", | |
"Epoch 4/100\n", | |
"25/25 [==============================] - 0s 994us/step - loss: 0.6925 - accuracy: 0.3900\n", | |
"Epoch 5/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6922 - accuracy: 0.3750\n", | |
"Epoch 6/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6920 - accuracy: 0.3500\n", | |
"Epoch 7/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6917 - accuracy: 0.2750\n", | |
"Epoch 8/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6913 - accuracy: 0.2725\n", | |
"Epoch 9/100\n", | |
"25/25 [==============================] - 0s 989us/step - loss: 0.6910 - accuracy: 0.2575\n", | |
"Epoch 10/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6906 - accuracy: 0.2525\n", | |
"Epoch 11/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6902 - accuracy: 0.2500\n", | |
"Epoch 12/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6897 - accuracy: 0.2500\n", | |
"Epoch 13/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6894 - accuracy: 0.2525\n", | |
"Epoch 14/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6889 - accuracy: 0.2525\n", | |
"Epoch 15/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6882 - accuracy: 0.2625\n", | |
"Epoch 16/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6876 - accuracy: 0.2700\n", | |
"Epoch 17/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6868 - accuracy: 0.3000\n", | |
"Epoch 18/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6860 - accuracy: 0.3375\n", | |
"Epoch 19/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6851 - accuracy: 0.3775\n", | |
"Epoch 20/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6842 - accuracy: 0.4550\n", | |
"Epoch 21/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6831 - accuracy: 0.4800\n", | |
"Epoch 22/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6819 - accuracy: 0.4900\n", | |
"Epoch 23/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6805 - accuracy: 0.4950\n", | |
"Epoch 24/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6791 - accuracy: 0.4975\n", | |
"Epoch 25/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6775 - accuracy: 0.5025\n", | |
"Epoch 26/100\n", | |
"25/25 [==============================] - 0s 971us/step - loss: 0.6757 - accuracy: 0.5150\n", | |
"Epoch 27/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6738 - accuracy: 0.5300\n", | |
"Epoch 28/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6717 - accuracy: 0.5400\n", | |
"Epoch 29/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6694 - accuracy: 0.5500\n", | |
"Epoch 30/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6670 - accuracy: 0.5825\n", | |
"Epoch 31/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6644 - accuracy: 0.5950\n", | |
"Epoch 32/100\n", | |
"25/25 [==============================] - 0s 992us/step - loss: 0.6615 - accuracy: 0.6000\n", | |
"Epoch 33/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6587 - accuracy: 0.6125\n", | |
"Epoch 34/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6553 - accuracy: 0.6350\n", | |
"Epoch 35/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6518 - accuracy: 0.6375\n", | |
"Epoch 36/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6482 - accuracy: 0.6400\n", | |
"Epoch 37/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6443 - accuracy: 0.6425\n", | |
"Epoch 38/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6402 - accuracy: 0.6425\n", | |
"Epoch 39/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6359 - accuracy: 0.6525\n", | |
"Epoch 40/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6313 - accuracy: 0.6625\n", | |
"Epoch 41/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6266 - accuracy: 0.6625\n", | |
"Epoch 42/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6217 - accuracy: 0.6750\n", | |
"Epoch 43/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6166 - accuracy: 0.6850\n", | |
"Epoch 44/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6113 - accuracy: 0.6975\n", | |
"Epoch 45/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6060 - accuracy: 0.6950\n", | |
"Epoch 46/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.6002 - accuracy: 0.7075\n", | |
"Epoch 47/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5944 - accuracy: 0.7275\n", | |
"Epoch 48/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5886 - accuracy: 0.7275\n", | |
"Epoch 49/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5826 - accuracy: 0.7375\n", | |
"Epoch 50/100\n", | |
"25/25 [==============================] - 0s 995us/step - loss: 0.5765 - accuracy: 0.7600\n", | |
"Epoch 51/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5702 - accuracy: 0.7700\n", | |
"Epoch 52/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5640 - accuracy: 0.7875\n", | |
"Epoch 53/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5575 - accuracy: 0.8075\n", | |
"Epoch 54/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5511 - accuracy: 0.8175\n", | |
"Epoch 55/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5446 - accuracy: 0.8375\n", | |
"Epoch 56/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5381 - accuracy: 0.8550\n", | |
"Epoch 57/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5315 - accuracy: 0.8650\n", | |
"Epoch 58/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5249 - accuracy: 0.8725\n", | |
"Epoch 59/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5184 - accuracy: 0.8875\n", | |
"Epoch 60/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5119 - accuracy: 0.8975\n", | |
"Epoch 61/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.5053 - accuracy: 0.9175\n", | |
"Epoch 62/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4987 - accuracy: 0.9350\n", | |
"Epoch 63/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4923 - accuracy: 0.9400\n", | |
"Epoch 64/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4858 - accuracy: 0.9525\n", | |
"Epoch 65/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4794 - accuracy: 0.9675\n", | |
"Epoch 66/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4728 - accuracy: 0.9700\n", | |
"Epoch 67/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4665 - accuracy: 0.9775\n", | |
"Epoch 68/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4602 - accuracy: 0.9825\n", | |
"Epoch 69/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4540 - accuracy: 0.9825\n", | |
"Epoch 70/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4477 - accuracy: 0.9850\n", | |
"Epoch 71/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4416 - accuracy: 0.9850\n", | |
"Epoch 72/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4355 - accuracy: 0.9875\n", | |
"Epoch 73/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4295 - accuracy: 0.9875\n", | |
"Epoch 74/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4236 - accuracy: 0.9875\n", | |
"Epoch 75/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4177 - accuracy: 0.9925\n", | |
"Epoch 76/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4118 - accuracy: 0.9925\n", | |
"Epoch 77/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4062 - accuracy: 0.9975\n", | |
"Epoch 78/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.4004 - accuracy: 0.9975\n", | |
"Epoch 79/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3948 - accuracy: 0.9975\n", | |
"Epoch 80/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3893 - accuracy: 0.9975\n", | |
"Epoch 81/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3838 - accuracy: 0.9975\n", | |
"Epoch 82/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3784 - accuracy: 0.9975\n", | |
"Epoch 83/100\n", | |
"25/25 [==============================] - 0s 992us/step - loss: 0.3731 - accuracy: 0.9975\n", | |
"Epoch 84/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3678 - accuracy: 0.9975\n", | |
"Epoch 85/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3627 - accuracy: 0.9975\n", | |
"Epoch 86/100\n", | |
"25/25 [==============================] - 0s 984us/step - loss: 0.3576 - accuracy: 0.9975\n", | |
"Epoch 87/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3525 - accuracy: 0.9975\n", | |
"Epoch 88/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3476 - accuracy: 0.9975\n", | |
"Epoch 89/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3427 - accuracy: 0.9975\n", | |
"Epoch 90/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3378 - accuracy: 0.9975\n", | |
"Epoch 91/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3331 - accuracy: 0.9975\n", | |
"Epoch 92/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3284 - accuracy: 0.9975\n", | |
"Epoch 93/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3239 - accuracy: 0.9975\n", | |
"Epoch 94/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3194 - accuracy: 0.9975\n", | |
"Epoch 95/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3149 - accuracy: 0.9975\n", | |
"Epoch 96/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3104 - accuracy: 0.9975\n", | |
"Epoch 97/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3062 - accuracy: 0.9975\n", | |
"Epoch 98/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.3019 - accuracy: 0.9975\n", | |
"Epoch 99/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.2977 - accuracy: 1.0000\n", | |
"Epoch 100/100\n", | |
"25/25 [==============================] - 0s 1ms/step - loss: 0.2937 - accuracy: 1.0000\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<tensorflow.python.keras.callbacks.History at 0x7f730e1c7710>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 35 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "SbmExrOnchB5", | |
"colab_type": "code", | |
"outputId": "25a9fb0a-0e90-4475-e306-417c7206313c", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 265 | |
} | |
}, | |
"source": [ | |
"plot_data(x_train ,y_train)\n", | |
"b = model.weights[1].numpy()\n", | |
"w = model.weights[0].numpy()\n", | |
"plot_lines(w,b)" | |
], | |
"execution_count": 36, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2yE7jY-yO-Qc", | |
"colab_type": "code", | |
"outputId": "1ff13327-cb2b-4c43-e630-60d97de3fb9f", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 153 | |
} | |
}, | |
"source": [ | |
"model.weights" | |
], | |
"execution_count": 37, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[<tf.Variable 'dense_2/kernel:0' shape=(2, 2) dtype=float32, numpy=\n", | |
" array([[2.5343268, 2.3911 ],\n", | |
" [2.5839508, 2.3565872]], dtype=float32)>,\n", | |
" <tf.Variable 'dense_2/bias:0' shape=(2,) dtype=float32, numpy=array([-1.2721628, 1.1203436], dtype=float32)>,\n", | |
" <tf.Variable 'dense_3/kernel:0' shape=(2, 1) dtype=float32, numpy=\n", | |
" array([[ 1.5931506],\n", | |
" [-1.5987793]], dtype=float32)>,\n", | |
" <tf.Variable 'dense_3/bias:0' shape=(1,) dtype=float32, numpy=array([1.0385735], dtype=float32)>]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 37 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "h2sb7VpfDold", | |
"colab_type": "code", | |
"outputId": "f5b89aad-28fb-48d0-e5ef-e7cdce9aa5e8", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 387 | |
} | |
}, | |
"source": [ | |
"activations = model.get_layer(name='dense_2')(x_train)\n", | |
"plot_data(activations.numpy(), y_train)\n", | |
"b = model.weights[3].numpy().reshape((1,-1))\n", | |
"w = model.weights[2].numpy()\n", | |
"plot_line(w[0,0], w[1,0], b[0,0]) " | |
], | |
"execution_count": 40, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"WARNING:tensorflow:Layer dense_2 is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2. The layer has dtype float32 because it's dtype defaults to floatx.\n", | |
"\n", | |
"If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.\n", | |
"\n", | |
"To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.\n", | |
"\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "58g9B60_HSC6", | |
"colab_type": "code", | |
"outputId": "dbf70a20-86df-468d-c1c5-3ccbfa72fe90", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 51 | |
} | |
}, | |
"source": [ | |
"model.evaluate(x_train, y_train)" | |
], | |
"execution_count": 0, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"13/13 [==============================] - 0s 1ms/step - loss: 0.2690 - accuracy: 0.9975\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[0.2690272033214569, 0.9975000023841858]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 70 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "y3CK73FVrF_6", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment