Skip to content

Instantly share code, notes, and snippets.

@x1001000
Last active September 2, 2019 15:52
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 x1001000/34aa1900ccecf34e93b5426158ad6081 to your computer and use it in GitHub Desktop.
Save x1001000/34aa1900ccecf34e93b5426158ad6081 to your computer and use it in GitHub Desktop.
Neuron.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Neuron.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/x1001000/34aa1900ccecf34e93b5426158ad6081/neuron.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "motxQ-WfV9vO",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Data"
]
},
{
"metadata": {
"id": "86D8fM6-33Yk",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 資料要數據化成N維陣列 \n",
"資料要視覺化以幫助理解\n",
"\n",
"- 匯入N維陣列運算要用的函式庫 numpy \n",
"匯入作圖要用的函式庫 matplotlib.pyplot"
]
},
{
"metadata": {
"id": "jRG5EitZxlcO",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
],
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"id": "L-WBfUAK_QB1",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 串列(list)與陣列(array)的元素,皆有序可供索引 \n",
"串列的元素可以不同類別 \n",
"陣列的元素必須相同類別,儲存在連續的記憶體位址上,故運算效率高\n",
"\n",
"- 複習一下串列"
]
},
{
"metadata": {
"id": "pCnkWRWq4uTb",
"colab_type": "code",
"outputId": "0ba87b7f-0b42-4346-830b-af6855a9ebc3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"cell_type": "code",
"source": [
"a = [ 1001000, 3.14, [5,5,6,6], 'Hello Python!' ]\n",
"print(type(a))\n",
"print(len(a))"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"<class 'list'>\n",
"4\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "axn22aoT9nGX",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 把串列轉成陣列,陣列 = np.array(串列)\n",
"\n",
"- 查看陣列的形狀(shape)及維度(ndim)"
]
},
{
"metadata": {
"id": "hWJFxi7H5WnJ",
"colab_type": "code",
"outputId": "d40bbd80-c2d6-4c04-9565-4f3a44b2a6a1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 340
}
},
"cell_type": "code",
"source": [
"a = [5, 5, 6, 6]\n",
"b = [a, a]\n",
"c = [b, b, b, b, b]\n",
"d = np.array( c )\n",
"print(d)\n",
"print(type(d))\n",
"print(len(c))\n",
"print(len(d))\n",
"print(d.shape)\n",
"print(d.ndim)"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
"[[[5 5 6 6]\n",
" [5 5 6 6]]\n",
"\n",
" [[5 5 6 6]\n",
" [5 5 6 6]]\n",
"\n",
" [[5 5 6 6]\n",
" [5 5 6 6]]\n",
"\n",
" [[5 5 6 6]\n",
" [5 5 6 6]]\n",
"\n",
" [[5 5 6 6]\n",
" [5 5 6 6]]]\n",
"<class 'numpy.ndarray'>\n",
"5\n",
"5\n",
"(5, 2, 4)\n",
"3\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "aF3ceYqmED3q",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 一維陣列 aka 向量 \n",
"二維陣列 aka 矩陣 \n",
"N維陣列 aka 張量"
]
},
{
"metadata": {
"id": "Ww97ynVlHelS",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Linear Regression"
]
},
{
"metadata": {
"id": "nd3tbvdjx6yS",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 函數是一對一或多對一的關係,可用來模型化一個系統的輸入和輸出的關係 \n",
"線性迴歸就是求最接近全部樣本的一個線性函數,線性函數的示意圖像神經元 \n",
"用一堆線性函數串並聯模型化一個複雜系統(例如輸入貓圖片輸出貓答案)的示意圖像神經網路\n",
"\n",
"- 用一個極簡的例子來理解何謂線性迴歸 \n",
"用五筆特徵x及其標籤y,反覆更新w(weight)和b(bias),使得線性函數y=wx+b更接近這五個資料點,反覆更新的過程就稱為「訓練」或「學習」"
]
},
{
"metadata": {
"id": "A5Nogo-RGqen",
"colab_type": "code",
"outputId": "40ea18de-64b4-4321-ac7d-601ceb7d3893",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"cell_type": "code",
"source": [
"# 五筆特徵xs\n",
"xs = np.array( [ 1, 2, 3, 4, 5] )\n",
"# 及其標籤ys\n",
"ys = np.array( [10,20,30,43,59] )\n",
"# 繪製散佈圖,輸入X座標們xs及Y座標們ys\n",
"plt.scatter(xs, ys)\n",
"# 繪製折線圖,輸入X座標們xs及Y座標們ys\n",
"plt.plot(xs, ys)"
],
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb590afa518>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 4
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl4VOXB/vHvQxJIwpIACUsSICwh\nyA4GZKmoIKJVAS0/1FoFxVK11q3Fpcvb2vp7X4FW3KqWigXqBkVAqi2IrIoVCQQIICGAAZIASYAk\nBLLnef/I6IuYmAnMzJlM7s91cWXmzAnnvh6YO5MzzzPHWGsREZGGr4nTAURExDNU6CIiAUKFLiIS\nIFToIiIBQoUuIhIgVOgiIgFChS4iEiBU6CIiAUKFLiISIIJ9ebCoqCgbHx/vy0OKiDR4W7duzbPW\nRte1n08LPT4+nuTkZF8eUkSkwTPGHHJnP51yEREJEG4VujEm0hizxBiz1xjzhTFmuDGmjTFmtTEm\n3fW1tbfDiohI7dx9hf48sNJa2wsYAHwBPAGssdYmAGtc90VExCF1FroxJgIYBcwDsNaWWWvzgQnA\nAtduC4CJ3gopIiJ1c+cVelcgF/ibMSbFGPOaMaY50N5ae9S1zzGgfU3fbIyZboxJNsYk5+bmeia1\niIh8izuFHgwMBl6x1g4CznDe6RVbfZWMGq+UYa2da61NstYmRUfXOetGRCRgLE/JYuQza+n6xAeM\nfGYty1OyvHo8dwo9E8i01m523V9CdcEfN8Z0BHB9zfFORBGRhmd5ShZPLk0lK78YC2TlF/Pk0lSv\nlnqdhW6tPQYcMcYkujaNAfYAK4Aprm1TgPe8klBEpAGavSqN4vLKb2wrLq9k9qo0rx3T3YVFPwPe\nNMY0BQ4Cd1H9w2CxMWYacAiY7J2IIiINT1Z+cY3bs2vZ7gluFbq1djuQVMNDYzwbR0Sk4TtRVErT\noCaUVVZ967GYyDCvHVcrRUVEPGh/ThE3vfwpFkvToG9WbFhIEDPGJdbynRdPhS4i4iGb9udx88ub\nOFtWweKfDGfWpP7ERoZhgNjIMP7n5n5MHBTrteP79MO5REQC1aIth/nVsl10i27OvClD6NQmnEGd\nW3u1wM+nQhcRuQhVVZaZq/bylw0HGdUzmpd+OIhWoSGOZFGhi4hcoOKySh5ZtJ2Vu4/xo2Gd+d2N\nfQgOcu5MtgpdROQC5BSWcM/CZFKzCvjNDb25e2Q8xhhHM6nQRUTqaU92Ifcs2EJ+cTl/vSOJq3vX\n+FFWPqdCFxGph3V7c3jgrW20DA3hH/cOp09MhNORvqZCFxFx0/xNX/L79/fQO6YV86YMoX2rUKcj\nfYMKXUSkDhWVVfzh/T0s+M8hxvZuz/O3DiS8qf/Vp/8lEhHxI6dLyvnZ2ymsT8vlx5d35YnrLiGo\nibNvftZGhS4iUous/GKmzd9Cek4R/31TP354WWenI30nFbqISA12HMln2oJkSisqmX/XEC5P8P8L\n9KjQRUTOs3LXUR5etJ2oFs14+8eXkdC+pdOR3KJCFxFxsdby6oaDzFy5l8GdI5l7ZxJRLZo5Hctt\nKnQREaCsoorfLN/FouQj3DgghtmT+hMaEuR0rHpRoYtIo1dwtpx739jKfw6e4MExCTxydYLjy/gv\nhApdRBq1QyfOcNf8LWSeLObZyQO4eXCc05EumApdRBqtLRknmb4wGYA37rmMoV3bOJzo4qjQRaRR\nWpaSyeNLUolrHcbrU4cQH9Xc6UgXTYUuIo2KtZY5H6Xzwpp0hndryys/GkxkeFOnY3mECl1EGo2S\n8koeW7KTFTuy+X+XxvH/b+pH0+DAubSyCl1EGoUTRaVM//tWth46xWPXJnLfFd0b5EyW76JCF5GA\ntz/nNHfN30JOYSkv3z6Y7/fr6HQkr1Chi0hA+yQ9j/ve3Eqz4CAW/WQ4AztFOh3Ja1ToIhKw3v78\nML9evouEdi14bUoSca3DnY7kVSp0EQk4VVWWmSv38peNB7miZzQv/XAQLUNDnI7ldSp0EQkoZ8sq\nePid7Xy45zh3Du/Cf93Qm+CgwJnJ8l1U6CISMI4XlnDPgmR2Zxfwuxt7M3VkV6cj+ZQKXUQCwp7s\nQqYt2EJhcTmvTUlidK/2TkfyORW6iDR4a/ce54G3UogIC+Ef946gd0wrpyM5wq1CN8ZkAKeBSqDC\nWptkjGkDLALigQxgsrX2lHdiioh8m7WW+Z9m8If399AnJoJ5U5Jo1yrU6ViOqc87BVdZawdaa5Nc\n958A1lhrE4A1rvsiIj5RUVnFb1fs5ql/7uHqS9qz6CfDGnWZw8WdcpkAXOm6vQBYDzx+kXlEROp0\nuqScB95KYcO+XH5yRTceH9eLJk0Caxn/hXC30C3woTHGAn+x1s4F2ltrj7oePwY0vncgRMTnMk+d\nZdr8ZA7kFvE/N/fjtqGdnY7kN9wt9O9Za7OMMe2A1caYvec+aK21rrL/FmPMdGA6QOfOGngRuXDb\nj+Rzz4JkSisqWXD3UEb2iHI6kl9x6xy6tTbL9TUHWAYMBY4bYzoCuL7m1PK9c621SdbapOjoaM+k\nFpFG51+pR7nlL/8hvGkQy+4foTKvQZ2Fboxpboxp+dVt4BpgF7ACmOLabQrwnrdCikjjZa3l5fX7\nuf/NbfSNjWDZ/SPo0a6l07H8kjunXNoDy1yfGxwMvGWtXWmM2QIsNsZMAw4Bk70XU0Qao7KKKn61\nLJV/bM1kwsAYZv6gP6EhQU7H8lt1Frq19iAwoIbtJ4Ax3gglIpJ/tox739jKZwdP8tCYBB6+OiHg\nLkjhaVopKiJ+JyPvDHfP30LmqWKeu2UgEwfFOh2pQVChi4hf+fzLk0z/ezJNjOHNH1/GkPg2Tkdq\nMFToIuI3lm7L5PF3d9KpTTh/mzqELm2bOx2pQVGhi4jjrLXMWb2PF9buZ0T3trxy+6VEhAf+BSk8\nTYUuIo4qKa9kxpKd/HNHNrckdeLpm/oS0kguSOFpKnQRcUxeUSnTFyaz7XA+T1zXi5+M6qaZLBdB\nhS4ijkg/fpq75m8hr6iUV380mGv7dnQ6UoOnQhcRn/s4PZf739hGaNMgFk0fzoBOkU5HCggqdBHx\nqbc2H+Y37+0ioV0L5k0dQmxkmNORAoYKXUR8orLK8sy/v+CvH3/JVYnRvPjDwbRopgryJI2miHjd\n2bIKHnpnO6v3HGfqiHh+ff0lBGsmi8ep0EXEq44VlHDPwi3syS7kqfF9mDIi3ulIAUuFLiJeszu7\ngGnzkzldUs68KUO4qlc7pyMFNBW6iHjFR3uO8+A7KUSGhbDkvhFc0rGV05ECngpdRDzKWsvrmzJ4\n+oM99I+N4K93JtGuVajTsRoFFbqIeExFZRW/++du3vjsMNf17cCzkwcS1lQXpPAVFbqIeERhSTkP\nvJXCxn253HtFdx4bl0iTJlrG70sqdBG5aEdOnmXagi0czD3DrB/0Z/KQTk5HapRU6CJyUVIOn+LH\nC5Mpq6hi4bShjOge5XSkRkuFLiIX7P2d2fx88Q46RITyzvQh9GjXwulIjZoKXUTctjwli9mr0sjK\nL6ZVaDCFJRUkdWnN3DuTaNO8qdPxGj0Vuoi4ZXlKFk8uTaW4vBKAwpIKgozh1iGdVOZ+Qh+mICJu\nmb0q7esy/0qltcz5KN2hRHI+FbqI1MlaS1Z+cY2PZdeyXXxPhS4i3yn3dCn3LEiu9fEYfZ6531Ch\ni0itVu46xrjnNvLJ/jxuGhRLaPA3KyMsJIgZ4xIdSifn05uiIvIthSXlPLViD+9uy6RfbARzbhlA\nj3YtuaJnNLNXpZGdX0xMZBgzxiUycVCs03HFRYUuIt/wnwMn+MU/dnCssIQHR/fgZ2MSCHFdjGLi\noFgVuB9ToYsIACXllfxxVRrzNn1JfNvmLLl3OIM6t3Y6ltSDCl1E2JVVwKOLt7PveBF3DOvCk9/v\nRXhT1UNDo38xkUasssry6oYDPPfRPlqHN2X+XUO4MlFXFWqo3C50Y0wQkAxkWWtvMMZ0Bd4B2gJb\ngTustWXeiSkinnboxBkeXbyDrYdOcX3/jjw9oS+tteKzQavPtMWHgC/OuT8TmGOt7QGcAqZ5MpiI\neIe1lrc2H+a65z8m/fhpnr91IC/dNkhlHgDcKnRjTBxwPfCa674BRgNLXLssACZ6I6CIeE7O6RKm\nLUjml8tSGdy5NaseGcWEgbFUP6WloXP3lMtzwGNAS9f9tkC+tbbCdT8T0FwmET/279Sj/HJZKmfL\nKvndjb25c3i8rigUYOosdGPMDUCOtXarMebK+h7AGDMdmA7QuXPnegcUkYtTWFLO71bsZum2LNci\noYH63PIA5c4r9JHAeGPM94FQoBXwPBBpjAl2vUqPA7Jq+mZr7VxgLkBSUpL1SGoRccunB/KY8Y+d\n1YuExiTws9E9vl4kJIGnzn9Za+2T1to4a208cCuw1lp7O7AOmOTabQrwntdSiki9lJRX8of39/DD\nv26mWXAT3r1vBI+O7akyD3AXMw/9ceAdY8zTQAowzzORRORi7Moq4JFF20nPKeLO4V148rpLCGsa\n5HQs8YF6Fbq1dj2w3nX7IDDU85FE5EJUVFa5Fgml07ZFUxbePZRRPaOdjiU+pJWiIgEgI+8Mjy7e\nzrbD+dw4IIY/TOhDZLjmlTc2KnSRBsxay1ufH+bp978gJMjw/K0DmTBQM4gbKxW6SAOVU1jC4+/u\nZF1aLpcnRDFrUn86RujqQY2ZCl2kAfpX6lF+5Vok9NT4PtwxrIsWCYkKXaQhKSiuXiS0LCWL/nER\nPDtZi4Tk/6jQRRqIT/fn8Yt/7OD46VIeGpPAA1okJOdRoYv4uZLySmatTOP1TV/SLao57943goGd\nIp2OJX5IhS7ix3ZlFfDwou3szyliyvAuPKFFQvIdVOgifqiisopX1h/g+TVaJCTuU6GL+JkvXYuE\nUrRISOpJhS7iJ6y1vLH5MP/9QfUioRduG8T4ATFOx5IGRIUu4geOF5bw2JKdbNhXvUho9qQBdIgI\ndTqWNDAqdBGHfbDzKL9ankpJeSW/n1C9SEiXhJMLoUIXcUhBcTm/fW8Xy7dnMyAugmdvGUj3aC0S\nkgunQhdxwCbXIqGc06U8fHUCP71Ki4Tk4qnQRXyopLySmSv38rdNGXSLbs7S+0YwQIuExENU6CI+\nkppZwCOLqxcJTR0Rz+PX9tIiIfEoFbqIl1VUVvHy+gO8sCadqBbN+Pu0oVyeoEVC4nkqdBEvOphb\nxKOLd7D9SD4TBsbw+/F9iQgPcTqWBCgVuogXnLtIqGlwE168bRA3apGQeJkKXcTDzl0kNKpnNLN+\n0F+LhMQnVOgiHvT+zmx+vXwXJeWV/GFCH36kRULiQyp0EQ8oOFvOf63YxXvbsxnQKZI5kwfQTYuE\nxMdU6CIX6ZP06kVCeUWlPDq2J/df2Z1gLRISB6jQRS5QcVn1IqH5n2bQPbo5c+8cQf84LRIS56jQ\nRS7Azsx8Hlm0nQO5Z5g6Ip4nrutFaIgWCYmzVOgi9VBRWcWf1x3gxbXpRLdsxhvTLuN7CVFOxxIB\nVOgibjuYW8Qji3ew40g+EwfG8NSEvkSEaZGQ+A8VukgdrLX8/bND/Pe/viA0JIg//3Aw1/fv6HQs\nkW9RoYt8h2MFJcxYsoOP0/O4omc0syb1p30rLRIS/6RCF6nFP3dULxIqq6ji6Yl9uf2yzlokJH5N\nhS5ynoKz5fzmvV2s2JHNwE6RzLllIF2jmjsdS6ROdRa6MSYU2Ag0c+2/xFr7W2NMV+AdoC2wFbjD\nWlvmzbAinrY8JYvZq9LIzi8mJjKM8QNiWJaSRV5RKT8f25P7tEhIGhB3/qeWAqOttQOAgcC1xphh\nwExgjrW2B3AKmOa9mCKetzwliyeXppKVX4wFsvKLeWXDASyWZfeP5GdjElTm0qDU+b/VVity3Q1x\n/bHAaGCJa/sCYKJXEop4yexVaRSXV35re5Ax9IuLcCCRyMVx6+WHMSbIGLMdyAFWAweAfGtthWuX\nTCC2lu+dboxJNsYk5+bmeiKziEdk5RfXuP1oQYmPk4h4hluFbq2ttNYOBOKAoUAvdw9grZ1rrU2y\n1iZFR+uyW+K8QyfO8ODbKbU+HhMZ5sM0Ip5Tr1ku1tp8Y8w6YDgQaYwJdr1KjwOyvBFQxFNyTpfw\n4pr9vP35YYKDDFdf0o5P0vMoqaj6ep+wkCBmjEt0MKXIhXNnlks0UO4q8zBgLNVviK4DJlE902UK\n8J43g4pcqMKScv6y4QCvf5JBeWUVtw7txIOjE2jXKvRbs1xmjEtk4qAazx6K+D13XqF3BBYYY4Ko\nPkWz2Fr7vjFmD/COMeZpIAWY58WcIvVWUl7Jwv9k8PL6A+SfLefGATH8fGxP4s+ZUz5xUKwKXAJG\nnYVurd0JDKph+0Gqz6eL+JWKyiqWbM3kuY/SOVZYwhU9o5kxLpG+sZq5IoFNK0UlYFhrWbnrGLM/\nTONg7pmvV3kO797W6WgiPqFCl4CwaX8es1buZUdmAT3ateAvd1zKNb3b67NXpFFRoUuDlppZwKxV\ne/k4PY+YiFBmT+rPzYPjCGqiIpfGR4UuDdLB3CL+9OE+Pkg9SuvwEH59/SX8aFgXXQZOGjUVujQo\nxwpKeH5NOouTj9AsuAkPjkngx5d3pWWorhwkokKXBiH/bBmvbDjA/E0ZVFnLHcO68NOrehDdspnT\n0UT8hgpd/FpxWSV/+/RLXl1/gNOlFdw0MJZHxvakU5twp6OJ+B0Vuvil8soqFm05wgtr0sk5XcqY\nXu34xbhELunYyuloIn5LhS5+parK8kHqUf70YRoZJ86S1KU1f759MEPi2zgdTcTvqdDFL1hr2Zhe\nPZd8d3Yhie1bMm9KEqN7tdNcchE3qdDFcSmHTzFz5V4+O3iSuNZhzLllAOMHxGouuUg9qdDFMftz\nTjN7VRqrdh+nbfOm/O7G3tx2WWeaBWsuuciFUKGLz2XlF/Pc6n28uy2T8KbBPDq2J3d/rystmum/\no8jF0DNIfObkmTJeXrefhZ8dAgt3jezKT6/qQZvmTZ2OJhIQVOjidWdKK5j3yZfM3XiQs2UV/GBw\nHA+P7UmsLvUm4lEqdPGasooq3v78MC+uTSevqIxrerdnxrhEEtq3dDqaSEBSoYvHVVVZ3tuRxbOr\n93HkZDGXdW3D3Dt7Mbhza6ejiQQ0Fbp4jLWWdWk5zFqZxt5jp+ndsRUL7u7HqIQozSUX8QEVunhE\ncsZJZq7cy5aMU3RpG84Ltw3ihn4daaK55CI+o0KXi7L3WCF/XJXGR1/kEN2yGU9P7MstQzoREtTE\n6WgijY4KXS7IkZNnmbN6H8u2Z9GiWTAzxiVy18h4wpvqv5SIU/Tsk3rJKyrlpbX7eXPzIZoYw/RR\n3bjviu5EhmsuuYjTVOjiltMl5fz14y957eODlFZUMTmpEw+NSaBDRKjT0UTERYUu36mkvJI3Nx/m\nz+v2c/JMGdf368ij1/Ske3QLp6OJyHlU6FKjyirL0m2ZPPdROln5xVyeEMWMcYn0j4t0OpqI1EKF\nLt9grWX1nuPMXpVGek4R/eMimDWpPyN7RDkdTUTqoEKXr3128AQzV+4l5XA+3aKb88rtg7m2bwct\nChJpIFTowu7sAmatTGPDvlw6tArlmZv7MenSOII1l1ykQVGhN2IZeWd4dvU+VuzIJiIshF9+vxd3\nDo8nNEQXmBBpiFTojVBOYQkvrE3nnc+PEBLUhJ9e1Z3po7oTERbidDQRuQgq9EakoLicuRsP8Pon\nGZRXVnHb0M78bHQP2rXSXHKRQFBnoRtjOgELgfaABeZaa583xrQBFgHxQAYw2Vp7yntR5UKVlFey\n4NMMXl5/gILicsYPiOHn1/SkS9vmTkcTEQ9y5xV6BfBza+02Y0xLYKsxZjUwFVhjrX3GGPME8ATw\nuPeiijuWp2Qxe1Ua2fnFdIwI5fKEaDbsy+VYYQlXJkYzY1wifWIinI4pIl5QZ6Fba48CR123Txtj\nvgBigQnAla7dFgDrUaE7anlKFk8uTaW4vBKA7IISFiUfoUvbcN6ZPoxh3do6nFBEvKle89KMMfHA\nIGAz0N5V9gDHqD4lIw6avSrt6zI/V3lFlcpcpBFwu9CNMS2Ad4GHrbWF5z5mrbVUn1+v6fumG2OS\njTHJubm5FxVWarczM5+s/OIaHztaUOLjNCLiBLdmuRhjQqgu8zettUtdm48bYzpaa48aYzoCOTV9\nr7V2LjAXICkpqcbSlwt3ILeIZz/cxwepR2lioKqGEY6JDPN9MBHxOXdmuRhgHvCFtfbZcx5aAUwB\nnnF9fc8rCaVGxwpKeH7NPhYnZxIa3ISHxiTQMSKUp/655xunXcJCgpgxLtHBpCLiK+68Qh8J3AGk\nGmO2u7b9kuoiX2yMmQYcAiZ7J6KcK/9sGa9sOMD8TRlUWcsdw7rwwOgeRLVoBkBoSNDXs1xiIsOY\nMS6RiYNiHU4tIr5gqk9/+0ZSUpJNTk722fECydmyCv62KYNXNxygqLSCmwbF8sjVPenUJtzpaCLi\nZcaYrdbapLr200pRP1deWcWiLUd4fk06uadLufqSdvxiXCK9OrRyOpqI+BkVup+qqrK8n3qUP32Y\nxqETZ0nq0pqXbx/MkPg2TkcTET+lQvcz1lo2pucxa+VedmcX0qtDS16fmsRVie30ueQi8p1U6H4k\n5fApZq7cy2cHTxLXOow5twxg/IBYgpqoyEWkbip0P7A/5zSzV6Wxavdxolo05anxfbhtaGeaBusC\nEyLiPhW6g7Lyi3lu9T7e3ZZJeNNgHh3bk2nf60rzZvpnEZH6U3M44OSZMl5et5+Fnx0CC3eP7Mr9\nV/WgTfOmTkcTkQZMhe5DZ0ormPfJl8zdeJCzZRX8YHAcD4/tSayW5ouIB6jQfaCsooq3Pz/Mi2vT\nySsqY1yf9vzimkQS2rd0OpqIBBAVuhdVVVne25HFs6v3ceRkMcO6tWHunb0Y3Lm109FEJACp0L3A\nWsu6tBxmrUxj77HT9IlpxYK7+zEqIUpzyUXEa1ToHpaccZKZK/eyJeMU8W3DefG2QVzfryNNNJdc\nRLxMhe4he48V8sdVaXz0RQ7RLZvx9MS+3DKkEyFBmksuIr6hQr9IR06eZc7qfSzbnkWLZsE8dm0i\nU0fEE95UQysivqXWuUB5RaW8tHY/b24+RBNjmD6qG/dd0Z3IcM0lFxFnqNDr6XRJOX/9+Ete+/gg\npRVVTE7qxENjEugQEep0NBFp5FTobiopr+TNzYf587r9nDxTxvX9OvLoNT3pHt3C6WgiIoAKvU6V\nVZal2zJ57qN0svKLuTwhihnjEukfF+l0NBGRb1Ch18Jay+o9x5m9Ko30nCL6x0Uwa1J/RvaIcjqa\niEiNVOg1+OzgCWau3EvK4Xy6RTXn5dsHc13fDloUJCJ+TYV+jt3ZBcxamcaGfbl0aBXKMzf3Y9Kl\ncQRrLrmINAAqdCAj7wzPrt7Hih3ZRISF8OR1vZgyIp7QkCCno4mIuK1RF3pOYQkvrE3nnc+PEBxk\n+OlV3Zk+qjsRYSFORxMRqbdGWegFxeXM3XiA1z/JoLyyiluHduLB0Qm0a6W55CLScDWqQi8pr2TB\npxm8vP4ABcXljB8Qw6NjexIf1dzpaCIiF61RFHpFZRVLtlbPJT9WWMIVPaOZMS6RvrERTkcTEfGY\ngC50ay3/3nWMP36YxsHcMwzqHMmcWwYyvHtbp6OJiHhcwBb6pv15zFy5l52ZBSS0a8HcOy5lbO/2\nmksuIgEr4Ap9Z2Y+s1am8cn+PGIiQpk9qT83D44jSBeYEJEAFzCFfiC3iGc/3McHqUdpHR7Cb27o\nze2XddZcchFpNBp8oR8rKOH5NftYnJxJs+AmPDgmgR9f3pWWoZpLLiKNS52Fbox5HbgByLHW9nVt\nawMsAuKBDGCytfaU92J+W/7ZMl7ZcID5mzKospY7hnXhgdE9iGrRzJcxRET8hjuv0OcDLwELz9n2\nBLDGWvuMMeYJ1/3HPR+v2vKULGavSiM7v5gOEaEM7tyajem5FJVWcNPAWB4Z25NObcK9dXgRkQah\nzkK31m40xsSft3kCcKXr9gJgPV4q9OUpWTy5NJXi8koAjhaU8EHqUfrEtOJPkwfQq0MrbxxWRKTB\nudCPEWxvrT3qun0MaO+hPN8ye1Xa12V+rvyz5SpzEZFzXPTnwlprLWBre9wYM90Yk2yMSc7Nza33\n35+dX1yv7SIijdWFFvpxY0xHANfXnNp2tNbOtdYmWWuToqOj632gmMiwem0XEWmsLrTQVwBTXLen\nAO95Js63zRiXSNh5c8nDQoKYMS7RW4cUEWmQ3Jm2+DbVb4BGGWMygd8CzwCLjTHTgEPAZG8FnDgo\nFuDrWS4xkWHMGJf49XYREalmqk+B+0ZSUpJNTk722fFERAKBMWartTaprv10sUwRkQChQhcRCRAq\ndBGRAKFCFxEJECp0EZEA4dNZLsaYXKqnOV6oKCDPQ3E8yR9z+WMmUK76Uq76CdRcXay1da7M9Gmh\nXyxjTLI7U3d8zR9z+WMmUK76Uq76aey5dMpFRCRAqNBFRAJEQyv0uU4HqIU/5vLHTKBc9aVc9dOo\nczWoc+giIlK7hvYKXUREauF3hW6Med0Yk2OM2VXL48YY84IxZr8xZqcxZrCf5LrSGFNgjNnu+vNf\nPsjUyRizzhizxxiz2xjzUA37+Hy83MzlxHiFGmM+N8bscOV6qoZ9mhljFrnGa3MNl190KtdUY0zu\nOeN1j7dznXPsIGNMijHm/Roe8/l4uZHJybHKMMakuo77rU8i9Prz0VrrV3+AUcBgYFctj38f+Ddg\ngGHAZj/JdSXwvo/HqiMw2HW7JbAP6O30eLmZy4nxMkAL1+0QYDMw7Lx97gdedd2+FVjkJ7mmAi/5\ncrzOOfajwFs1/Xs5MV5uZHJyrDKAqO943KvPR797hW6t3Qic/I5dJgALbbXPgMivrp7kcC6fs9Ye\ntdZuc90+DXwBnP9B8T4fLzdz+ZxrDIpcd0Ncf85/E2kC1Rc+B1gCjDHGGD/I5QhjTBxwPfBaLbv4\nfLzcyOTPvPp89LtCd0MscOSc+5n4QVm4DHf92vxvY0wfXx7Y9avuIKpf3Z3L0fH6jlzgwHi5flXf\nTvVlE1dba2sdL2ttBVAAtPXTdpmxAAACX0lEQVSDXAA/cP2avsQY08nbmVyeAx4Dqmp53InxqisT\nODNWUP2D+ENjzFZjzPQaHvfq87EhFrq/2kb18twBwIvAcl8d2BjTAngXeNhaW+ir49aljlyOjJe1\nttJaOxCIA4YaY/r64rh1cSPXP4F4a21/YDX/96rYa4wxNwA51tqt3j6Wu9zM5POxOsf3rLWDgeuA\nnxpjRvnw2A2y0LOAc3/ixrm2OcpaW/jVr83W2n8BIcaYKG8f1xgTQnVpvmmtXVrDLo6MV125nBqv\nc46fD6wDrj3voa/HyxgTDEQAJ5zOZa09Ya0tdd19DbjUB3FGAuONMRnAO8BoY8wb5+3j6/GqM5ND\nY/XVsbNcX3OAZcDQ83bx6vOxIRb6CuBO17vFw4ACa+1Rp0MZYzp8de7QGDOU6rH1ahG4jjcP+MJa\n+2wtu/l8vNzJ5dB4RRtjIl23w4CxwN7zdjv3AuiTgLXW9W6Wk7nOO886nur3JbzKWvuktTbOWhtP\n9Ruea621PzpvN5+OlzuZnBgr13GbG2NafnUbuAY4f1acV5+PdV4k2tdMzRelDgGw1r4K/Ivqd4r3\nA2eBu/wk1yTgPmNMBVAM3OrtIqD61codQKrr/CvAL4HO5+RyYrzcyeXEeHUEFhhjgqj+AbLYWvu+\nMeb3QLK1dgXVP4j+bozZT/Wb4Ld6OZO7uR40xowHKly5pvogV438YLzqyuTUWLUHlrlepwQDb1lr\nVxpj7gXfPB+1UlREJEA0xFMuIiJSAxW6iEiAUKGLiAQIFbqISIBQoYuIBAgVuohIgFChi4gECBW6\niEiA+F+UBrnRbwq2xwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "nO1Vgsk9XRzQ",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Model"
]
},
{
"metadata": {
"id": "K27ixz0BBeDZ",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 初學者用Keras函式庫(之後再用TensorFlow函式庫) \n",
"初學者用順序式模型(之後再用函數式模型)"
]
},
{
"metadata": {
"id": "ub7Iwo_0A-I1",
"colab_type": "code",
"outputId": "4061e9c0-b38f-4033-f625-9fd538bc4dea",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"cell_type": "code",
"source": [
"from keras.models import Sequential\n",
"model = Sequential()"
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"id": "QSEXUNnHFgSa",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- Dense(全連接)層有三個引數要設:\n",
" 1. 每筆資料的特徵x只有1個數(長度為1的向量),故這個Dense層的input_dim=1\n",
" 2. 每筆資料的標籤y只有1個數(長度為1的向量),故這個Dense層需units=1個神經元\n",
" 3. 激活函數activation=None,讓y直接等於f(x)"
]
},
{
"metadata": {
"id": "CEQ_nRkpBRVh",
"colab_type": "code",
"outputId": "91d1fc66-d0b4-4742-e2f8-da7023eb7be1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 88
}
},
"cell_type": "code",
"source": [
"from keras.layers import Dense\n",
"model.add(Dense(input_dim=1, units=1, activation=None))"
],
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Colocations handled automatically by placer.\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "FdoF649QSkQ_",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 這個模型的概要檢視 \n",
"這個模型只有一個Dense層,這個Dense層只有一個神經元,這個神經元只有兩個Param要訓練 \n",
"任何模型的每一層的Param數量要知道怎麼算,才能對該模型有概念"
]
},
{
"metadata": {
"id": "_wiZcpqlItVQ",
"colab_type": "code",
"outputId": "22f5e72f-3e6f-4c54-e940-fb5b58880ccd",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
}
},
"cell_type": "code",
"source": [
"model.summary()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"dense_1 (Dense) (None, 1) 2 \n",
"=================================================================\n",
"Total params: 2\n",
"Trainable params: 2\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "htqdwNnUkpBy",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 尚未訓練的Param們的初始值"
]
},
{
"metadata": {
"id": "EJqHRLvnjPTZ",
"colab_type": "code",
"outputId": "0ceb5d27-d213-42f4-95ec-f537225bd1da",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"cell_type": "code",
"source": [
"w, b = model.layers[0].get_weights()\n",
"print('w =', w[0])\n",
"print('b =', b[0])"
],
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": [
"w = [-0.25288296]\n",
"b = 0.0\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "fHFbYjNHTNdY",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Training"
]
},
{
"metadata": {
"id": "ePRDFrxVI3KD",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- [Before training a model, you need to configure the learning process, which is done via the compile method.](https://keras.io/getting-started/sequential-model-guide/)\n",
"\n",
"- Param的誤差函數Loss(w,b)的算法,在此採用MSE(均方誤差法) \n",
"Param的最佳解的找法,在此採用SGD(隨機梯度下降法)"
]
},
{
"metadata": {
"id": "yne07GxQFB_f",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model.compile(loss='MSE',\n",
" optimizer='SGD')"
],
"execution_count": 9,
"outputs": []
},
{
"metadata": {
"id": "_-qG1KEGHs-G",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 訓練10個回合(epochs)"
]
},
{
"metadata": {
"id": "PFBLINzWLcVK",
"colab_type": "code",
"outputId": "20429659-8ecb-42e4-bca7-f8c04cf5c3e3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 445
}
},
"cell_type": "code",
"source": [
"model.fit(xs, ys, epochs=10)"
],
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Use tf.cast instead.\n",
"Epoch 1/10\n",
"5/5 [==============================] - 1s 145ms/step - loss: 1408.1034\n",
"Epoch 2/10\n",
"5/5 [==============================] - 0s 1ms/step - loss: 825.4548\n",
"Epoch 3/10\n",
"5/5 [==============================] - 0s 601us/step - loss: 485.8926\n",
"Epoch 4/10\n",
"5/5 [==============================] - 0s 906us/step - loss: 287.9895\n",
"Epoch 5/10\n",
"5/5 [==============================] - 0s 542us/step - loss: 172.6384\n",
"Epoch 6/10\n",
"5/5 [==============================] - 0s 619us/step - loss: 105.3945\n",
"Epoch 7/10\n",
"5/5 [==============================] - 0s 543us/step - loss: 66.1855\n",
"Epoch 8/10\n",
"5/5 [==============================] - 0s 333us/step - loss: 43.3139\n",
"Epoch 9/10\n",
"5/5 [==============================] - 0s 516us/step - loss: 29.9630\n",
"Epoch 10/10\n",
"5/5 [==============================] - 0s 423us/step - loss: 22.1606\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7fb590ad1828>"
]
},
"metadata": {
"tags": []
},
"execution_count": 10
}
]
},
{
"metadata": {
"id": "7Y6CSiUasrMe",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 更新後的Param們"
]
},
{
"metadata": {
"id": "DbIZphaXL6FM",
"colab_type": "code",
"outputId": "7538ee52-1839-4a32-dd03-58ac087a9b35",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"cell_type": "code",
"source": [
"w, b = model.layers[0].get_weights()\n",
"print('w =', w[0])\n",
"print('b =', b[0])"
],
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": [
"w = [9.575648]\n",
"b = 2.4785392\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "z9n9HHRaISJV",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Inference"
]
},
{
"metadata": {
"id": "zAC7coOHTsin",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 用訓練過的模型(神經網路)做推論(預測) \n",
"輸入訓練資料的feature,輸出的預測結果會接近但不會等於label"
]
},
{
"metadata": {
"id": "tdjspq_VLx9i",
"colab_type": "code",
"outputId": "c094a6c5-4637-47ee-9c57-2cc7be079ef7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
}
},
"cell_type": "code",
"source": [
"prediction1 = model.predict(xs)\n",
"prediction1"
],
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[12.054188],\n",
" [21.629835],\n",
" [31.205482],\n",
" [40.78113 ],\n",
" [50.35678 ]], dtype=float32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 12
}
]
},
{
"metadata": {
"id": "vxR7GKyWtgaw",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 訓練資料為藍色點 \n",
"預測結果為紅色點 \n",
"五點連線為一直線,因為此模型只有一個神經元,神經元是一個線性函數"
]
},
{
"metadata": {
"id": "k8Sk7LOPQEiD",
"colab_type": "code",
"outputId": "89a6c37a-3eb8-4d34-b807-a82f384e3b68",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"cell_type": "code",
"source": [
"plt.scatter(xs, ys)\n",
"\n",
"plt.scatter(xs, prediction1, color='red')\n",
"plt.plot(xs, prediction1, color='red')"
],
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb53822ceb8>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 13
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "9MgPWwvCONjz",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 再訓練10個回合(epochs)"
]
},
{
"metadata": {
"id": "Wjei0gNSN6d0",
"colab_type": "code",
"outputId": "064966cd-395e-41b2-a971-947db1dce469",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 374
}
},
"cell_type": "code",
"source": [
"model.fit(xs, ys, epochs=10)"
],
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/10\n",
"5/5 [==============================] - 0s 1ms/step - loss: 17.5916\n",
"Epoch 2/10\n",
"5/5 [==============================] - 0s 748us/step - loss: 14.9071\n",
"Epoch 3/10\n",
"5/5 [==============================] - 0s 643us/step - loss: 13.3209\n",
"Epoch 4/10\n",
"5/5 [==============================] - 0s 820us/step - loss: 12.3749\n",
"Epoch 5/10\n",
"5/5 [==============================] - 0s 694us/step - loss: 11.8021\n",
"Epoch 6/10\n",
"5/5 [==============================] - 0s 654us/step - loss: 11.4469\n",
"Epoch 7/10\n",
"5/5 [==============================] - 0s 953us/step - loss: 11.2187\n",
"Epoch 8/10\n",
"5/5 [==============================] - 0s 659us/step - loss: 11.0647\n",
"Epoch 9/10\n",
"5/5 [==============================] - 0s 653us/step - loss: 10.9540\n",
"Epoch 10/10\n",
"5/5 [==============================] - 0s 899us/step - loss: 10.8687\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7fb538279390>"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
}
]
},
{
"metadata": {
"id": "gGWd2Aids0Hh",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 再次更新後的Param們"
]
},
{
"metadata": {
"id": "jvG9O0g2N_AL",
"colab_type": "code",
"outputId": "781f4699-716a-4936-bebf-73e4907d245a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"cell_type": "code",
"source": [
"w, b = model.layers[0].get_weights()\n",
"print('w =', w[0])\n",
"print('b =', b[0])"
],
"execution_count": 15,
"outputs": [
{
"output_type": "stream",
"text": [
"w = [10.292608]\n",
"b = 2.4414377\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "hNHMwM1ep277",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"- 再次用訓練資料的feature做推論,顯示為棕色"
]
},
{
"metadata": {
"id": "qq282joVo-B3",
"colab_type": "code",
"outputId": "b3834feb-16f3-403e-91b9-78366c71fb7a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
}
},
"cell_type": "code",
"source": [
"prediction2 = model.predict(xs)\n",
"prediction2"
],
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[12.734046],\n",
" [23.026653],\n",
" [33.319263],\n",
" [43.61187 ],\n",
" [53.90448 ]], dtype=float32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 16
}
]
},
{
"metadata": {
"id": "WLEEpzVUpOm4",
"colab_type": "code",
"outputId": "240ea5f8-367f-46c6-a534-53a4e0678904",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"cell_type": "code",
"source": [
"plt.scatter(xs, ys)\n",
"\n",
"plt.scatter(xs, prediction2, color='brown')\n",
"plt.plot(xs, prediction2, color='brown')"
],
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb538224828>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 17
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nJf4/4ifZXJpiwb8AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment