Skip to content

Instantly share code, notes, and snippets.

@aakashns
Created May 14, 2018 06:55
Show Gist options
  • Save aakashns/82db9df1e6c20eb13523903507dbd537 to your computer and use it in GitHub Desktop.
Save aakashns/82db9df1e6c20eb13523903507dbd537 to your computer and use it in GitHub Desktop.
Visualizing linear regression
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training a single linear neuron with fixed input size"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Todo:\n",
"\n",
"1. Generate and visualize some training data (for the network)\n",
"2. Train a network and collect the weights\n",
"3. Save the data to file for later use"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.animation import FuncAnimation\n",
"import seaborn as sns\n",
"import pandas as pd\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [],
"source": [
"sns.set_style(style='whitegrid')\n",
"plt.rcParams[\"patch.force_edgecolor\"] = True"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create a single training set"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [],
"source": [
"m = 2 # slope\n",
"c = 3 # intercept"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [],
"source": [
"x = np.random.rand(256)"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [],
"source": [
"noise = np.random.randn(256) / 4"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [],
"source": [
"y = x * m + c + noise"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [],
"source": [
"df = pd.DataFrame()\n",
"df['x'] = x\n",
"df['y'] = y"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x1a1b91c2e8>"
]
},
"execution_count": 175,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b91ca20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.lmplot(x='x', y='y', data=df)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Implement Linear Regression"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn as nn\n",
"from torch.autograd import Variable"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [],
"source": [
"x_train = x.reshape(-1, 1).astype('float32')"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {},
"outputs": [],
"source": [
"y_train = y.reshape(-1, 1).astype('float32')"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [],
"source": [
"class LinearRegressionModel(nn.Module):\n",
" def __init__(self, input_dim, output_dim):\n",
" super(LinearRegressionModel, self).__init__()\n",
" self.linear = nn.Linear(input_dim, output_dim)\n",
" \n",
" def forward(self, x):\n",
" out = self.linear(x)\n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1, 1)"
]
},
"execution_count": 180,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"input_dim = x_train.shape[1]\n",
"output_dim = y_train.shape[1]\n",
"input_dim, output_dim"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [],
"source": [
"model = LinearRegressionModel(input_dim, output_dim)"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {},
"outputs": [],
"source": [
"criterion = nn.MSELoss()"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [],
"source": [
"[w, b] = model.parameters()"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [],
"source": [
"def get_param_values():\n",
" return w.data[0][0], b.data[0]"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {},
"outputs": [],
"source": [
"def plot_current_fit(title=\"\"):\n",
" plt.figure(figsize=(12,4))\n",
" plt.title(title)\n",
" plt.scatter(x, y, s=8)\n",
" w1 = w.data[0][0]\n",
" b1 = b.data[0]\n",
" x1 = np.array([0., 1.])\n",
" y1 = x1 * w1 + b1\n",
" plt.plot(x1, y1, 'r', label='Current Fit ({:.3f}, {:.3f})'.format(w1, b1))\n",
" plt.xlabel('x (input)')\n",
" plt.ylabel('y (target)')\n",
" plt.legend()\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAEPCAYAAABfrjLnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl4FFWiNvC3urORBSQkgQCGJUCMDMgqYmQX8QLiFWUxEQERFQFFnWFzgUEuiwqKLGHAnYsCKjjIx4iKCIKCECSAN4CAiEBCgoGEDmTrPt8fsdvqTu9dXdVJv7/nmWdIqrvq1DkV+63Tp86RhBACREREREQEANBpXQAiIiIiokDCgExEREREJMOATEREREQkw4BMRERERCTDgExEREREJMOATEREREQkw4BMROSGc+fOITU1Fffeey/uvfde3HPPPRg2bBiysrJcvtdgMGDkyJEYNGgQvvzyS8XLdvXqVTz88MMev2/79u2YO3eu09dcvHgRI0eO9LZoREQ1UojWBSAiqikiIiLw73//2/Lz1q1bMWPGDJehNycnB3/88Qe++uorv5SrqKgIR44c8fh9/fr1Q79+/Zy+pmHDhli3bp23RSMiqpEYkImIvHTlyhXEx8dbfv7mm2+QmZmJiooKREREYNq0aahXrx5mzpyJixcv4t5778X69euxe/duLFu2DCaTCVFRUZgxYwbat2+PpUuX4tChQ8jPz0dKSgpee+01ZGZm4ssvv4TJZEKTJk0wa9YsNGzY0KocM2bMQGlpKe69915s3LgRt9xyC/r164djx47htddew/Hjx7F+/XpUVFSgqKgI48ePR3p6OjZu3Iht27bhX//6F0aNGoUOHTrg4MGDyM3NRffu3fHyyy/jwoULuOeee/DTTz9h6dKlOH/+PAoKCnD+/Hk0bNgQr776KhISEnD48GHMnj0bFRUVSEpKwoULFzB9+nR069ZN7WYhIvKdICIil37//Xdx0003iSFDhoghQ4aI3r17i7Zt24pvv/1WCCHEr7/+KgYPHiwKCwuFEEKcOHFCpKWliZKSErF3714xaNAgIYQQJ0+eFLfffrs4e/asEEKI77//XqSlpYmrV6+KN998UwwYMEBUVFQIIYTYtGmTmDJliuXndevWiUcffdRu2Tp06GD5uU2bNmLTpk1CCCEMBoMYPny4pVw//fST5bWffvqpeOyxx4QQQjz00EPiqaeeEkajUVy9elXccccd4ocffrDa95tvvin69esnrl69KoQQ4vHHHxdLliwRFRUVomfPnpa6+OGHH0RKSorYu3evInVPRKQ29iATEbnJdojF999/j4kTJ2Lz5s3Ys2cP8vPzMWbMGMt2SZJw9uxZq33s3bsXt912G2688UYAQPfu3REbG4ujR48CADp06ICQkKr/NO/YsQNHjhzB/fffDwAwmUy4fv26W2Xt0qULACAqKgorV67Ezp07cebMGRw7dgzXrl2z+54+ffpAp9MhOjoazZo1Q1FREZo2bWr1mltvvRXR0dEAgJtvvhlFRUU4ceIEAKBXr14AgNtuuw2tW7d2q5xERIGIAZmIyEu33347kpKScOTIEZhMJnTv3h1vvPGGZXtubi4SEhJw4MABy+9MJhMkSbLajxAClZWVAIDIyEir1z766KNIT08HAJSXl6OoqMitspn3k5eXhxEjRmD48OHo3Lkz7r77buzYscPueyIiIiz/liQJQgi3XqPX66u9Vq/Xu1VOIqJAxFksiIi89Ouvv+L8+fNITU1F9+7dsWfPHpw6dQoAsHPnTgwZMgSlpaVW7+nevTt2796N33//HQDwww8/IDc3F7fccku1/d9xxx345JNPYDAYAABLlizB1KlTq70uJCQERqPRbqA9evQoYmNj8eSTT+KOO+6whGOj0ejbycskJycjLCwMu3btAgAcPnwYJ06cqHYjQERUU7AHmYjITeYH4cxMJhPmzJmDFi1aAADmzJmDZ599FkIIhISEIDMzE1FRUVb7aNWqFWbNmoVJkybBaDQiIiICK1euRExMTLXjDRs2DBcvXsTw4cMhSRISExOxYMGCaq+Lj49H+/btMWjQIKxdu9ZqW1paGj755BPcfffdkCQJt956K2JjY/Hbb78pUSUAqgL60qVLMWvWLCxevBjNmzdHXFycVW8zEVFNIgl7XQ5EREQeWLhwIcaNG4e4uDjk5ubi3nvvxddff426detqXTQiIo+xB5mIiHzWpEkTjBkzBiEhIRBCYO7cuQzHRFRjsQeZiIiIiEiGD+kREREREckwIBMRERERyTAgExERERHJBNRDellZWVoXgYiIiIiCROfOne3+PqACMuC4oP6Wk5OD1NRUTY5N6mAbBwe2c3BgOwcHtnPtp2Ub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Z+0shMCTTz6JlJQUzJkzB3q9Xqtiko+ctfPUqVPx8ccfY82aNbjvvvswZswYhuMayFkb/+1vf8OJEydQWFiIyspKZGdno1WrVloVlXzgrJ3r1auHiIgIhIWFITw8HDExMSguLtaqqOQnycnJ+O2333DlyhWUl5fjwIED6Nixo6ZlCqoe5P79+2PPnj0YOXIkhBCYN28e3n33XSQlJaFfv34YNWoU0tPTIYTAM888w7GpNZSzdjaZTPjxxx9RXl6O7777DgDw7LPPav6HSJ5z9fdMNZ+rNn7uuefw6KOPAgDuvvtudmrUUK7a+fvvv8fw4cOh0+nQqVMnpKWlaV1kUsjnn3+Oa9euYcSIEZg+fTrGjRsHIQTuv/9+NGzYUNOycSU9IiIiIiKZoBpiQURERETkCgMyEREREZEMAzIRERERkQwDMhERERGRDAMyEREREZEMAzIRUQA7cOAA3n//feTk5GDZsmWK7fd///d/AQAFBQWYM2eOYvslIqoNGJCJiAKUEAJLly7Fgw8+iNTUVEyaNEmxfWdmZgIA4uPjERUVhR9//FGxfRMR1XQMyEREGlm7di2ee+45AMC0adOwdu1aq+179uxBq1atEBYWhn379uGZZ54BANx1112YPn06RowYgSeffBJGoxEbN27ExIkTMXr0aAwZMgTbtm0DAPTt2xdlZWUAgNdeew0bN25EZmYmioqKMHv2bADA4MGD8cEHH6h01kREgY8BmYhIIxkZGbh+/TqmT5+OiooKZGRkWG3/8ccfkZKSUu19v//+O55++mmsX78ehYWFOHLkCADg2rVrePfdd/HOO+9gwYIFqKystHvcCRMmoF69epaA3KpVKxw8eFDZkyMiqsEYkImINPTYY49h06ZNGDduXLVtly9fRoMGDar9vn79+khMTAQAJCYmWnqIu3btCp1Oh7i4ONStWxeFhYVW73O0cKper4der4fJZPL1dIiIagUGZCIijZSXl2PevHmYM2cOZs+ejfLycqvtsbGxuHr1arX3SZJkd38///wzAODSpUswGAxo0KABwsLCkJ+fDyEEjh07ZnmtPCwLIRASEgKdjh8JREQAAzIRkWZee+019O7dGyNGjEDPnj2xaNEiq+3dunVDdna22/u7dOkSRo8ejcceewyzZs2CXq/Ho48+isceewzjx49H3bp1La9NTk7G3//+dwDA8ePH0aFDB2VOioioFpCEo+/ciIhIUyaTCaNHj8bbb7+NsLAwp6/duHEjTp8+bQm9nnjllVfQt29fdOnSxduiEhHVKuxBJiIKUDqdDhMnTsSHH37ot2MUFBTAYDAwHBMRybAHmYiIiIhIhj3IREREREQyDMhERERERDIMyEREREREMgzIREREREQyDMhERERERDIMyEREREREMv8ft9RzGPYaXvMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1b904dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_current_fit('Before training')"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {},
"outputs": [],
"source": [
"learning_rate = 0.01\n",
"optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {},
"outputs": [],
"source": [
"def run_epoch(epoch):\n",
" # Convert from numpy array to torch tensors\n",
" inputs = Variable(torch.from_numpy(x_train))\n",
" labels = Variable(torch.from_numpy(y_train))\n",
" \n",
" # Clear the gradients w.r.t. parameters\n",
" optimizer.zero_grad()\n",
" \n",
" # Forward to get the outputs\n",
" outputs = model(inputs)\n",
" \n",
" # Calcuate loss\n",
" loss = criterion(outputs, labels)\n",
" \n",
" # Getting gradients from parameters\n",
" loss.backward()\n",
" \n",
" # Updating parameters\n",
" optimizer.step()\n",
" \n",
"# print('epoch {}, loss {}'.format(epoch, loss.data[0]))\n",
" \n",
" return loss"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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idZpCCxdwDwvndwJCeyLgFneF1YHJbASAfO8EnYnJbBwgRZnWQC28G3kgEsQEIAtAdkpDqbAxsbG/Uaj0Vci4uac8xN3VzEej29MKT19a2vrwSdPnvz87r93C8SD2XerJkDAtzntAQI1CbT4i3lN/VMLgR0Bs2wvEKhHwDzX00uVtC3Q4iwLwNre8we1egHYQe2cde+7wNGjRx+6ubl5RynlvbPZ7Lt2n7DrundFxDWbm5vj22+//eS9BWD7vlAnIECAAAECBAgQIECAAAECBAgQIECAwBIEHv/4x8sUluDsFIsRsFkX4+goFQocPnz4Eevr658spVw/m82eeY4A7Ncj4gd2Px9s5+d2vgFWIY2SCBAgQIAAAQIECBAgQIAAAQIECBBoUEAA1mDTD3DJArAD3DxL31+BjY2Ny0aj0Z9ExI055+8+RwB2zzfAUkqHp9PpJ/Z3NY5OgAABAgQIECBAgAABAgQIECBAgAABAgQIXKiAAOxCpfxccwLHjh276MyZM19OKd08nU6ftBtg5xlghw4detBtt932p80BKZgAAQIECBAgQIAAAQIECBAgQIAAAQIECAxUQAA20MZY1jAEuq77eETcP+f80N0r6rpuGhEPzDlfNozVWgUBAgQIECBAgAABAgQIECBAgAABAgQIECDQCwjA7AMCX0Og67p7nvM1Go0mJ06cyDs/OplMLi+lfCaldMN0Ov0eiAQIECBAgAABAgQIECBAgAABAgQIECBAgMBwBARgw+mFlQxQYDwePy2l9L6U0nXT6fSaiNjqg+Ou694WES8qpTxjNpvdMMClWxIBAgQIECBAgAABAgQIECBAgAABAgQIEGhWQADWbOsVfqECXde9MyK+LyL+sJTyeyml/nlg31ZKec9sNutDsXKhx/JzBAgQIECAAAECBAgQIECAAAECBAgQIECAwP4LCMD239gZDrjAVVdddejOO+98ZSnlxRHxsFLKp0aj0ds3Nzdff/LkybsOeHkXtPyrr756/Y477rg2In4wIq6IiM+mlN56ySWXvO6WW245fb6DPPrRj37g6dOnXxsRfyciHpxSOl5KeX3O+V3ne62/J0BgcQLzzvKRI0eu2tra+uf9hwAi4tKI+HQp5Tfvf//7//Stt976pcWt1JEIEDifwLzzvOv4o67rPhQRT8g5+/3gfPj+nsACBead5Uc96lEX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qE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQI1pXpmAAAAipJREFUEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW0AA1nb/VU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQqE5AAFZdSxVEgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbQADWdv9VT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoTkAAVl1LFUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQaFtAANZ2/1VPgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhOQABWXUsVRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoW+D/Ar+QICrMGQCpAAAAAElFTkSuQmCC\" width=\"864\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.animation import FuncAnimation\n",
"\n",
"fig, (ax1) = plt.subplots(1, figsize=(12, 6))\n",
"ax1.scatter(x, y, s=8)\n",
"\n",
"w1, b1 = get_param_values()\n",
"x1 = np.array([0., 1.])\n",
"y1 = x1 * w1 + b1\n",
"fit, = ax1.plot(x1, y1, 'r', label='Predicted'.format(w1, b1))\n",
"ax1.plot(x1, x1 * m + c, 'g', label='Real')\n",
"ax1.legend()\n",
"ax1.set_title('Linear Regression')\n",
"\n",
"def init():\n",
" ax1.set_ylim(0, 6)\n",
" return fit,\n",
"\n",
"def animate(i):\n",
" loss = run_epoch(i)\n",
" w1, b1 = get_param_values()\n",
" y1 = x1 * w1 + b1\n",
" fit.set_ydata(y1)\n",
"\n",
"epochs = np.arange(1, 250)\n",
"ani = FuncAnimation(fig, animate, epochs, init_func=init, interval=100, blit=True, repeat=False)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1.9343229532241821, 2.986394166946411)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_param_values()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@Karlheinzniebuhr
Copy link

Getting lots of this error: TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'Tensor'

@Eng-Hercules
Copy link

No animation is generated by the animation function. Jupyter cannot recognize %matplotlib notebook

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment