diff --git a/avishekdas128.ipynb b/avishekdas128.ipynb new file mode 100644 index 0000000..2bdfc1d --- /dev/null +++ b/avishekdas128.ipynb @@ -0,0 +1,1042 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "First_Date_with_TensorFlow.ipynb", + "version": "0.3.2", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "metadata": { + "id": "2XXfXed5YLbe", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# First Date with TensorFlow\n", + "\n", + "Hi all,
\n", + "\n", + "You know what's important for understanding Deep Learning / Machine Learning?
\n", + "Intuition. Period.\n", + "\n", + "And Intuition comes when you run the code multiple times.\n", + "\n", + "So, today I can write a couple of defination and say this is this, this is that.
\n", + "You Google half of the things up. You find answers which you need to Google further.
\n", + "In the process, you probably won't even remember what's the first thing you started out with!\n", + "\n", + "So?\n", + "\n", + "Hence on, I will execute cells with code.
\n", + "The neurons in your brain will optimize a function to get a hold of what each function is doing.
\n", + "**No Theory Just Code.**\n", + "\n", + "I will at max give a defination that extends for a line. That's it.
\n", + "Let's get started!\n", + "\n", + "
\n", + "\n", + "**RECOMMENDED!**
\n", + "Write the code in the cells using the signals sent by your brain to your fingers!
\n", + "Don't just `shift+enter` the cells.\n", + "\n", + "[Source](https://github.com/iArunava/TensorFlow-NoteBooks)" + ] + }, + { + "metadata": { + "id": "gYWUpE-bYKWP", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Essential imports\n", + "import numpy as np\n", + "import tensorflow as tf\n", + "import matplotlib.pyplot as plt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "eKpz5NCIYMdi", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define some tensors\n", + "t1 = tf.constant(5.0, dtype=tf.float32)\n", + "t2 = tf.constant([1.0, 7.0], dtype=tf.float32)\n", + "t3 = tf.constant([[[2.0, 9.0], [4.0, 3.0], [6.0, 5.0]], \n", + " [[2.0, 9.0], [4.0, 3.0], [6.0, 5.0]]])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "vmMcjzTxbWzw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 66 + }, + "outputId": "98b9cf7c-858a-4604-c215-e479cdf99089" + }, + "cell_type": "code", + "source": [ + "# Let's print them out!\n", + "print (t1)\n", + "print (t2)\n", + "print (t3)" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Tensor(\"Const_17:0\", shape=(), dtype=float32)\n", + "Tensor(\"Const_18:0\", shape=(2,), dtype=float32)\n", + "Tensor(\"Const_19:0\", shape=(2, 3, 2), dtype=float32)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "10ahnfjYbcop", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Where's Waldo?
\n", + "I mean, the value?
\n", + "\n", + "So, the thing is you can't print the value of tensors directly.
\n", + "You have to use `session`, so let's do that!" + ] + }, + { + "metadata": { + "id": "ol6O5I7Tb2nb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 196 + }, + "outputId": "c6e58411-ccde-46a9-cea0-386515de7275" + }, + "cell_type": "code", + "source": [ + "sess = tf.Session()\n", + "print (sess.run(t1))\n", + "print (\"=======================\")\n", + "print (sess.run(t2))\n", + "print (\"=======================\")\n", + "print (sess.run(t3))\n", + "sess.close()" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5.0\n", + "=======================\n", + "[1. 7.]\n", + "=======================\n", + "[[[2. 9.]\n", + " [4. 3.]\n", + " [6. 5.]]\n", + "\n", + " [[2. 9.]\n", + " [4. 3.]\n", + " [6. 5.]]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "rXKfVs_zb-kU", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Aaahaa!! Just printed those tensors!!!
\n", + "Feels good!
\n", + "\n", + "For some of you, who are like, dude you got \"No Theory Just Code\" in bold
\n", + "And you are still using the markdown cells for the theory ?!\n", + "\n", + "I am just gonna say I am a unreasonable man.
\n", + "\n", + "\n", + "So, you are programming with tf.
\n", + "What ever you do is broken down to 2 basic steps:\n", + "- Building the computational Graph!\n", + "- Execute that graph using `session`!\n", + "\n", + "That's all!\n", + "\n", + "
\n", + "\n", + "Let's compare this 2 steps with what we did above!
\n", + "So, I defined 3 `tensor`s and these 3 `tensor`s formed my computational Graph.
\n", + "And then I executed each tensor in this graph using a `session`.\n", + "\n", + "That simple!\n", + "\n", + "
\n", + "\n", + "Now, let's define a few more computational graphs and execute them with sessions.\n", + "\n", + "Okay, to start with let's build this computational graph!\n", + "\n", + "![Comp Graph 1](https://raw.githubusercontent.com/iArunava/TensorFlow-NoteBooks/master/assets/comp_graph_1.jpg)" + ] + }, + { + "metadata": { + "id": "FyVz0GNqgreZ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + }, + "outputId": "4e53ab2a-94d7-4cb9-f75a-248b91cbba29" + }, + "cell_type": "code", + "source": [ + "# Let's define the graph\n", + "comp_graph_1 = tf.multiply(tf.add(57, 59), 28) #building my own computational graphs\n", + "\n", + "# Alternatively\n", + "comp_graph_1_alt = (tf.constant(57) + tf.constant(59)) * tf.constant(28) #building my own computational graphs\n", + "\n", + "# Let's execute using session\n", + "sess = tf.Session()\n", + "print ('Comp Graph 1 : ', sess.run(comp_graph_1))\n", + "print ('Comp Graph 1 Alt: ', sess.run(comp_graph_1_alt))\n", + "sess.close()" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Comp Graph 1 : 3248\n", + "Comp Graph 1 Alt: 3248\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "SVMMtuFYhaQB", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Let's define a sligtly more involved graph!\n", + "\n", + "![alt text](https://raw.githubusercontent.com/iArunava/TensorFlow-NoteBooks/master/assets/comp_graph_2.jpg)" + ] + }, + { + "metadata": { + "id": "4856BTvRhiBb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 66 + }, + "outputId": "8ae1743a-7d9a-4dc3-e0ca-253cedcdce89" + }, + "cell_type": "code", + "source": [ + "# Let build the graph\n", + "# We need to cast cause the tensors operated on should be of the same type\n", + "comp_graph_part_1 = tf.cast(tf.subtract(tf.add(7, 8), tf.add(9, 10)), \n", + " dtype=tf.float32)\n", + "comp_graph_part_2 = tf.divide(tf.cast(tf.multiply(7, 10), dtype=tf.float32), tf.constant(19.5))\n", + "comp_graph_complete = tf.maximum(comp_graph_part_1, comp_graph_part_2)\n", + "\n", + "# Let's execute\n", + "sess = tf.Session()\n", + "part1_res, part2_res, total_res = sess.run([comp_graph_part_1, comp_graph_part_2, comp_graph_complete])\n", + "print ('Complete Result: ', total_res)\n", + "print ('Part 1 Result: ', part1_res)\n", + "print ('Part 2 Result: ', part2_res)\n", + "sess.close()" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Complete Result: 3.5897436\n", + "Part 1 Result: -4.0\n", + "Part 2 Result: 3.5897436\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "B-_ZDtEbj4N0", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Cool! Let's go! Build another graph and execute it with sessions.
\n", + "\n", + "But this time, it's all you!\n", + "\n", + "Build this graph and execute it with `session`!\n", + "\n", + "![alt text](https://raw.githubusercontent.com/iArunava/TensorFlow-NoteBooks/master/assets/comp_graph_3.jpg)\n", + "\n", + "_Remember that `tensors` operated on should be of the same type!_
\n", + "_Search up errors and other help you need on Google_" + ] + }, + { + "metadata": { + "id": "-uHNe1BolJY0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 66 + }, + "outputId": "1938af69-0314-47bb-e998-05ed1e1c024b" + }, + "cell_type": "code", + "source": [ + "# Build the graph\n", + "comp_graph_1 = tf.divide(tf.multiply(tf.cast(tf.constant([9,10]),dtype=tf.float32),[7,8.65]),5.6)\n", + "comp_graph_2 = tf.cast(tf.add([7.65,9],[13.5,7.18]),dtype=tf.float32)\n", + "comp_graph_total = tf.minimum(comp_graph_1,comp_graph_2)\n", + "\n", + "# Execute \n", + "sess = tf.Session()\n", + "part1_res, part2_res, total_res = sess.run([comp_graph_1, comp_graph_2, comp_graph_total])\n", + "print ('Complete Result: ', total_res)\n", + "print ('Part 1 Result: ', part1_res)\n", + "print ('Part 2 Result: ', part2_res)\n", + "sess.close()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Complete Result: [11.25 15.446429]\n", + "Part 1 Result: [11.25 15.446429]\n", + "Part 2 Result: [21.15 16.18]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "qmap38WelREN", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Let's do another!
\n", + "It's fun! Isn't it?!\n", + "\n", + "Build and execute this one!\n", + "\n", + "![alt text](https://raw.githubusercontent.com/iArunava/TensorFlow-NoteBooks/master/assets/comp_graph_4.jpg)" + ] + }, + { + "metadata": { + "id": "0ZhYwAlLmEvB", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 98 + }, + "outputId": "3634358b-a73f-4faa-a628-9d647fde97e4" + }, + "cell_type": "code", + "source": [ + "# Build the graph\n", + "comp_graph_1 = tf.multiply(tf.cast(tf.reduce_mean(tf.constant([[1.2,3.4],[7.5,8.6]])),dtype=tf.float32),tf.cast(tf.constant([[7,9],[8,6]]),dtype=tf.float32))\n", + "comp_graph_2 = tf.reduce_sum(tf.multiply(tf.constant([[2.79,3.81,5.6],[7.3,5.67,8.9]]),tf.transpose(tf.constant([[2.6,18.1],[7.86,9.81],[9.36,10.41]]))))\n", + "comp_result = tf.add(comp_graph_1,comp_graph_2)\n", + "\n", + "# Execute \n", + "sess = tf.Session()\n", + "part1_res, part2_res, total_res = sess.run([comp_graph_1, comp_graph_2, comp_result])\n", + "print ('Complete Result: ', total_res)\n", + "print ('Part 1 Result: ', part1_res)\n", + "print ('Part 2 Result: ', part2_res)\n", + "sess.close()" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Complete Result: [[406.2433 416.5933 ]\n", + " [411.41827 401.06827]]\n", + "Part 1 Result: [[36.225002 46.575 ]\n", + " [41.4 31.050001]]\n", + "Part 2 Result: 370.01828\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BnB0b6qCmGmg", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And a final one, before we move on to the next part!\n", + "\n", + "![alt text](https://raw.githubusercontent.com/iArunava/TensorFlow-NoteBooks/master/assets/comp_graph_5.jpg)" + ] + }, + { + "metadata": { + "id": "GQWyCvsQmMcL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 163 + }, + "outputId": "0b767369-6bd3-4d2f-a8ff-f299c04ac541" + }, + "cell_type": "code", + "source": [ + "# Build the graph\n", + "comp_graph_1 = tf.divide(tf.add(tf.reduce_sum(tf.multiply(tf.constant([[7.36,8.91,10.41],[5.31,9.38,7.99]]),tf.transpose(tf.constant([[7.99,10.36],[5.36,7.98],[8.91,5.67]])))),7.0),19.6)\n", + "comp_graph_2 = tf.cast(tf.constant([[1,5.6,6.1,8],[0,0,7.98,9],[0,0,7.6,9],[0,0,0,8.98]]),dtype=tf.float32)\n", + "comp_result = tf.divide(comp_graph_1,comp_graph_2)\n", + "\n", + "# Execute \n", + "sess = tf.Session()\n", + "part1_res, part2_res, total_res = sess.run([comp_graph_1, comp_graph_2, comp_result])\n", + "print ('Complete Result: ', total_res)\n", + "print ('Part 1 Result: ', part1_res)\n", + "print ('Part 2 Result: ', part2_res)\n", + "sess.close()" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Complete Result: [[19.463488 3.475623 3.1907358 2.432936 ]\n", + " [ inf inf 2.4390335 2.1626098]\n", + " [ inf inf 2.5609853 2.1626098]\n", + " [ inf inf inf 2.1674263]]\n", + "Part 1 Result: 19.463488\n", + "Part 2 Result: [[1. 5.6 6.1 8. ]\n", + " [0. 0. 7.98 9. ]\n", + " [0. 0. 7.6 9. ]\n", + " [0. 0. 0. 8.98]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "12NC7XTPsJw7", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Linear Regression\n", + "\n", + "Okay, now we will create a dummy dataset and perform linear regression on this dataset!\n", + "\n", + "\n", + "To get you in the habit of looking up for the documentation, I am not providing what some of the following functions does, Google them up!" + ] + }, + { + "metadata": { + "id": "hW31RZkjtNwI", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Create the dataset\n", + "X = np.linspace(-30.0, 300.0, 300)\n", + "Y = 2 * np.linspace(-30.0, 250.0, 300) + np.random.randn(*X.shape)\n", + "\n", + "# Divide it into train and test\n", + "train_X = X[:250]\n", + "train_Y = Y[:250]\n", + "\n", + "test_X = X[250:]\n", + "test_Y = Y[250:]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "LQKy6U33y4lt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define the hyperparameters\n", + "learning_rate = 0.000005\n", + "n_epochs = 1000\n", + "interval = 50" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1h1-D8K1uT48", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "outputId": "fa384e42-9d4a-4a5c-ece0-516d095efc95" + }, + "cell_type": "code", + "source": [ + "# let's viz the first 10 datapoints of the dataset\n", + "plt.plot(train_X[:10], train_Y[:10], 'r')\n", + "plt.show()" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nFbKIiEgI+H9segJ4BSzp8wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "jrsUps0nu8vj", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "** Question **
\n", + "Why did I created a session to plot the graph?
\n", + "[Ans]" + ] + }, + { + "metadata": { + "id": "P3-iuxE4sjAf", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define the placeholders\n", + "\n", + "# Placeholders?\n", + "# The input to the model changes on iteration\n", + "# So we cannot have a constant in the input as we did before\n", + "# And thus we need placeholders which we can change on each \n", + "# iteration of the training\n", + "\n", + "x = tf.placeholder(tf.float32, name='x')\n", + "y = tf.placeholder(tf.float32, name='y')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "8hPRkaoxvRyV", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define the linear regression model\n", + "\n", + "# tf.Variable?\n", + "# We define the model parameters as tf.Variables\n", + "# as they get updated throghout the training.\n", + "# And variables denotes something which changes overtime.\n", + "\n", + "W = tf.Variable(0.0, name='weight_1')\n", + "b = tf.Variable(0.0, name='bias_1')\n", + "\n", + "pred_y = (W*x) + b" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "cSw1P8bkv96r", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define the loss function\n", + "# We are going to use the mean squared loss\n", + "loss = tf.reduce_mean(tf.square(y - pred_y))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "5G4uQqjsygNj", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Let's define the optimizer\n", + "# And specify the which value (i.e. loss) it has to minimize\n", + "optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(loss)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "ttI7ZT-ozAm1", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 721 + }, + "outputId": "a4fb9c6e-277a-468e-db78-06a6c0601f39" + }, + "cell_type": "code", + "source": [ + "# So the graph is now built\n", + "# Now let's execute the graph using session\n", + "# i.e. lets train the model\n", + "\n", + "# What it is to train a model?\n", + "# To update the paramters in the graph (i.e. tf.Variables)\n", + "# So that the loss is minimized\n", + "\n", + "# Okay let's start!\n", + "with tf.Session() as sess:\n", + " # We need to initialize the variables in our graph\n", + " sess.run(tf.global_variables_initializer())\n", + " \n", + " for epoch in range(n_epochs):\n", + " _, curr_loss = sess.run([optimizer, loss], feed_dict={x:train_X, y:train_Y})\n", + " \n", + " if epoch % interval == 0:\n", + " print ('Loss after epoch', epoch, ' is ', curr_loss)\n", + " \n", + " print ('Now testing the model in the test set')\n", + " final_preds, final_loss = sess.run([pred_y, loss], feed_dict={x:test_X, y:test_Y})\n", + " \n", + " print ('The final loss is: ', final_loss)\n", + " \n", + " # Plotting the final predictions against the true predictions\n", + " plt.plot(test_X[:10], test_Y[:10], 'g', label='True Function')\n", + " plt.plot(test_X[:10], final_preds[:10], 'r', label='Predicted Function')\n", + " plt.legend()\n", + " plt.show()" + ], + "execution_count": 42, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Loss after epoch 0 is 48284.688\n", + "Loss after epoch 50 is 30.664665\n", + "Loss after epoch 100 is 30.65391\n", + "Loss after epoch 150 is 30.643347\n", + "Loss after epoch 200 is 30.632738\n", + "Loss after epoch 250 is 30.62213\n", + "Loss after epoch 300 is 30.611576\n", + "Loss after epoch 350 is 30.600975\n", + "Loss after epoch 400 is 30.590395\n", + "Loss after epoch 450 is 30.579802\n", + "Loss after epoch 500 is 30.569254\n", + "Loss after epoch 550 is 30.558695\n", + "Loss after epoch 600 is 30.548103\n", + "Loss after epoch 650 is 30.537586\n", + "Loss after epoch 700 is 30.527025\n", + "Loss after epoch 750 is 30.516453\n", + "Loss after epoch 800 is 30.505909\n", + "Loss after epoch 850 is 30.495348\n", + "Loss after epoch 900 is 30.484844\n", + "Loss after epoch 950 is 30.474308\n", + "Now testing the model in the test set\n", + "The final loss is: 32.088226\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "jgmH3wwt1src", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Okay, so we are doing good!
\n", + "\n", + "Now, let me just put everything here into one function so that you can tweak the hyperparameters easily!\n", + "\n", + "Or better, do it yourself!" + ] + }, + { + "metadata": { + "id": "OZ5TY7B_4E_v", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def linear_regression(learning_rate=0.000005, n_epochs=100, interval=50):\n", + " x = tf.placeholder(tf.float32, name='x')\n", + " y = tf.placeholder(tf.float32, name='y')\n", + "\n", + " W = tf.Variable(0.0, name='weight_1')\n", + " b = tf.Variable(0.0, name='bias_1')\n", + "\n", + " pred_y = (W*x) + b\n", + "\n", + " loss = tf.reduce_mean(tf.square(y - pred_y))\n", + "\n", + " optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(loss)\n", + "\n", + " with tf.Session() as sess:\n", + " # We need to initialize the variables in our graph\n", + " sess.run(tf.global_variables_initializer())\n", + "\n", + " for epoch in range(n_epochs):\n", + " _, curr_loss = sess.run([optimizer, loss], feed_dict={x:train_X, y:train_Y})\n", + "\n", + " if epoch % interval == 0:\n", + " print ('Loss after epoch', epoch, ' is ', curr_loss)\n", + "\n", + " print ('Now testing the model in the test set')\n", + " final_preds, final_loss = sess.run([pred_y, loss], feed_dict={x:test_X, y:test_Y})\n", + "\n", + " print ('The final loss is: ', final_loss)\n", + "\n", + " # Plotting the final predictions against the true predictions\n", + " plt.plot(test_X[:10], test_Y[:10], 'g', label='True Function')\n", + " plt.plot(test_X[:10], final_preds[:10], 'r', label='Predicted Function')\n", + " plt.legend()\n", + " plt.show()\n", + " pass" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "A6MaclhK4rc6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 551 + }, + "outputId": "80b1f290-0393-490b-a5bc-695c339321dd" + }, + "cell_type": "code", + "source": [ + "# Okay! Now let's tweak!\n", + "linear_regression(learning_rate=0.000034, n_epochs=500)" + ], + "execution_count": 44, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Loss after epoch 0 is 48284.688\n", + "Loss after epoch 50 is 30.603077\n", + "Loss after epoch 100 is 30.531204\n", + "Loss after epoch 150 is 30.459534\n", + "Loss after epoch 200 is 30.388039\n", + "Loss after epoch 250 is 30.316647\n", + "Loss after epoch 300 is 30.245497\n", + "Loss after epoch 350 is 30.174496\n", + "Loss after epoch 400 is 30.103645\n", + "Loss after epoch 450 is 30.033024\n", + "Now testing the model in the test set\n", + "The final loss is: 31.533323\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "peoHmV2M40uU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 721 + }, + "outputId": "5ebd35e1-153f-4616-9fc8-f53292328149" + }, + "cell_type": "code", + "source": [ + "linear_regression(learning_rate=0.0000006, n_epochs=1000)" + ], + "execution_count": 45, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Loss after epoch 0 is 48284.688\n", + "Loss after epoch 50 is 5545.0645\n", + "Loss after epoch 100 is 660.84906\n", + "Loss after epoch 150 is 102.686584\n", + "Loss after epoch 200 is 38.8999\n", + "Loss after epoch 250 is 31.609247\n", + "Loss after epoch 300 is 30.775003\n", + "Loss after epoch 350 is 30.678524\n", + "Loss after epoch 400 is 30.666351\n", + "Loss after epoch 450 is 30.663822\n", + "Loss after epoch 500 is 30.662443\n", + "Loss after epoch 550 is 30.661139\n", + "Loss after epoch 600 is 30.65984\n", + "Loss after epoch 650 is 30.658585\n", + "Loss after epoch 700 is 30.657303\n", + "Loss after epoch 750 is 30.656065\n", + "Loss after epoch 800 is 30.654778\n", + "Loss after epoch 850 is 30.65348\n", + "Loss after epoch 900 is 30.652224\n", + "Loss after epoch 950 is 30.650938\n", + "Now testing the model in the test set\n", + "The final loss is: 32.299206\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "KjY_KnlE5ClG", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Drive the loss to a minimum." + ] + }, + { + "metadata": { + "id": "JKiHjGN15HPX", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 2081 + }, + "outputId": "22516846-1c0c-4efc-c335-bc498cc842a1" + }, + "cell_type": "code", + "source": [ + "linear_regression(learning_rate=0.0000034,n_epochs=1020000, interval=10200)" + ], + "execution_count": 48, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Loss after epoch 0 is 48284.688\n", + "Loss after epoch 10200 is 29.239443\n", + "Loss after epoch 20400 is 27.872702\n", + "Loss after epoch 30600 is 26.571589\n", + "Loss after epoch 40800 is 25.332962\n", + "Loss after epoch 51000 is 24.153841\n", + "Loss after epoch 61200 is 23.03131\n", + "Loss after epoch 71400 is 21.962627\n", + "Loss after epoch 81600 is 20.945303\n", + "Loss after epoch 91800 is 19.977003\n", + "Loss after epoch 102000 is 19.055021\n", + "Loss after epoch 112200 is 18.178032\n", + "Loss after epoch 122400 is 17.342543\n", + "Loss after epoch 132600 is 16.54649\n", + "Loss after epoch 142800 is 15.789913\n", + "Loss after epoch 153000 is 15.069054\n", + "Loss after epoch 163200 is 14.38258\n", + "Loss after epoch 173400 is 13.729721\n", + "Loss after epoch 183600 is 13.107436\n", + "Loss after epoch 193800 is 12.515747\n", + "Loss after epoch 204000 is 11.952139\n", + "Loss after epoch 214200 is 11.415256\n", + "Loss after epoch 224400 is 10.905044\n", + "Loss after epoch 234600 is 10.418618\n", + "Loss after epoch 244800 is 9.954958\n", + "Loss after epoch 255000 is 9.515319\n", + "Loss after epoch 265200 is 9.092749\n", + "Loss after epoch 275400 is 8.696654\n", + "Loss after epoch 285600 is 8.315392\n", + "Loss after epoch 295800 is 7.9540224\n", + "Loss after epoch 306000 is 7.609973\n", + "Loss after epoch 316200 is 7.2808957\n", + "Loss after epoch 326400 is 6.970196\n", + "Loss after epoch 336600 is 6.6711783\n", + "Loss after epoch 346800 is 6.390186\n", + "Loss after epoch 357000 is 6.119065\n", + "Loss after epoch 367200 is 5.864386\n", + "Loss after epoch 377400 is 5.6191854\n", + "Loss after epoch 387600 is 5.387592\n", + "Loss after epoch 397800 is 5.166442\n", + "Loss after epoch 408000 is 4.9548526\n", + "Loss after epoch 418200 is 4.7560368\n", + "Loss after epoch 428400 is 4.5620503\n", + "Loss after epoch 438600 is 4.3834558\n", + "Loss after epoch 448800 is 4.209632\n", + "Loss after epoch 459000 is 4.044474\n", + "Loss after epoch 469200 is 3.8893447\n", + "Loss after epoch 479400 is 3.737977\n", + "Loss after epoch 489600 is 3.5972924\n", + "Loss after epoch 499800 is 3.4627872\n", + "Loss after epoch 510000 is 3.331588\n", + "Loss after epoch 520200 is 3.2109354\n", + "Loss after epoch 530400 is 3.0949283\n", + "Loss after epoch 540600 is 2.9817517\n", + "Loss after epoch 550800 is 2.8771138\n", + "Loss after epoch 561000 is 2.777649\n", + "Loss after epoch 571200 is 2.6805909\n", + "Loss after epoch 581400 is 2.5882542\n", + "Loss after epoch 591600 is 2.5035748\n", + "Loss after epoch 601800 is 2.4209223\n", + "Loss after epoch 612000 is 2.3403032\n", + "Loss after epoch 622200 is 2.2659583\n", + "Loss after epoch 632400 is 2.196183\n", + "Loss after epoch 642600 is 2.1280715\n", + "Loss after epoch 652800 is 2.0616534\n", + "Loss after epoch 663000 is 2.0003376\n", + "Loss after epoch 673200 is 1.9434285\n", + "Loss after epoch 683400 is 1.887869\n", + "Loss after epoch 693600 is 1.833668\n", + "Loss after epoch 703800 is 1.7809587\n", + "Loss after epoch 714000 is 1.73513\n", + "Loss after epoch 724200 is 1.6903784\n", + "Loss after epoch 734400 is 1.6466976\n", + "Loss after epoch 744600 is 1.6040952\n", + "Loss after epoch 754800 is 1.5625658\n", + "Loss after epoch 765000 is 1.5268221\n", + "Loss after epoch 775200 is 1.4921967\n", + "Loss after epoch 785400 is 1.4583846\n", + "Loss after epoch 795600 is 1.4254044\n", + "Loss after epoch 805800 is 1.3932489\n", + "Loss after epoch 816000 is 1.3625135\n", + "Loss after epoch 826200 is 1.3362994\n", + "Loss after epoch 836400 is 1.3106805\n", + "Loss after epoch 846600 is 1.2856681\n", + "Loss after epoch 856800 is 1.2612587\n", + "Loss after epoch 867000 is 1.2374618\n", + "Loss after epoch 877200 is 1.214259\n", + "Loss after epoch 887400 is 1.1916653\n", + "Loss after epoch 897600 is 1.169672\n", + "Loss after epoch 907800 is 1.1482916\n", + "Loss after epoch 918000 is 1.1275071\n", + "Loss after epoch 928200 is 1.1138468\n", + "Loss after epoch 938400 is 1.1006013\n", + "Loss after epoch 948600 is 1.0876211\n", + "Loss after epoch 958800 is 1.0749128\n", + "Loss after epoch 969000 is 1.0624692\n", + "Loss after epoch 979200 is 1.0502983\n", + "Loss after epoch 989400 is 1.0383927\n", + "Loss after epoch 999600 is 1.0267599\n", + "Loss after epoch 1009800 is 1.0153905\n", + "Now testing the model in the test set\n", + "The final loss is: 1.2110033\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + } + ] +} \ No newline at end of file