Skip to content

Instantly share code, notes, and snippets.

@iamaziz
Created November 14, 2020 01:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iamaziz/d3fe74c008edd88ed9cd225fe2b8eb3d to your computer and use it in GitHub Desktop.
Save iamaziz/d3fe74c008edd88ed9cd225fe2b8eb3d to your computer and use it in GitHub Desktop.
tf_practice_1_mini_linear_nn.ipynb
Display the source blob
Display the rendered blob
Raw
{
"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