3295 lines
595 KiB
Plaintext
3295 lines
595 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"$\\newcommand{\\vct}[1]{\\boldsymbol{#1}}\n",
|
|
"\\newcommand{\\mtx}[1]{\\mathbf{#1}}\n",
|
|
"\\newcommand{\\tr}{^\\mathrm{T}}\n",
|
|
"\\newcommand{\\reals}{\\mathbb{R}}\n",
|
|
"\\newcommand{\\lpa}{\\left(}\n",
|
|
"\\newcommand{\\rpa}{\\right)}\n",
|
|
"\\newcommand{\\lsb}{\\left[}\n",
|
|
"\\newcommand{\\rsb}{\\right]}\n",
|
|
"\\newcommand{\\lbr}{\\left\\lbrace}\n",
|
|
"\\newcommand{\\rbr}{\\right\\rbrace}\n",
|
|
"\\newcommand{\\fset}[1]{\\lbr #1 \\rbr}\n",
|
|
"\\newcommand{\\pd}[2]{\\frac{\\partial #1}{\\partial #2}}$\n",
|
|
"\n",
|
|
"# Single layer models\n",
|
|
"\n",
|
|
"In this lab we will implement a single-layer network model consisting of solely of an affine transformation of the inputs. The relevant material for this was covered in [the slides of the first lecture](http://www.inf.ed.ac.uk/teaching/courses/mlp/2016/mlp01-intro.pdf). \n",
|
|
"\n",
|
|
"We will first implement the forward propagation of inputs to the network to produce predicted outputs. We will then move on to considering how to use gradients of an error function evaluated on the outputs to compute the gradients with respect to the model parameters to allow us to perform an iterative gradient-descent training procedure. In the final exercise you will use an interactive visualisation to explore the role of some of the different hyperparameters of gradient-descent based training methods.\n",
|
|
"\n",
|
|
"#### A note on random number generators\n",
|
|
"\n",
|
|
"It is generally a good practice (for machine learning applications **not** for cryptography!) to seed a pseudo-random number generator once at the beginning of each experiment. This makes it easier to reproduce results as the same random draws will produced each time the experiment is run (e.g. the same random initialisations used for parameters). Therefore generally when we need to generate random values during this course, we will create a seeded random number generator object as we do in the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"seed = 27092016 \n",
|
|
"rng = np.random.RandomState(seed)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 1: linear and affine transforms\n",
|
|
"\n",
|
|
"Any *linear transform* (also called a linear map) of a finite-dimensional vector space can be parametrised by a matrix. So for example if we consider $\\vct{x} \\in \\reals^{D}$ as the input space of a model with $D$ dimensional real-valued inputs, then a matrix $\\mtx{W} \\in \\reals^{K\\times D}$ can be used to define a prediction model consisting solely of a linear transform of the inputs\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\vct{y} = \\mtx{W} \\vct{x}\n",
|
|
" \\qquad\n",
|
|
" \\Leftrightarrow\n",
|
|
" \\qquad\n",
|
|
" y_k = \\sum_{d=1}^D \\lpa W_{kd} x_d \\rpa \\quad \\forall k \\in \\fset{1 \\dots K}\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"with here $\\vct{y} \\in \\reals^K$ the $K$-dimensional real-valued output of the model. Geometrically we can think of a linear transform doing some combination of rotation, scaling, reflection and shearing of the input.\n",
|
|
"\n",
|
|
"An *affine transform* consists of a linear transform plus an additional translation parameterised by a vector $\\vct{b} \\in \\reals^K$. A model consisting of an affine transformation of the inputs can then be defined as\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\vct{y} = \\mtx{W}\\vct{x} + \\vct{b}\n",
|
|
" \\qquad\n",
|
|
" \\Leftrightarrow\n",
|
|
" \\qquad\n",
|
|
" y_k = \\sum_{d=1}^D \\lpa W_{kd} x_d \\rpa + b_k \\quad \\forall k \\in \\fset{1 \\dots K}\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"In machine learning we will usually refer to the matrix $\\mtx{W}$ as a *weight matrix* and the vector $\\vct{b}$ as a *bias vector*.\n",
|
|
"\n",
|
|
"Generally rather than working with a single data vector $\\vct{x}$ we will work with batches of datapoints $\\fset{\\vct{x}^{(b)}}_{b=1}^B$. We could calculate the outputs for each input in the batch sequentially\n",
|
|
"\n",
|
|
"\\begin{align}\n",
|
|
" \\vct{y}^{(1)} &= \\mtx{W}\\vct{x}^{(1)} + \\vct{b}\\\\\n",
|
|
" \\vct{y}^{(2)} &= \\mtx{W}\\vct{x}^{(2)} + \\vct{b}\\\\\n",
|
|
" \\dots &\\\\\n",
|
|
" \\vct{y}^{(B)} &= \\mtx{W}\\vct{x}^{(B)} + \\vct{b}\\\\\n",
|
|
"\\end{align}\n",
|
|
"\n",
|
|
"by looping over each input in the batch and calculating the output. However in general loops in Python are slow (particularly compared to compiled and typed languages such as C). This is due at least in part to the large overhead in dynamically inferring variable types. In general therefore wherever possible we want to avoid having loops in which such overhead will become the dominant computational cost.\n",
|
|
"\n",
|
|
"For array based numerical operations, one way of overcoming this bottleneck is to *vectorise* operations. NumPy `ndarrays` are typed arrays for which operations such as basic elementwise arithmetic and linear algebra operations such as computing matrix-matrix or matrix-vector products are implemented by calls to highly-optimised compiled libraries. Therefore if you can implement code directly using NumPy operations on arrays rather than by looping over array elements it is often possible to make very substantial performance gains.\n",
|
|
"\n",
|
|
"As a simple example we can consider adding up two arrays `a` and `b` and writing the result to a third array `c`. First lets initialise `a` and `b` with arbitrary values by running the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"size = 1000\n",
|
|
"a = np.arange(size)\n",
|
|
"b = np.ones(size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now let's time how long it takes to add up each pair of values in the two array and write the results to a third array using a loop-based implementation. We will use the `%%timeit` magic briefly mentioned in the previous lab notebook specifying the number of times to loop the code as 100 and to give the best of 3 repeats. Run the cell below to get a print out of the average time taken."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100 loops, best of 3: 2.17 ms per loop\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%timeit -n 100 -r 3\n",
|
|
"c = np.empty(size)\n",
|
|
"for i in range(size):\n",
|
|
" c[i] = a[i] + b[i]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"And now we will perform the corresponding summation with the overloaded addition operator of NumPy arrays. Again run the cell below to get a print out of the average time taken."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100 loops, best of 3: 3.28 µs per loop\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%timeit -n 100 -r 3\n",
|
|
"c = a + b"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The first loop-based implementation should have taken on the order of milliseconds ($10^{-3}$s) while the vectorised implementation should have taken on the order of microseconds ($10^{-6}$s), i.e. a $\\sim1000\\times$ speedup. Hopefully this simple example should make it clear why we want to vectorise operations whenever possible!\n",
|
|
"\n",
|
|
"Getting back to our affine model, ideally rather than individually computing the output corresponding to each input we should compute the outputs for all inputs in a batch using a vectorised implementation. As you saw last week, data providers return batches of inputs as arrays of shape `(batch_size, input_dim)`. In the mathematical notation used earlier we can consider this as a matrix $\\mtx{X}$ of dimensionality $B \\times D$, and in particular\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\mtx{X} = \\lsb \\vct{x}^{(1)} ~ \\vct{x}^{(2)} ~ \\dots ~ \\vct{x}^{(B)} \\rsb\\tr\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"i.e. the $b^{\\textrm{th}}$ input vector $\\vct{x}^{(b)}$ corresponds to the $b^{\\textrm{th}}$ row of $\\mtx{X}$. If we define the $B \\times K$ matrix of outputs $\\mtx{Y}$ similarly as\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\mtx{Y} = \\lsb \\vct{y}^{(1)} ~ \\vct{y}^{(2)} ~ \\dots ~ \\vct{y}^{(B)} \\rsb\\tr\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"then we can express the relationship between $\\mtx{X}$ and $\\mtx{Y}$ using [matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication) and addition as\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\mtx{Y} = \\mtx{X} \\mtx{W}\\tr + \\mtx{B}\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"where $\\mtx{B} = \\lsb \\vct{b} ~ \\vct{b} ~ \\dots ~ \\vct{b} \\rsb\\tr$ i.e. a $B \\times K$ matrix with each row corresponding to the bias vector. The weight matrix needs to be transposed here as the inner dimensions of a matrix multiplication must match i.e. for $\\mtx{C} = \\mtx{A} \\mtx{B}$ then if $\\mtx{A}$ is of dimensionality $K \\times L$ and $\\mtx{B}$ is of dimensionality $M \\times N$ then it must be the case that $L = M$ and $\\mtx{C}$ will be of dimensionality $K \\times N$.\n",
|
|
"\n",
|
|
"The first exercise for this lab is to implement *forward propagation* for a single-layer model consisting of an affine transformation of the inputs in the `fprop` function given as skeleton code in the cell below. This should work for a batch of inputs of shape `(batch_size, input_dim)` producing a batch of outputs of shape `(batch_size, output_dim)`.\n",
|
|
" \n",
|
|
"You will probably want to use the NumPy `dot` function and [broadcasting features](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html) to implement this efficiently. If you are not familiar with either / both of these you may wish to read the [hints](#Hints:-Using-the-dot-function-and-broadcasting) section below which gives some details on these before attempting the exercise."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def fprop(inputs, weights, biases):\n",
|
|
" \"\"\"Forward propagates activations through the layer transformation.\n",
|
|
"\n",
|
|
" For inputs `x`, outputs `y`, weights `W` and biases `b` the layer\n",
|
|
" corresponds to `y = W x + b`.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: Array of layer inputs of shape (batch_size, input_dim).\n",
|
|
" weights: Array of weight parameters of shape \n",
|
|
" (output_dim, input_dim).\n",
|
|
" biases: Array of bias parameters of shape (output_dim, ).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" outputs: Array of layer outputs of shape (batch_size, output_dim).\n",
|
|
" \"\"\"\n",
|
|
" return inputs.dot(weights.T) + biases"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Once you have implemented `fprop` in the cell above you can test your implementation by running the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"All outputs correct!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"inputs = np.array([[0., -1., 2.], [-6., 3., 1.]])\n",
|
|
"weights = np.array([[2., -3., -1.], [-5., 7., 2.]])\n",
|
|
"biases = np.array([5., -3.])\n",
|
|
"true_outputs = np.array([[6., -6.], [-17., 50.]])\n",
|
|
"\n",
|
|
"if not np.allclose(fprop(inputs, weights, biases), true_outputs):\n",
|
|
" print('Wrong outputs computed.')\n",
|
|
"else:\n",
|
|
" print('All outputs correct!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Hints: Using the `dot` function and broadcasting\n",
|
|
"\n",
|
|
"For those new to NumPy below are some details on the `dot` function and broadcasting feature of NumPy that you may want to use for implementing the first exercise. If you are already familiar with these and have already completed the first exercise you can move on straight to [second exercise](#Exercise-2:-visualising-random-models).\n",
|
|
"\n",
|
|
"#### `numpy.dot` function\n",
|
|
"\n",
|
|
"Matrix-matrix, matrix-vector and vector-vector (dot) products can all be computed in NumPy using the [`dot`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html) function. For example if `A` and `B` are both two dimensional arrays, then `C = np.dot(A, B)` or equivalently `C = A.dot(B)` will both compute the matrix product of `A` and `B` assuming `A` and `B` have compatible dimensions. Similarly if `a` and `b` are one dimensional arrays then `c = np.dot(a, b)` / `c = a.dot(b)` will compute the [scalar / dot product](https://en.wikipedia.org/wiki/Dot_product) of the two arrays. If `A` is a two-dimensional array and `b` a one-dimensional array `np.dot(A, b)` / `A.dot(b)` will compute the matrix-vector product of `A` and `b`. Examples of all three of these product types are shown in the cell below:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[[ 6. 6. 6.]\n",
|
|
" [ 24. 24. 24.]\n",
|
|
" [ 42. 42. 42.]]\n",
|
|
"[[ 18. 24. 30.]\n",
|
|
" [ 18. 24. 30.]\n",
|
|
" [ 18. 24. 30.]]\n",
|
|
"[ 0.8 2.6 4.4]\n",
|
|
"[ 2.4 3. 3.6]\n",
|
|
"0.2\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Initiliase arrays with arbitrary values\n",
|
|
"A = np.arange(9).reshape((3, 3))\n",
|
|
"B = np.ones((3, 3)) * 2\n",
|
|
"a = np.array([-1., 0., 1.])\n",
|
|
"b = np.array([0.1, 0.2, 0.3])\n",
|
|
"print(A.dot(B)) # Matrix-matrix product\n",
|
|
"print(B.dot(A)) # Reversed product of above A.dot(B) != B.dot(A) in general\n",
|
|
"print(A.dot(b)) # Matrix-vector product\n",
|
|
"print(b.dot(A)) # Again A.dot(b) != b.dot(A) unless A is symmetric i.e. A == A.T\n",
|
|
"print(a.dot(b)) # Vector-vector scalar product"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Broadcasting\n",
|
|
"\n",
|
|
"Another NumPy feature it will be helpful to get familiar with is [broadcasting](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html). Broadcasting allows you to apply operations to arrays of different shapes, for example to add a one-dimensional array to a two-dimensional array or multiply a multidimensional array by a scalar. The complete set of rules for broadcasting as explained in the official documentation page just linked to can sound a bit complex: you might find the [visual explanation on this page](http://www.scipy-lectures.org/intro/numpy/operations.html#broadcasting) more intuitive. The cell below gives a few examples:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[[ 0.1 1.2]\n",
|
|
" [ 2.1 3.2]\n",
|
|
" [ 4.1 5.2]]\n",
|
|
"[[-1. 0.]\n",
|
|
" [ 2. 3.]\n",
|
|
" [ 5. 6.]]\n",
|
|
"[[ 0. 0.2]\n",
|
|
" [ 0.2 0.6]\n",
|
|
" [ 0.4 1. ]]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Initiliase arrays with arbitrary values\n",
|
|
"A = np.arange(6).reshape((3, 2))\n",
|
|
"b = np.array([0.1, 0.2])\n",
|
|
"c = np.array([-1., 0., 1.])\n",
|
|
"print(A + b) # Add b elementwise to all rows of A\n",
|
|
"print((A.T + c).T) # Add b elementwise to all columns of A\n",
|
|
"print(A * b) # Multiply each row of A elementise by b "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 2: visualising random models"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In this exercise you will use your `fprop` implementation to visualise the outputs of a single-layer affine transform model with two-dimensional inputs and a one-dimensional output. In this simple case we can visualise the joint input-output space on a 3D axis.\n",
|
|
"\n",
|
|
"For this task and the learning experiments later in the notebook we will use a regression dataset from the [UCI machine learning repository](http://archive.ics.uci.edu/ml/index.html). In particular we will use a version of the [Combined Cycle Power Plant dataset](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant), where the task is to predict the energy output of a power plant given observations of the local ambient conditions (e.g. temperature, pressure and humidity).\n",
|
|
"\n",
|
|
"The original dataset has four input dimensions and a single target output dimension. We have preprocessed the dataset by [whitening](https://en.wikipedia.org/wiki/Whitening_transformation) it, a common preprocessing step. We will only use the first two dimensions of the whitened inputs (corresponding to the first two principal components of the inputs) so we can easily visualise the joint input-output space.\n",
|
|
"\n",
|
|
"The dataset has been wrapped in the `CCPPDataProvider` class in the `mlp.data_providers` module and the data included as a compressed file in the data directory as `ccpp_data.npz`. Running the cell below will initialise an instance of this class, get a single batch of inputs and outputs and import the necessary `matplotlib` objects."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from mpl_toolkits.mplot3d import Axes3D\n",
|
|
"from mlp.data_providers import CCPPDataProvider\n",
|
|
"%matplotlib notebook\n",
|
|
"\n",
|
|
"data_provider = CCPPDataProvider(\n",
|
|
" which_set='train',\n",
|
|
" input_dims=[0, 1],\n",
|
|
" batch_size=5000, \n",
|
|
" max_num_batches=1, \n",
|
|
" shuffle_order=False\n",
|
|
")\n",
|
|
"\n",
|
|
"input_dim, output_dim = 2, 1\n",
|
|
"\n",
|
|
"inputs, targets = data_provider.next()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Here we used the `%matplotlib notebook` magic command rather than the `%matplotlib inline` we used in the previous lab as this allows us to produce interactive 3D plots which you can rotate and zoom in/out by dragging with the mouse and scrolling the mouse-wheel respectively. Once you have finished interacting with a plot you can close it to produce a static inline plot using the <i class=\"fa fa-power-off\"></i> button in the top-right corner.\n",
|
|
"\n",
|
|
"Now run the cell below to plot the predicted outputs of a randomly initialised model across the two dimensional input space as well as the true target outputs. This sort of visualisation can be a useful method (in low dimensions) to assess how well the model is likely to be able to fit the data and to judge appropriate initialisation scales for the parameters. Each time you re-run the cell a new set of random parameters will be sampled\n",
|
|
"\n",
|
|
"Some questions to consider:\n",
|
|
"\n",
|
|
" * How do the weights and bias initialisation scale affect the sort of predicted input-output relationships?\n",
|
|
" * Magnitude of weights initialisation scale determines how steep along the two input directions the plane predictions lie on is. The magnitude of the bias initialisation scale determines the typical offset of the plane from the `output = 0.` plane.\n",
|
|
" * Does the linear form of the model seem appropriate for the data here?\n",
|
|
" * While it appears a linear-model will not be able to fully capture the input-output relationship evident in the data with there some degree of non-linearity seeming to be present, as a first approximation a linear model seems a reasonable choice as a simple model for the data."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\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",
|
|
" 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",
|
|
" this.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 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);\n",
|
|
" canvas.attr('height', height);\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'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\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;\n",
|
|
" var y = canvas_pos.y;\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\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\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",
|
|
" 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 + '\">');\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 dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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",
|
|
" // select the cell after this one\n",
|
|
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
|
|
" IPython.notebook.select(index + 1);\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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LJlVDf6CxllmEEkc+Lv//vvV7rvvrvfLRRddtKxp8e10mAQ8AOywCa/DcNn833//fXXppZfqqDbMH5tuuqn+WWaZZSITwpvRxIylbHOlS/k1hepEwKDInoMyr9nMBACdRvHDGko69+1C62N+N3UEf/Z3XWQQSRz4e/jhh9Uuu+yi/akXX3xxl1tO6XUx102/pJcutBIb9ACwRGH7pn6UwH//+1+1/vrra/qYc845RycKx0z83HPPqXXWWUebifv16xcJBk1fnjLMlS7nL87x22VbLusK01BJVoYknHfU8dlnn+luleH35XL8LuqKAwBhbdi0Pk30k23i3LsMIokD/nCuDh48WLMrLLHEEi6WW2V1sF5Zo59++qn+Yb8mqYAv9ZGAB4D1mYuO6cmTTz6pzb8DBw5UZ599djeut48//lg7PGMmfuKJJ9Raa62lweBKK60UyodXhrnS1eTQVzPBe9OjXe1UgMLxGEaAXFWwi6v5y1uPK+DPOgJMmBH0VUdyx8mmieDPHlPYXpMkHWCQyd+sn31xhx12UOT4XXrppePE6ez3RxxxhDr33HMVe2/fvn11irm84FPA30svvaS1mR9++KHe59nz//znPzvru68onwQ8AMwnP/92BgncdNNN6u6771aHH354pHmAWyO8V4DBhx56SP3qV79Sm2yyiRowYEAoTUidwWC7R7uGmSuF866TM1zwmcSl+MrwKelXgjRUopF15a+ZtW/yXjuAvyAwaK55cY0ICiKJA39PP/202m677dQll1yiQVhZZfjw4doHm32WQJOjjjpKXXTRRdoSg2tGliJmX6w8/fv3V3/4wx905igu9lDZXHDBBd6vMYtgC3jHA8AChOqrdC8BONIIEsFMTHTcqquuqjWDq622WmiqsChzZdnRlRLtmiTFlXvplV9jkA+VHJAEPSQxFZff6+JaLAr8JdVQCSCswh+rHcFf0EoJCyJhrUOHFZbWELC1zTbbqAsvvFADpjLLggsuqGlmhgwZoptlf4JomlzD2267beausF9vueWW6pe//KUaNmyYrodvgIAWUtltvfXWmev2L7qTgAeA7mRZWk3QAhx22GHqtdde023yER900EFqs802K60PVTb05ZdfqltuuUX7yRA9jHkY0uk111xTE0gHlSrBoHkAdnLAAwehmIYEkLRDJHfct8B6rYLgOip4By1V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\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"weights_init_range = 0.5\n",
|
|
"biases_init_range = 0.1\n",
|
|
"\n",
|
|
"# Randomly initialise weights matrix\n",
|
|
"weights = rng.uniform(\n",
|
|
" low=-weights_init_range, \n",
|
|
" high=weights_init_range, \n",
|
|
" size=(output_dim, input_dim)\n",
|
|
")\n",
|
|
"\n",
|
|
"# Randomly initialise biases vector\n",
|
|
"biases = rng.uniform(\n",
|
|
" low=-biases_init_range, \n",
|
|
" high=biases_init_range, \n",
|
|
" size=output_dim\n",
|
|
")\n",
|
|
"# Calculate predicted model outputs\n",
|
|
"outputs = fprop(inputs, weights, biases)\n",
|
|
"\n",
|
|
"# Plot target and predicted outputs against inputs on same axis\n",
|
|
"fig = plt.figure(figsize=(8, 8))\n",
|
|
"ax = fig.add_subplot(111, projection='3d')\n",
|
|
"ax.plot(inputs[:, 0], inputs[:, 1], targets[:, 0], 'r.', ms=2)\n",
|
|
"ax.plot(inputs[:, 0], inputs[:, 1], outputs[:, 0], 'b.', ms=2)\n",
|
|
"ax.set_xlabel('Input dim 1')\n",
|
|
"ax.set_ylabel('Input dim 2')\n",
|
|
"ax.set_zlabel('Output')\n",
|
|
"ax.legend(['Targets', 'Predictions'], frameon=False)\n",
|
|
"fig.tight_layout()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 3: computing the error function and its gradient\n",
|
|
"\n",
|
|
"Here we will consider the task of regression as covered in the first lecture slides. The aim in a regression problem is given inputs $\\fset{\\vct{x}^{(n)}}_{n=1}^N$ to produce outputs $\\fset{\\vct{y}^{(n)}}_{n=1}^N$ that are as 'close' as possible to a set of target outputs $\\fset{\\vct{t}^{(n)}}_{n=1}^N$. The measure of 'closeness' or distance between target and predicted outputs is a design choice. \n",
|
|
"\n",
|
|
"A very common choice is the squared Euclidean distance between the predicted and target outputs. This can be computed as the sum of the squared differences between each element in the target and predicted outputs. A common convention is to multiply this value by $\\frac{1}{2}$ as this gives a slightly nicer expression for the error gradient. The error for the $n^{\\textrm{th}}$ training example is then\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" E^{(n)} = \\frac{1}{2} \\sum_{k=1}^K \\lbr \\lpa y^{(n)}_k - t^{(n)}_k \\rpa^2 \\rbr.\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"The overall error is then the *average* of this value across all training examples\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\bar{E} = \\frac{1}{N} \\sum_{n=1}^N \\lbr E^{(n)} \\rbr. \n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"*Note here we are using a slightly different convention from the lectures. There the overall error was considered to be the sum of the individual error terms rather than the mean. To differentiate between the two we will use $\\bar{E}$ to represent the average error here as opposed to sum of errors $E$ as used in the slides with $\\bar{E} = \\frac{E}{N}$. Normalising by the number of training examples is helpful to do in practice as this means we can more easily compare errors across data sets / batches of different sizes, and more importantly it means the size of our gradient updates will be independent of the number of training examples summed over.*\n",
|
|
"\n",
|
|
"The regression problem is then to find parameters of the model which minimise $\\bar{E}$. For our simple single-layer affine model here that corresponds to finding weights $\\mtx{W}$ and biases $\\vct{b}$ which minimise $\\bar{E}$. \n",
|
|
"\n",
|
|
"As mentioned in the lecture, for this simple case there is actually a closed form solution for the optimal weights and bias parameters. This is the linear least-squares solution those doing MLPR will have come across.\n",
|
|
"\n",
|
|
"However in general we will be interested in models where closed form solutions do not exist. We will therefore generally use iterative, gradient descent based training methods to find parameters which (locally) minimise the error function. A basic requirement of being able to do gradient-descent based training is (unsuprisingly) the ability to evaluate gradients of the error function.\n",
|
|
"\n",
|
|
"In the next exercise we will consider how to calculate gradients of the error function with respect to the model parameters $\\mtx{W}$ and $\\vct{b}$, but as a first step here we will consider the gradient of the error function with respect to the model outputs $\\fset{\\vct{y}^{(n)}}_{n=1}^N$. This can be written\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\pd{\\bar{E}}{\\vct{y}^{(n)}} = \\frac{1}{N} \\lpa \\vct{y}^{(n)} - \\vct{t}^{(n)} \\rpa\n",
|
|
" \\qquad \\Leftrightarrow \\qquad\n",
|
|
" \\pd{\\bar{E}}{y^{(n)}_k} = \\frac{1}{N} \\lpa y^{(n)}_k - t^{(n)}_k \\rpa \\quad \\forall k \\in \\fset{1 \\dots K}\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"i.e. the gradient of the error function with respect to the $n^{\\textrm{th}}$ model output is just the difference between the $n^{\\textrm{th}}$ model and target outputs, corresponding to the $\\vct{\\delta}^{(n)}$ terms mentioned in the lecture slides.\n",
|
|
"\n",
|
|
"The third exercise is, using the equations given above, to implement functions computing the mean sum of squared differences error and its gradient with respect to the model outputs. You should implement the functions using the provided skeleton definitions in the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def error(outputs, targets):\n",
|
|
" \"\"\"Calculates error function given a batch of outputs and targets.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" outputs: Array of model outputs of shape (batch_size, output_dim).\n",
|
|
" targets: Array of target outputs of shape (batch_size, output_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" Scalar error function value.\n",
|
|
" \"\"\"\n",
|
|
" return 0.5 * ((outputs - targets)**2).sum() / outputs.shape[0]\n",
|
|
" \n",
|
|
"def error_grad(outputs, targets):\n",
|
|
" \"\"\"Calculates gradient of error function with respect to model outputs.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" outputs: Array of model outputs of shape (batch_size, output_dim).\n",
|
|
" targets: Array of target outputs of shape (batch_size, output_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" Gradient of error function with respect to outputs.\n",
|
|
" This will be an array of shape (batch_size, output_dim).\n",
|
|
" \"\"\"\n",
|
|
" return (outputs - targets) / outputs.shape[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Check your implementation by running the test cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Error function and gradient computed correctly!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"outputs = np.array([[1., 2.], [-1., 0.], [6., -5.], [-1., 1.]])\n",
|
|
"targets = np.array([[0., 1.], [3., -2.], [7., -3.], [1., -2.]])\n",
|
|
"true_error = 5.\n",
|
|
"true_error_grad = np.array([[0.25, 0.25], [-1., 0.5], [-0.25, -0.5], [-0.5, 0.75]])\n",
|
|
"\n",
|
|
"if not error(outputs, targets) == true_error:\n",
|
|
" print('Error calculated incorrectly.')\n",
|
|
"elif not np.allclose(error_grad(outputs, targets), true_error_grad):\n",
|
|
" print('Error gradient calculated incorrectly.')\n",
|
|
"else:\n",
|
|
" print('Error function and gradient computed correctly!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 4: computing gradients with respect to the parameters\n",
|
|
"\n",
|
|
"In the previous exercise you implemented a function computing the gradient of the error function with respect to the model outputs. For gradient-descent based training, we need to be able to evaluate the gradient of the error function with respect to the model parameters.\n",
|
|
"\n",
|
|
"Using the [chain rule for derivatives](https://en.wikipedia.org/wiki/Chain_rule#Higher_dimensions) we can write the partial deriviative of the error function with respect to single elements of the weight matrix and bias vector as\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\pd{\\bar{E}}{W_{kj}} = \\sum_{n=1}^N \\lbr \\pd{\\bar{E}}{y^{(n)}_k} \\pd{y^{(n)}_k}{W_{kj}} \\rbr\n",
|
|
" \\quad \\textrm{and} \\quad\n",
|
|
" \\pd{\\bar{E}}{b_k} = \\sum_{n=1}^N \\lbr \\pd{\\bar{E}}{y^{(n)}_k} \\pd{y^{(n)}_k}{b_k} \\rbr.\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"From the definition of our model at the beginning we have \n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" y^{(n)}_k = \\sum_{d=1}^D \\lbr W_{kd} x^{(n)}_d \\rbr + b_k\n",
|
|
" \\quad \\Rightarrow \\quad\n",
|
|
" \\pd{y^{(n)}_k}{W_{kj}} = x^{(n)}_j\n",
|
|
" \\quad \\textrm{and} \\quad\n",
|
|
" \\pd{y^{(n)}_k}{b_k} = 1.\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"Putting this together we get that\n",
|
|
"\n",
|
|
"\\begin{equation}\n",
|
|
" \\pd{\\bar{E}}{W_{kj}} = \n",
|
|
" \\sum_{n=1}^N \\lbr \\pd{\\bar{E}}{y^{(n)}_k} x^{(n)}_j \\rbr\n",
|
|
" \\quad \\textrm{and} \\quad\n",
|
|
" \\pd{\\bar{E}}{b_{k}} = \n",
|
|
" \\sum_{n=1}^N \\lbr \\pd{\\bar{E}}{y^{(n)}_k} \\rbr.\n",
|
|
"\\end{equation}\n",
|
|
"\n",
|
|
"Although this may seem a bit of a roundabout way to get to these results, this method of decomposing the error gradient with respect to the parameters in terms of the gradient of the error function with respect to the model outputs and the derivatives of the model outputs with respect to the model parameters, will be key when calculating the parameter gradients of more complex models later in the course.\n",
|
|
"\n",
|
|
"Your task in this exercise is to implement a function calculating the gradient of the error function with respect to the weight and bias parameters of the model given the already computed gradient of the error function with respect to the model outputs. You should implement this in the `grads_wrt_params` function in the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def grads_wrt_params(inputs, grads_wrt_outputs):\n",
|
|
" \"\"\"Calculates gradients with respect to model parameters.\n",
|
|
"\n",
|
|
" Args:\n",
|
|
" inputs: array of inputs to model of shape (batch_size, input_dim)\n",
|
|
" grads_wrt_to_outputs: array of gradients of with respect to the model\n",
|
|
" outputs of shape (batch_size, output_dim).\n",
|
|
"\n",
|
|
" Returns:\n",
|
|
" list of arrays of gradients with respect to the model parameters\n",
|
|
" `[grads_wrt_weights, grads_wrt_biases]`.\n",
|
|
" \"\"\"\n",
|
|
" grads_wrt_weights = grads_wrt_outputs.T.dot(inputs)\n",
|
|
" grads_wrt_biases = grads_wrt_outputs.sum(0)\n",
|
|
" return [grads_wrt_weights, grads_wrt_biases]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Check your implementation by running the test cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"All parameter gradients calculated correctly!\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"inputs = np.array([[1., 2., 3.], [-1., 4., -9.]])\n",
|
|
"grads_wrt_outputs = np.array([[-1., 1.], [2., -3.]])\n",
|
|
"true_grads_wrt_weights = np.array([[-3., 6., -21.], [4., -10., 30.]])\n",
|
|
"true_grads_wrt_biases = np.array([1., -2.])\n",
|
|
"\n",
|
|
"grads_wrt_weights, grads_wrt_biases = grads_wrt_params(\n",
|
|
" inputs, grads_wrt_outputs)\n",
|
|
"\n",
|
|
"if not np.allclose(true_grads_wrt_weights, grads_wrt_weights):\n",
|
|
" print('Gradients with respect to weights incorrect.')\n",
|
|
"elif not np.allclose(true_grads_wrt_biases, grads_wrt_biases):\n",
|
|
" print('Gradients with respect to biases incorrect.')\n",
|
|
"else:\n",
|
|
" print('All parameter gradients calculated correctly!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 5: wrapping the functions into reusable components\n",
|
|
"\n",
|
|
"In exercises 1, 3 and 4 you implemented methods to compute the predicted outputs of our model, evaluate the error function and its gradient on the outputs and finally to calculate the gradients of the error with respect to the model parameters. Together they constitute all the basic ingredients we need to implement a gradient-descent based iterative learning procedure for the model.\n",
|
|
"\n",
|
|
"Although you could implement training code which directly uses the functions you defined, this would only be usable for this particular model architecture. In subsequent labs we will want to use the affine transform functions as the basis for more interesting multi-layer models. We will therefore wrap the implementations you just wrote in to reusable components that we can build more complex models with later in the course.\n",
|
|
"\n",
|
|
" * In the [`mlp.layers`](/edit/mlp/layers.py) module, use your implementations of `fprop` and `grad_wrt_params` above to implement the corresponding methods in the skeleton `AffineLayer` class provided.\n",
|
|
" * In the [`mlp.errors`](/edit/mlp/errors.py) module use your implementation of `error` and `error_grad` to implement the `__call__` and `grad` methods respectively of the skeleton `SumOfSquaredDiffsError` class provided. Note `__call__` is a special Python method that allows an object to be used with a function call syntax.\n",
|
|
"\n",
|
|
"Run the cell below to use your completed `AffineLayer` and `SumOfSquaredDiffsError` implementations to train a single-layer model using batch gradient descent on the CCCP dataset."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 1: 0.0s to complete\n",
|
|
" error(train)=1.67e-01, cost(param)=0.00e+00\n",
|
|
"Epoch 2: 0.0s to complete\n",
|
|
" error(train)=9.30e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 3: 0.0s to complete\n",
|
|
" error(train)=7.95e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 4: 0.0s to complete\n",
|
|
" error(train)=7.71e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 5: 0.0s to complete\n",
|
|
" error(train)=7.66e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 6: 0.0s to complete\n",
|
|
" error(train)=7.65e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 7: 0.0s to complete\n",
|
|
" error(train)=7.65e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 8: 0.0s to complete\n",
|
|
" error(train)=7.65e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 9: 0.0s to complete\n",
|
|
" error(train)=7.63e-02, cost(param)=0.00e+00\n",
|
|
"Epoch 10: 0.0s to complete\n",
|
|
" error(train)=7.64e-02, cost(param)=0.00e+00\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\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",
|
|
" 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",
|
|
" this.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 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);\n",
|
|
" canvas.attr('height', height);\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'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\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;\n",
|
|
" var y = canvas_pos.y;\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\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\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",
|
|
" 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 + '\">');\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 dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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",
|
|
" // select the cell after this one\n",
|
|
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
|
|
" IPython.notebook.select(index + 1);\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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\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.text.Text at 0x7ffa14159150>"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from mlp.layers import AffineLayer\n",
|
|
"from mlp.errors import SumOfSquaredDiffsError\n",
|
|
"from mlp.models import SingleLayerModel\n",
|
|
"from mlp.initialisers import UniformInit, ConstantInit\n",
|
|
"from mlp.learning_rules import GradientDescentLearningRule\n",
|
|
"from mlp.optimisers import Optimiser\n",
|
|
"import logging\n",
|
|
"\n",
|
|
"# Seed a random number generator\n",
|
|
"seed = 27092016 \n",
|
|
"rng = np.random.RandomState(seed)\n",
|
|
"\n",
|
|
"# Set up a logger object to print info about the training run to stdout\n",
|
|
"logger = logging.getLogger()\n",
|
|
"logger.setLevel(logging.INFO)\n",
|
|
"logger.handlers = [logging.StreamHandler()]\n",
|
|
"\n",
|
|
"# Create data provider objects for the CCPP training set\n",
|
|
"train_data = CCPPDataProvider('train', [0, 1], batch_size=100, rng=rng)\n",
|
|
"input_dim, output_dim = 2, 1\n",
|
|
"\n",
|
|
"# Create a parameter initialiser which will sample random uniform values\n",
|
|
"# from [-0.1, 0.1]\n",
|
|
"param_init = UniformInit(-0.1, 0.1, rng=rng)\n",
|
|
"\n",
|
|
"# Create our single layer model\n",
|
|
"layer = AffineLayer(input_dim, output_dim, param_init, param_init)\n",
|
|
"model = SingleLayerModel(layer)\n",
|
|
"\n",
|
|
"# Initialise the error object\n",
|
|
"error = SumOfSquaredDiffsError()\n",
|
|
"\n",
|
|
"# Use a basic gradient descent learning rule with a small learning rate\n",
|
|
"learning_rule = GradientDescentLearningRule(learning_rate=1e-2)\n",
|
|
"\n",
|
|
"# Use the created objects to initialise a new Optimiser instance.\n",
|
|
"optimiser = Optimiser(model, error, learning_rule, train_data)\n",
|
|
"\n",
|
|
"# Run the optimiser for 5 epochs (full passes through the training set)\n",
|
|
"# printing statistics every epoch.\n",
|
|
"stats, keys = optimiser.train(num_epochs=10, stats_interval=1)\n",
|
|
"\n",
|
|
"# Plot the change in the error over training.\n",
|
|
"fig = plt.figure(figsize=(8, 4))\n",
|
|
"ax = fig.add_subplot(111)\n",
|
|
"ax.plot(np.arange(1, stats.shape[0] + 1), stats[:, keys['error(train)']])\n",
|
|
"ax.set_xlabel('Epoch number')\n",
|
|
"ax.set_ylabel('Error')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using similar code to previously we can now visualise the joint input-output space for the trained model. If you implemented the required methods correctly you should now see a much improved fit between predicted and target outputs when running the cell below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"window.mpl = {};\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",
|
|
" 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",
|
|
" this.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 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);\n",
|
|
" canvas.attr('height', height);\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'];\n",
|
|
" var y0 = fig.canvas.height - msg['y0'];\n",
|
|
" var x1 = msg['x1'];\n",
|
|
" var y1 = fig.canvas.height - msg['y1'];\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;\n",
|
|
" var y = canvas_pos.y;\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\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\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",
|
|
" 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 + '\">');\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 dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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",
|
|
" // select the cell after this one\n",
|
|
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
|
|
" IPython.notebook.select(index + 1);\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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KiooEokEQiQsC50TAQw0uCwfLAQwyxMglxcEBAFBQBAQBOoyAk4EcPTo0TRp0iT64Ycf6LjjjlMWtvbt29OECRPoiy++oL///e/Uq1cvKi0tVVZCWA2/++47ZUW8/PLLacyYMVRQUBCH7u2336brr7+e3njjDfr1r39NV111FVVWVtIdd9yR4KK1cwG/++676hovvfQS7dy5U7l74bbGGEH+vvnmG6quro5fa8CAAfT444+rY6wu5m3btqmxLVy4kH766Sc64IADlKt7yJAh8eP/8Y9/ULt27ei5556jVatW0Zw5c9TvunTpQg888AA1adIk3hfu50ceeYS++uorql+/Pv3xj3+km266SWETpAkBDIKeHCsICAKCgCAgCAgCSRFwIoB9+vShxYsXK5fwYYcdRrD47bnnnjR27Fj67W9/q4gTiFjbtm3po48+Uu7iP/3pT7RhwwZFuq677jqaOHGiujaI1kEHHaTcurD61atXT/3u66+/VqRRj9GzEkC4hEHGDj74YBo5cqQimLBWvvfee3T//ffTO++8Q926daOjjz5anRtE8De/+Y0ihlYLI3532mmnqWNAPDHeZcuWEUjcjTfeSHfeeacaLxNAnOOMM86gHj160Mcff6yuf95559ETTzyh+j399NMEsgmiecoppygyjHHh+npcpZ8lKATQD2pyjCAgCAgCgoAgkEUEKiuJnn+eqHNnouLicAcS9rmZAILEwQUMC9mzzz5L1157rbJizZ8/X5Gp//3vf/Tll18qcsPtqaeeUgRo/fr1dPLJJ8d/ftdddykSiPg7WPtAGidPnqwshxzbB0ve/vvvTz///HNSAgjCBqL4ySefUElJiS2YTi5gKwFcunQp9ezZUyW+9OvXL34uJLzMmjVLkVGQXCaAbEnkjoMGDaLHHntMWSHR8P/XXntNWTXDbkIAw0ZUzicICAKCgCAgCKQZgWXLiJCQunAhUffu4V4s7HNbs4AxWmT+XnTRRXTvvfdSs2bNFAGEa3PNmjUJN4M+r776qrLI6Q2xgyeeeKKyIMKChnhCWPlefPHFhH5IPsH1nSyAsKg1btxYuXrHjRvnCKRbAojzTJkyRVnqijVmDsIH9zbG27179zgBhJsbllBujz76KF1zzTX0/fffKysokk5wDwMHDlRkuXXr1tSgQYNQJlwIYCgwykkEAUFAEBAEBIHM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Do3EF1980X3oQx9qDcYaiBAQAp0REAHUChECQkAIVIxAXUjYn/70J3f22Wf70oFz5851Cy+8cMVI6HZCQAj0CwERwH4hr/sKASEgBJxz/SBh119/vdt1110dguIkyxx22GHu1FNP1XwIASEwQAiIAA7QZGuoQkAI1AeBOpCw119/3U2fPt0ttdRSvoqMmhAQAoODgAjg4My1RioEhEANEeg3CUNHkjrSd911l1tttdVqiJC6JASEQBkIiACWgaquKQSEgBDIgEA/SRiJICSEfO9733M77rhjhl7rUCEgBJqMgAhgk2dPfRcCQqAVCFRJwsj6nTRpks8EnjdvnpsyZYr74Q9/6B599FG32GKLtQJPDUIICIHuCIgAdsdIRwgBISAECkWgnyRsm222cffff7/7wx/+4Oaff343YcIEd9xxx7m111670DHqYkJACNQbARHAes+PeicEhEALERAJa+GkakhCoGEIiAA2bMLUXSEgBISAEBACQkAI5EVABDAvgjpfCAgBISAEhIAQEAINQ0AEsGETpu4KASEgBISAEBACQiAvAiKAeRHU+UJACAgBISAEhIAQaBgCIoANmzB1VwgIASEgBISAEBACeREQAcyLoM4XAkJACAgBISAEhEDDEBABbNiEqbtCQAgIASEgBISAEMiLgAhgXgR1vhAQAkJACAgBISAEGoaACGDDJkzdFQJCQAgIASEgBIRAXgREAPMiqPOFgBAQAkJACAgBIdAwBEQAGzZh6q4QEAJCQAgIASEgBPIiIAKYF0GdLwSEgBAQAkJACAiBhiEgAtiwCVN3hYAQEAJCQAgIASGQFwERwLwI6nwhIASEgBAQAkJACDQMARHAhk2YuisEhIAQEAJCQAgIgbwIiADmRVDnCwEhIASEgBAQAkKgYQiIADZswtRdISAEhIAQEAJCQAjkRUAEMC+COl8ICAEhIASEgBAQAg1DQASwYROm7goBISAEhIAQEAJCIC8CIoB5EdT5QkAICAEhIASEgBBoGAIigA2bMHVXCAgBISAEhIAQEAJ5ERABzIugzhcCQkAICAEhIASEQMMQEAFs2ISpu0JACAgBISAEhIAQyIuACGBeBHW+EBACQkAICAEhIAQahoAIYMMmTN0VAkJACAgBISAEhEBeBEQA8yKo84WAEBACQkAICAEh0DAERAAbNmHqrhAQAkJACAgBISAE8iIgApgXQZ0vBISAEBACQkAICIGGISAC2LAJU3eFgBAQAkJACAgBIZAXARHAvAjqfCEgBISAEBACQkAINAwBEcCGTZi6KwSEgBAQAkJACAiBvAiIAOZFUOcLASEgBISAEBACQqBhCIgANmzC1F0hIASEgBAQAkJACORFQAQwL4I6XwgIASEgBISAEBACDUNABLBhE6buCgEhIASEgBAQAkIgLwIigHkR1PlCQAgIASEgBISAEGgYAiKADZswdVcICAEhIASEgBAQAnkREAHMi6DOFwJCQAgIASEgBIRAwxAQAWzYhKm7QkAICAEhIASEgBDIi4AIYF4Edb4QEAJCQAgIASEgBBqGQOUEsGH4qLtCQAgIASEgBISAEBAC7yHwISEhBISAEBACQkAICAEhMFgIiAAO1nxrtEJACAgBISAEhIAQcCKAWgRCQAgIASEgBISAEBgwBEQAB2zCNVwhIASEgBAQAkJACIgAag0IASEgBISAEBACQmDAEBABHLAJ13CFgBAQAkJACAgBISACqDUgBISAEBACQkAICIEBQ0AEcMAmXMMVAkJACAgBISAEhIAIoNaAEBACQkAICAEhIAQGDAERwAGbcA1XCAgBISAEhIAQEAIigFoDQkAICAEhIASEgBAYMAREAAdswjVcISAEhIAQEAJCQAiIAGoNCAEhIASEgBAQAkJgwBD4/xIPTE9HdrhPAAAAAElFTkSuQmCC\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"data_provider = CCPPDataProvider(\n",
|
|
" which_set='train',\n",
|
|
" input_dims=[0, 1],\n",
|
|
" batch_size=5000, \n",
|
|
" max_num_batches=1, \n",
|
|
" shuffle_order=False\n",
|
|
")\n",
|
|
"\n",
|
|
"inputs, targets = data_provider.next()\n",
|
|
"\n",
|
|
"# Calculate predicted model outputs\n",
|
|
"outputs = model.fprop(inputs)[-1]\n",
|
|
"\n",
|
|
"# Plot target and predicted outputs against inputs on same axis\n",
|
|
"fig = plt.figure(figsize=(8, 8))\n",
|
|
"ax = fig.add_subplot(111, projection='3d')\n",
|
|
"ax.plot(inputs[:, 0], inputs[:, 1], targets[:, 0], 'r.', ms=2)\n",
|
|
"ax.plot(inputs[:, 0], inputs[:, 1], outputs[:, 0], 'b.', ms=2)\n",
|
|
"ax.set_xlabel('Input dim 1')\n",
|
|
"ax.set_ylabel('Input dim 2')\n",
|
|
"ax.set_zlabel('Output')\n",
|
|
"ax.legend(['Targets', 'Predictions'], frameon=False)\n",
|
|
"fig.tight_layout()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercise 6: visualising training trajectories in parameter space"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Running the cell below will display an interactive widget which plots the trajectories of gradient-based training of the single-layer affine model on the CCPP dataset in the three dimensional parameter space (two weights plus bias) from random initialisations. Also shown on the right is a plot of the evolution of the error function (evaluated on the current batch) over training. By moving the sliders you can alter the training hyperparameters to investigate the effect they have on how training procedes.\n",
|
|
"\n",
|
|
"Some questions to explore:\n",
|
|
"\n",
|
|
" * Are there multiple local minima in parameter space here? Why?\n",
|
|
" * In this case there is a single unique global minima, as suggested by the fact random parameter initialisations consistently converge to the same point in parameter space. As mentioned previously there is a closed form solution for the optimal weights and biases for this simple single-layer affine model <a href='https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)'>linear least squares</a>) and the error function is [convex](https://en.wikipedia.org/wiki/Convex_function).\n",
|
|
" * What happens to learning for very small learning rates? And very large learning rates?\n",
|
|
" * For very small learning rates, the training proceeds very slowly and the parameters do not tend to converge to the global optimum unless a lot of training epochs are used. For very large learning rates, the gradient descent dynamic becomes increasingly instable, leading to large oscillations or at extreme values divergence in the parameter space.\n",
|
|
" * How does the batch size affect learning?\n",
|
|
" * Smaller batch sizes generally lead to quicker initial learning as the parameters are updated more frequently (more batches in an epoch) however as the batch becomes smaller the error estimate calculated from the batch and its gradients become increasingly noisy estimates for the true error function / gradients. This can be observed by the less smooth trajectories in parameter space for lower batch sizes and greater noise in the batch error curves.\n",
|
|
" \n",
|
|
"**Note:** You don't need to understand how the code below works. The idea of this exercise is to help you understand the role of the various hyperparameters involved in gradient-descent based training methods."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMwAAAJrCAYAAAAcfQ8PAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XeYVNX9x/HPmd1lG1UpJlgQVGxBBWxJpIiKIqAhAmIS\nC0YxBI1rNGokKlhjW0sCwQoWEEQDJsYuWKKisWAlPxXUCAkWyi4s22bO74+ZWe7MTt2d3Tmz+349\nzz6wd+7c+c6doufD95xrrLUCAAAAAAAAEOTLdgEAAAAAAACASwjMAAAAAAAAAA8CMwAAAAAAAMCD\nwAwAAAAAAADwIDADAAAAAAAAPAjMAAAAAAAAAA8CMwAAAAAAAMCDwAwAAAAAAADwyE9jX9tiVQAA\nALRPJtsFAAAAoDE6zAAAAAAAAAAPAjMAAAAAAADAg8AMAAAAAAAA8CAwAwAAAAAAADwIzAAAAAAA\nAAAPAjMAAAAAAADAg8AMAAAAAAAA8CAwAwAAAAAAADwIzAAAAAAAAAAPAjMAAAAAAADAg8AMAAAA\nAAAA8CAwAwAAAAAAADwIzAAAAAAAAAAPAjMAAAAAAADAg8AMAAAAAAAA8CAwAwAAAAAAADwIzAAA\nAAAAAAAPAjMAAAAAAADAg8AMAAAAAAAA8CAwAwAAAAAAADwIzAAAAAAAAAAPAjMAAAAAAADAg8AM\nAAAAAAAA8CAwAwAAAAAAADwIzAAAAAAAAAAPAjMAAAAAAADAg8AMAAAAAAAA8CAwA5BRL774onw+\nn1566aVsl9Ikw4YN0/Dhw7NdRrvk8/k0c+bMJt23T58+mjx5coYrAgAAANBeEZgh6+bNmyefz9fw\nU1xcrP79++vcc8/V119/ne3yWtyCBQt02223tepjzp49W/PmzWux4xtjWuzYH3/8sWbMmKEvv/yy\nRY5vjJHPx1djLE8++aRmzJjRYsc3xjT5vePz+Vr0fQcAAACgfTHW2lT3TXlHIB3z5s3T5MmTddVV\nV6lPnz6qrq7WK6+8ovvvv199+vTRBx98oKKiomyX2WLGjBmjDz/8UKtXr261x/zBD36gHj166IUX\nXmiR49fW1qpDhw4tcuxHH31U48eP1/LlyzVkyJCMH7++vl6SlJ+fn/Fj57pzzz1Xs2bNkt/vb5Hj\n19bWKj8/v0mBZV1dnXw+n/Ly8lqgMqBFkfQCAAA4iBEhnHHsscdq4MCBkqTJkydrhx12UHl5uZYu\nXaqJEyc269g1NTXq0KFDu+lAsdaqtrZWhYWFzT5WVVWVSkpK0rpPS4VlUvC5tcTruG3bNhUXF7f7\noCx8HmJJ4x9Y5Pf7FQgEVFBQkPJ9mvO+SedxAAAAACAZ5h3BWUceeaSstVqzZo0kaePGjbrwwgs1\nYMAAderUSV26dNGoUaP03nvvRdwvvIbWwoULNX36dO28884qLS1VZWVl2sd45JFHNGPGDO28887q\n3Lmzxo8fr8rKStXW1ur8889Xr1691KlTJ02ePFl1dXWNnsODDz6owYMHq6SkRDvuuKMmTZqkr776\nquH24cOH64knntAXX3zRMCW1b9++DbfX1tbqiiuu0J577qmioiLtuuuuuvjii1VbWxvxOD6fT+ed\nd57mz5+v/fffX0VFRXr66adjntfdd99dH374oZYvX97wmEceeaQkae7cuQ3rj02dOlW9evXSLrvs\nIkn68ssvNXXqVO29994qKSlR9+7dNWHCBH3xxRcxz130GmYrVqzQscceq65du6q0tFTDhg3Tq6++\n2qi+devW6cwzz1Tv3r1VVFSkvn37aurUqaqvr9e8efM0YcIEScG1xsIdRd7HmjVrVsM56N27t6ZN\nm6bNmzdHPMawYcM0YMAAvf322xoyZIhKS0t12WWXNdwWPh/pvg7PPvusjjjiCHXr1k2dOnXS3nvv\n3XDcRPx+v6666irtscceKioq0u67767LLrss4vhjxoxRv379Yt7/8MMP1yGHHBKxLdl7L9l5iHbG\nGWdo1qxZktTwvgl3c4Xfv7fccotuu+22hufx8ccfq66uTpdffrkGDx6srl27qmPHjhoyZIiWL1/e\n6DGi1zC78sor5fP59Nlnn+n0009Xt27d1LVrV02ePFnV1dUR941ewyw81fvVV1/VBRdcoJ49e6pj\nx44aN26cvvvuu4j7Wmt15ZVXqnfv3iotLdWIESP08ccfsy4aAAAA0I6171YKOO3TTz+VJO24446S\npNWrV+vxxx/X+PHjtfvuu2v9+vWaM2eOhg0bpo8++kg77bRTxP2vuuoqFRYW6qKLLmroMPvwww/T\nOsZ1112nkpISXXrppfr00091xx13qKCgQD6fT5s2bdKMGTP0+uuva968eerbt6+mT5/ecN9rrrlG\nl19+uU4++WSdddZZ+uabb3T77bdr6NCheuedd9S5c2dNnz5dmzdv1tq1a3XrrbfKWquOHTtKCg7i\nx4wZo1dffVVTpkzR3nvvrffff1/l5eX65JNP9Nhjj0XU+vzzz2vRokWaNm2aunfvrj59+sQ8r7fd\ndpumTZumTp06afr06bLWqlevXpK2rz02depU9ezZU1dccYW2bt0qSXrzzTf1+uuva9KkSdp55531\n+eefa9asWRo+fLg++uijiGmz0R1gL7zwgkaNGqXBgwc3hCD33XefjjzySL3yyisaPHiwJOm///2v\nDj74YFVUVGjKlCnq37+/1q5dq8WLF6uqqkpDhgzReeedpzvuuEPTp0/X3nvvLUnaZ599JAUDlpkz\nZ+qYY47R1KlT9e9//1uzZs3Sv/71L/3zn/9sCHiMMfr22281atQonXzyyTr11FMbnYOwVF+Hjz76\nSGPGjNGBBx7Y8N779NNPY4aC0c4880zdf//9mjBhgi688EKtWLFC1113nVatWqVHH31UkjRx4kSd\ndtppeuuttzRo0KCG+3755ZdasWKFbr755oZtqbz3kp2HaOecc47WrVun5557Tg899FDMbrN7771X\nNTU1mjJligoLC7XDDjuooqJC9957ryZNmqSzzz5blZWVuueee3TsscfqjTfe0IABA+Kel/BrMWHC\nBPXt21fXX3+93n77bd19993q1auXrrvuukb7Rjv33HO1ww476Morr9Tnn3+u8vJyTZs2TQsWLGjY\n55JLLtGNN96oE044Qcccc4xWrlypkSNHqqamJm5tAAAAANo4a22qP0CLmDt3rvX5fPaFF16w3377\nrf3qq6/sww8/bLt3725LS0vtunXrrLXW1tbWNrrvF198YYuKiuzVV1/dsG358uXWGGP32GMPW1NT\nE7F/uscYMGCAra+vb9h+yimnWJ/PZ48//viIY/zwhz+0u+++e8Qx8/Pz7fXXXx+x34cffmgLCgrs\ndddd17Bt9OjREfcNe+CBB2x+fr599dVXI7bPmTPH+nw++9prrzVsM8bY/Px8u2rVqkbHiWX//fe3\nw4cPb7R97ty51hhjhw4dagOBQMRt1dXVjfZfsWKFNcbYBx98sGHb8uXLrc/nsy+++GLDtr322suO\nGjWq0fH69u1rR44c2bDt1FNPtfn5+fbtt9+OW/vixYsbHd9aa7/55htbWFhojzvuuIjtf/7zn63P\n57Nz585t2DZs2DDr8/nsXXfd1ej4w4YNizg3qb4Ot956q/X5fHbDhg1xa49l5cqV1hhjp0yZErH9\noosusj6fzy5fvtxaa21FRYUtKiqyF110UcR+N9xwg83Ly7P/+c9/rLXpvfcSnYdYpk2bZn0+X6Pt\nn3/+uTXG2K5du9rvvvsu4rZAIGDr6uoitm3evNnutNNO9pe//GXEdmOMnTFjRsPvV155pTXG2LPO\nOitiv3HjxtkePXpEbOvTp48944wzGn4Pv5e97y9rrb3gggtsQUGBraiosNZau379eltQUGB/+tOf\nRuw3Y8YMa4yJOCbQQtL5fzF++OGHH3744YcfflrphymZcIK1ViNGjFCPHj20yy676JRTTlHnzp21\nZMkSfe9735MUuUZRIBDQhg0bVFJSov79++vtt99udMzTTz+90ZpI6R7jtNNOi1hE/NBDD5WkRtO0\nDj30UP3nP/9RIBCQFFyY3lqr8ePH67vvvmv46dmzp/bcc08tW7Ys6TlZvHix9tlnH+21114Rxxg+\nfListY2OMWzYMPXv3z/pcZMxxuiss85q1LHjXQ+tvr5eGzZsUN++fdW1a9eY5y7s3Xff1SeffKJJ\nkyZFPI/KykqNGDGiYTqltVZLly7V2LFjddBBB6Vd93PPPae6ujqdf/75EdvPOussderUSU888USj\n53P66acnPW6qr0PXrl0lSX/9619lbeprff3jH/+QMUZlZWUR23/729/KWttQd6dOnXTcccdp0aJF\nEfstWrRIhx12mHbeeWdJ6b/3Uj0PqTjppJO0ww47RGwzxjSsC2et1caNG1VbW6vBgwcnfN947z9l\nypSIbUcccYS+++47bdmyJel9zz777Eb39fv9DVOJn3/+efn9fv3qV7+K2O/cc89NWhsAAACAtosp\nmXCCMUazZs3Snnvuqfz8fPXq1atR+GOt1a233qrZs2drzZo1DVfqM8aoe/fujY4Za0piuscIr98V\n1qVLl7jbA4GANm/erG7duunTTz9VIBDQHnvsEfO5prK4+SeffKJVq1apR48eMY/x9ddfR2yLNwWz\nKWIdq7q6Wtdee63mzp2rtWvXNoRCxphGa4R5ffLJJ5KkU089NebtPp9PmzdvVk1NjSoqKrTffvs1\nqeZwALLXXntFbC8oKFDfvn0brbXWu3fvlBb4T/V1mDhxou655x6dddZZuuSSSzRixAiNGzdOJ510\nUsKLFITX/4p+r/Tq1Utdu3aNqHvixIlaunSpXn/9dR122GFavXq13nrrLd1+++0N+6T73kv1PKQi\n3ntw3rx5uuWWW7Rq1aqItf686/Ulsuuuu0b83q1bN0nBdQ3DU5jjif6seu8rbX/fRJ+vbt26NewL\nAAAAoP0hMIMzDj744IarZMYSXpfpl7/8pa6++mrtsMMO8vl8+s1vftPQ2eUV60p/6R7D212WyvZw\niBQIBOTz+fTUU0/J52vcyJlskB8+xg9+8AOVl5fH7FiKDgLiXdmwKWIda9q0aZo3b57Kysp02GGH\nqUuXLjLGaOLEiTHPXVj4tptvvlkHHHBAzH06duzY6utFpXq+Un0dioqK9NJLL2nZsmV64okn9NRT\nT2nhwoUaMWKEnnnmmaRX9kzlyp9jxoxRcXFxQ1fZwoULlZeXp5NOOimi3nTeey39vnnwwQd1xhln\naNy4cfrd736nnj17Ki8vT9dee61Wr16d0nGTfd7SvW+4xRoAAAAA4iEwQ8549NFHdeSRR+rOO++M\n2L5p06aY3T8tdYxU9OvXT9Za9enTJ2anj1e8oKRfv3567733NHz48IzVlewxE3n00Ud1+umn64Yb\nbmjYVlNTo02bNiW8X/jKjp06dWp09UmvHj16qHPnzvrggw8SHi9e7bvttpsk6d///ndEp1NdXZ3W\nrFmjo48+OuFx40n3dRg+fLiGDx+um266Sdddd52mT5+uZcuWxX3uu+22mwKBgD755JOIrsqvv/5a\nmzZtanheklRSUqLRo0frkUce0c0336xFixbpiCOOiLhYRTrvvXQ19X3Tr18/LV68OGL75Zdfnqmy\n0uZ9HuHz++mnn0ac6w0bNjR0oQEAAABof1jDDDkjLy+vUVfII488orVr17bqMVIxbtw4+Xw+zZgx\nI+btGzZsaPh7aWlpzCmNEyZM0FdffaW77rqr0W3V1dWqqqpqcn2lpaVJg65oeXl5jTrJbr/99oZp\nrfEMGjRI/fr100033dRwxU2vb7/9VlIwxDjxxBP1t7/9LeHaVqWlpbLWNqr/qKOOUkFBQcT0REm6\n++67VVFRodGjRyesM55UX4dY4coBBxwga23C7rlRo0Y1TBX2uvnmm2WM0fHHHx+xfeLEiVq3bp3u\nvvturVy5UieffHLE7em899JVWloqSaqoqEj5PrE6vFasWKHXXnutyXVk0ogRI5SXl6fZs2dHbL/j\njjuyVBEAAAAAF9BhBiekMj1q9OjRuuqqqzR58mT98Ic/1Pvvv6+HHnqooYMpFZk4Riq19u3bV1df\nfbV+//vfa82aNTrxxBPVqVMnrV69WkuWLNGUKVN0wQUXSAoGSosWLdJvf/tbHXzwwerYsaNGjx6t\nX/ziF1q0aJF+9atfadmyZfrRj34kv9+vjz/+WI888oieeeaZhFNYExk0aJD+8pe/6JprrtEee+yh\nnj17NnRQxXt+o0eP1gMPPKDOnTtr33331Wuvvabnn38+5tpvXsYY3X333Ro1apT2228/nXHGGerd\nu7fWrl2rZcuWqUuXLlq6dKkk6dprr9Wzzz6rIUOG6Oyzz9Y+++yjdevWafHixfrnP/+pzp0768AD\nD1ReXp7++Mc/atOmTSosLNSIESPUvXt3XXrppZo5c6aOPfZYjR07VqtWrdLs2bN1yCGH6Gc/+1mT\nzlWqr8PMmTP10ksv6fjjj9duu+2m9evXa/bs2dp111314x//OO7xBwwYoNNOO0133nmnNm7cqKFD\nh2rFihW6//77NW7cOA0dOjRi/1GjRqljx4668MILlZ+fr3HjxkXcns57L12DBg2StVbnnnuuRo4c\nqby8PE2cODHhfUaPHq3HHntMJ554oo4//nitXr1ac+bM0X777Zd00f7mivde9m7v2bOnfvOb3+iW\nW27RCSecoGOPPVYrV67Uk08+qR49ejSpqw4AgFxjjDlN0n2SBltrk1+VB+2OMWaupKHW2t2bcN8r\nJV1uraVhBzmFwAxOSGVQ+vvf/15VVVWaP3++Fi1apEGDBukf//iHLrnkkkb3j3e8TBwj1QH0xRdf\nrP79+6u8vFwzZ86UFFzvKhzmhE2dOlUrV67U3Llzdeutt2q33XbT6NGjZYzR0qVLVV5ervvvv19L\nlixRSUmJ+vbtq7KysojF7Y0xaQ3sL7/8cn355Ze68cYbVVlZqaFDhzYEZvGOc/vttys/P1/z589X\ndXW1fvzjH+u5557TyJEjkz720KFD9dprr+mqq67Sn//8Z23ZskU77bSTDj300IgrIH7/+9/XihUr\n9Ic//EHz589XRUWFevfurVGjRqmkpERScDH8OXPm6LrrrtMvf/lL+f1+LVu2TEOGDNEVV1yhnj17\n6k9/+pMuuOAC7bDDDjrnnHN0zTXXNOp0SlSz97ZUX4cTTjhBX3zxhe677z59++236t69u4YNG6Yr\nr7xSnTp1Snh+7rnnHvXr109z587VkiVLtNNOO+myyy6LOW2xsLBQY8eO1fz583X00UfHDCxTfe8l\n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\nv38/586dIzU1NdyhVOr48eMcPHiQiy++GIBBgwaxevVqAN544w127drFb37zmwrnNcR3VmZmJikp\nKfW+joiIiIhIc+PM+UjiGmlpaQwbNixksgzgjjvuYPbs2U0cVe385S9/YezYseEOo0rbt29nyJAh\n/POf/wx3KFW67rrreP7558MdRpUKCgrYvHkzBQUF4Q6lUp999hlDhgxpsLWrGsvgwYN55513wh1G\nle677z5mzJgR7jCq9D//8z9ceeWVgVFwsbGxpKWlkZaWxiWXXIK1loEDB1bYrLVs2rQpsAbZ7t27\n2bRpEwcOHABg5syZTJo0KfA+zz33HO+//z67du1iy5Yt3H///axYsYJ77rmn6SstIiIiIuJwGmEm\n9dKmTRuSk5MpLi4OOe3y+PHjxMfHO3pK5smTJ4mLi3N8jACRkZGOjrO4uJiIiAhHx+if7rZs2TLS\n0tLCHU5I/nXL8vPzHd2WMTExnDp1ytExtmvXjoMHDzo6xvbt21NSUkJOTg4dO3ascCwnJyfkAzW+\n+uor0tPTMcZgjGH69OkATJo0iVdffZWsrKxA8gy805CnT5/OoUOHiI2NpX///ixfvpxhw4Y1fiVF\nRERERFzG1GIBceeuNC5h9ac//Yn77rsv5DFjDNHR0Zw5c6aJo6o5/5Q3J6/D1KpVK86dOxf4r1MZ\nY2jdurWj197q2LEjJ06cCPzXiSIjIykuLsbj8VT69EQn8Hg8REREOPp3Jzo6muLiYkevYeZfA9IY\nU+lDPc6ePUvr1q2bODJpIs58sofUmzFmIPB1Q6w3KCIiIrXSIP++UsJM6s1aGzKJU1xcTJs2bXjp\npZeYPHly0wdWQ7feeitHjx7lo48+Cncolfr73//OTTfdxIEDB0hKSgp3OJVKSEjg0Ucf5f777w93\nKJXauHEjQ4YMYd26dY4dYfb555+Tnp7Opk2buPDCC8MdTqV69+7NrbfeyhNPPBHuUCr161//mjff\nfJPt27eHO5RKbdmyhbS0ND777DMuv/zykGVatWrl2CemSr2pY5spJcxERETCpkH+faUpmVJvxpiQ\nC5MfP34cgOTkZMcuXA5w6tQpOnTo4OgY/U90bN++vaPjLC4uJjo62tExtmrVKvBfp8YZExMT+Nmp\nMYJ3ra2zZ886Osb4+HhOnjzp6Bj9i+7n5uY6Ok4RERERkZZEi/5Lo8nLyyMhIYFOnTqFO5QqtWrV\n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\naNAgyj/0pH///mVep6SkkJOTU+f6HTx4kPHjx3PLLbcwZcqUOl9HREREREREmpYSZiISNr169aJr\n166sWLGC48ePM3z4cMCbqOrWrRuff/554AmZfqdPn6ZLly6sXLmyQsIr1Kix2ij/FEtjDKWlpXW6\n1qFDhxg5ciRXXXUVL774Yr3iEhERERERkaalKZkiElb+dcwyMjIYMWJEYP+wYcNYunQp69evL7N+\n2cCBA8nKyiIiIoLU1NQyW6h1wuLi4khKSiqz5lhpaSkbNmyodayRkZGUlJRUW+7gwYOkp6dz2WWX\n8eqrr9b6fURERERERCS8lDATkbBKT09n9erVbNq0KTDCDLwJsxdffJHi4uIyCbPRo0czdOhQbrjh\nBj755BP27dvHF198wa9//etKk2C//OUveeqpp3j//ffZvn079913H7m5uRUW/a9Ojx49WL58OdnZ\n2WUeMBDs0KFDjBgxgvPPP5+5c+eSk5NDdnY22dnZtXovERERERERCR9NyRSRsEpPT6ewsJALL7yQ\nTp06BfYPHz6c06dP069fP5KSksqc8+GHHzJr1iymTJnCkSNHSE5OZtiwYRXK+T3yyCNkZ2czadIk\nIiIi+NnPfsbYsWNp1erfX4E1SZ794Q9/YPr06bz88st07dqV3bt3VyjzySefsHv3bnbv3k23bt0A\nsNZijKnR6DQREREREREJP1N+DaAq1LigiIiTWWu58MILueWWW3jiiSfCHY6ItGy1G+oqIiIiIk1C\nI8xEpNnbv38/H3/8McOHD6ewsJD58+ezd+9efvzjH4c7NBEREREREXEgrWEmIs2ex+Nh0aJFDB48\nmKuvvpotW7awfPly+vbtG+7QRERERERExIE0JVNEREQkfDQlU0RERMSBNMJMREREREREREQkiBJm\nIiIiIiIiIiIiQZQwExERERERERERCaKEmYiIiIiIiIiISBAlzERERERERERERIIoYSYiIiIiIiIi\nIhJECTMREREREREREZEgSpiJiIiIiIiIiIgEaVWLsqbRohAREREREREREXEIjTATEREREREREREJ\nooSZiIiIiIiIiIhIECXMREREREREREREgihhJiIiIiIiIiIiEkQJMxERERERERERkSBKmImIiIiI\niIiIiARRwkxERERERERERCSIEmYiIiIiIiIiIiJBlDATEREREREREREJ8v8DiMX3Cp/BVu4AAAAA\nSUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7ffa0d729090>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from ipywidgets import interact\n",
|
|
"%matplotlib inline\n",
|
|
"\n",
|
|
"def setup_figure():\n",
|
|
" # create figure and axes\n",
|
|
" fig = plt.figure(figsize=(12, 6))\n",
|
|
" ax1 = fig.add_axes([0., 0., 0.5, 1.], projection='3d')\n",
|
|
" ax2 = fig.add_axes([0.6, 0.1, 0.4, 0.8])\n",
|
|
" # set axes properties\n",
|
|
" ax2.spines['right'].set_visible(False)\n",
|
|
" ax2.spines['top'].set_visible(False)\n",
|
|
" ax2.yaxis.set_ticks_position('left')\n",
|
|
" ax2.xaxis.set_ticks_position('bottom')\n",
|
|
" ax2.set_yscale('log')\n",
|
|
" ax1.set_xlim((-2, 2))\n",
|
|
" ax1.set_ylim((-2, 2))\n",
|
|
" ax1.set_zlim((-2, 2))\n",
|
|
" #set axes labels and title\n",
|
|
" ax1.set_title('Parameter trajectories over training')\n",
|
|
" ax1.set_xlabel('Weight 1')\n",
|
|
" ax1.set_ylabel('Weight 2')\n",
|
|
" ax1.set_zlabel('Bias')\n",
|
|
" ax2.set_title('Batch errors over training')\n",
|
|
" ax2.set_xlabel('Batch update number')\n",
|
|
" ax2.set_ylabel('Batch error')\n",
|
|
" return fig, ax1, ax2\n",
|
|
"\n",
|
|
"def visualise_training(n_epochs=1, batch_size=200, log_lr=-1., n_inits=5,\n",
|
|
" w_scale=1., b_scale=1., elev=30., azim=0.):\n",
|
|
" fig, ax1, ax2 = setup_figure()\n",
|
|
" # create seeded random number generator\n",
|
|
" rng = np.random.RandomState(1234)\n",
|
|
" # create data provider\n",
|
|
" data_provider = CCPPDataProvider(\n",
|
|
" input_dims=[0, 1],\n",
|
|
" batch_size=batch_size, \n",
|
|
" shuffle_order=False,\n",
|
|
" )\n",
|
|
" learning_rate = 10 ** log_lr\n",
|
|
" n_batches = data_provider.num_batches\n",
|
|
" weights_traj = np.empty((n_inits, n_epochs * n_batches + 1, 1, 2))\n",
|
|
" biases_traj = np.empty((n_inits, n_epochs * n_batches + 1, 1))\n",
|
|
" errors_traj = np.empty((n_inits, n_epochs * n_batches))\n",
|
|
" # randomly initialise parameters\n",
|
|
" weights = rng.uniform(-w_scale, w_scale, (n_inits, 1, 2))\n",
|
|
" biases = rng.uniform(-b_scale, b_scale, (n_inits, 1))\n",
|
|
" # store initial parameters\n",
|
|
" weights_traj[:, 0] = weights\n",
|
|
" biases_traj[:, 0] = biases\n",
|
|
" # iterate across different initialisations\n",
|
|
" for i in range(n_inits):\n",
|
|
" # iterate across epochs\n",
|
|
" for e in range(n_epochs):\n",
|
|
" # iterate across batches\n",
|
|
" for b, (inputs, targets) in enumerate(data_provider):\n",
|
|
" outputs = fprop(inputs, weights[i], biases[i])\n",
|
|
" errors_traj[i, e * n_batches + b] = error(outputs, targets)\n",
|
|
" grad_wrt_outputs = error_grad(outputs, targets)\n",
|
|
" weights_grad, biases_grad = grads_wrt_params(inputs, grad_wrt_outputs)\n",
|
|
" weights[i] -= learning_rate * weights_grad\n",
|
|
" biases[i] -= learning_rate * biases_grad\n",
|
|
" weights_traj[i, e * n_batches + b + 1] = weights[i]\n",
|
|
" biases_traj[i, e * n_batches + b + 1] = biases[i]\n",
|
|
" # choose a different color for each trajectory\n",
|
|
" colors = plt.cm.jet(np.linspace(0, 1, n_inits))\n",
|
|
" # plot all trajectories\n",
|
|
" for i in range(n_inits):\n",
|
|
" lines_1 = ax1.plot(\n",
|
|
" weights_traj[i, :, 0, 0], \n",
|
|
" weights_traj[i, :, 0, 1], \n",
|
|
" biases_traj[i, :, 0], \n",
|
|
" '-', c=colors[i], lw=2)\n",
|
|
" lines_2 = ax2.plot(\n",
|
|
" np.arange(n_batches * n_epochs),\n",
|
|
" errors_traj[i],\n",
|
|
" c=colors[i]\n",
|
|
" )\n",
|
|
" ax1.view_init(elev, azim)\n",
|
|
" plt.show()\n",
|
|
"\n",
|
|
"w = interact(\n",
|
|
" visualise_training,\n",
|
|
" elev=(-90, 90, 2),\n",
|
|
" azim=(-180, 180, 2), \n",
|
|
" n_epochs=(1, 5), \n",
|
|
" batch_size=(100, 1000, 100),\n",
|
|
" log_lr=(-3., 1.),\n",
|
|
" w_scale=(0., 2.),\n",
|
|
" b_scale=(0., 2.),\n",
|
|
" n_inits=(1, 10)\n",
|
|
")\n",
|
|
"\n",
|
|
"for child in w.widget.children:\n",
|
|
" child.layout.width = '100%'"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"anaconda-cloud": {},
|
|
"kernelspec": {
|
|
"display_name": "Python [conda env:mlp]",
|
|
"language": "python",
|
|
"name": "conda-env-mlp-py"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 2
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython2",
|
|
"version": "2.7.12"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|