Created
November 14, 2020 01:09
-
-
Save iamaziz/d3fe74c008edd88ed9cd225fe2b8eb3d to your computer and use it in GitHub Desktop.
tf_practice_1_mini_linear_nn.ipynb
This file contains 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": "tf_practice_1_mini_linear_nn.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"authorship_tag": "ABX9TyM1vSZh39AO9KWD0E0jJf5/", | |
"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/iamaziz/d3fe74c008edd88ed9cd225fe2b8eb3d/tf_practice_1_mini_linear_nn.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "HMFPui2BnX_0" | |
}, | |
"source": [ | |
"import tensorflow as tf\n", | |
"from tensorflow import keras\n", | |
"import numpy as np" | |
], | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "8w7X5occojiP", | |
"outputId": "7cebd6fb-cf9b-461c-a840-407ff3ee4eaf", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"source": [ | |
"# -- get the labeled data (relation: y = 2x - 1)\n", | |
"x = np.array([-1, 0, 1, 2, 3, 4], dtype=float)\n", | |
"y = np.array([-3, -1, 1, 3, 5, 7], dtype=float)\n", | |
"\n", | |
"# -- build the model\n", | |
"layers = keras.layers.Dense(units=1, input_shape=[1])\n", | |
"model = keras.models.Sequential(layers)\n", | |
"model.compile(optimizer='sgd', loss=keras.losses.mean_squared_error)\n", | |
"\n", | |
"# -- train the model\n", | |
"\n", | |
"model.fit(x, y, epochs=300, verbose=0)\n", | |
"\n", | |
"# -- check the accuracy\n", | |
"print(model.history.history['loss'][-1])" | |
], | |
"execution_count": 2, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"0.0031866703648120165\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "kBC3Q2QsxNVx", | |
"outputId": "517109f2-a8de-4142-d2c0-262c993e3c2b", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"source": [ | |
"# -- use the model to predict new data\n", | |
"new_data = [9, 10] # correct: 17, 19\n", | |
"model.predict(new_data).tolist()" | |
], | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[[16.859172821044922], [18.835302352905273]]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 4 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "wqXnRGDvzyVJ", | |
"outputId": "899443b5-0ec3-4f4c-80f3-219677499613", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"source": [ | |
"model.summary()" | |
], | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Model: \"sequential\"\n", | |
"_________________________________________________________________\n", | |
"Layer (type) Output Shape Param # \n", | |
"=================================================================\n", | |
"dense (Dense) (None, 1) 2 \n", | |
"=================================================================\n", | |
"Total params: 2\n", | |
"Trainable params: 2\n", | |
"Non-trainable params: 0\n", | |
"_________________________________________________________________\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "uQ62odrouQif", | |
"outputId": "f280f6fd-2a8c-4a57-ba86-84476d7367ba", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"source": [ | |
"# -- inspect the learned params\n", | |
"params = model.get_weights()\n", | |
"params # almost: 2x - 1" | |
], | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[array([[1.9761295]], dtype=float32), array([-0.9259935], dtype=float32)]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 6 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xodoXX-0NOUQ", | |
"outputId": "d4007ef1-5e53-49dd-c425-5eb16446257a", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 174 | |
} | |
}, | |
"source": [ | |
"keras.utils.plot_model(model)" | |
], | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 7 | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment