updated jupyter notebooks for 1dot18dot0 release
diff --git a/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb
new file mode 100755
index 0000000..1e5c0f1
--- /dev/null
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb
@@ -0,0 +1,536 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Define custom functions\n",
+    "This function loads custom Python functions into a table for use by deep learning algorithms.\n",
+    "\n",
+    "Custom functions can be useful if, for example, you need loss functions or metrics that are not built into the standard libraries. The functions to be loaded must be in the form of serialized Python objects created using Dill, which extends Python's pickle module to the majority of the built-in Python types.\n",
+    "\n",
+    "Custom functions are also used to return top k categorical accuracy rate in the case that you want a different k value than the default from Keras. This module includes a helper function to create the custom function automatically for a specified k.\n",
+    "\n",
+    "This method was added in MADlib 1.18.0.\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#load_psycopg2\">1. Load object using psycopg2</a>\n",
+    "\n",
+    "<a href=\"#load_plpython\">2. Load object using a PL/Python function</a>\n",
+    "\n",
+    "<a href=\"#delete_object\">3. Delete object</a>\n",
+    "\n",
+    "<a href=\"#top_k\">4. Top k accuracy function</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
+     ]
+    }
+   ],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-84-g0256b81, cmake configuration time: Thu Mar  4 00:16:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-84-g0256b81, cmake configuration time: Thu Mar  4 00:16:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_psycopg2\"></a>\n",
+    "# 1. Load object using psycopg2\n",
+    "Psycopg is a PostgreSQL database adapter for the Python programming language. Note need to use the psycopg2.Binary() method to pass as bytes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import database connector psycopg2 and create connection cursor\n",
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "# import Dill and define functions\n",
+    "import dill\n",
+    "\n",
+    "# custom loss\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "\n",
+    "# custom metric\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "\n",
+    "# call load function\n",
+    "cur.execute(\"DROP TABLE IF EXISTS madlib.custom_function_table\")\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'squared_error', 'squared error')\", [p2.Binary(pb_squared_error)])\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'rmse', 'root mean square error')\", [p2.Binary(pb_rmse)])\n",
+    "conn.commit()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_plpython\"></a>\n",
+    "# 2. Load object using a PL/Python function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "CREATE OR REPLACE FUNCTION custom_function_squared_error()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "return pb_squared_error\n",
+    "$$ language plpythonu;\n",
+    "CREATE OR REPLACE FUNCTION custom_function_rmse()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "return pb_rmse\n",
+    "$$ language plpythonu;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>load_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_squared_error(), \n",
+    "                                   'squared_error', \n",
+    "                                   'squared error');\n",
+    "\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_rmse(), \n",
+    "                                   'rmse', \n",
+    "                                   'root mean square error');"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"delete_object\"></a>\n",
+    "# 3. Delete object\n",
+    "Delete by id:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 1);\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Delete by name:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>delete_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 'rmse');"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Since this was the last object in the table, if you delete it then the table will also be dropped."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"top_k\"></a>\n",
+    "# 4. Top k accuracy function\n",
+    "Load top 3 accuracy function followed by a top 10 accuracy function:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>top_3_accuracy</td>\n",
+       "        <td>returns top_3_accuracy</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>top_10_accuracy</td>\n",
+       "        <td>returns top_10_accuracy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'top_3_accuracy', u'returns top_3_accuracy'),\n",
+       " (2, u'top_10_accuracy', u'returns top_10_accuracy')]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           3);\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           10);\n",
+    "\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-model-configurations-v2-checkpoint.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-model-configurations-v2-checkpoint.ipynb
new file mode 100755
index 0000000..fbe5ee5
--- /dev/null
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/Define-model-configurations-v2-checkpoint.ipynb
@@ -0,0 +1,2025 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Define model configurations\n",
+    "This module generates model configurations using grid search or random search.\n",
+    "\n",
+    "Once the configurations are defined, they can be used by the fit function in Train Model Configurations. By model configurations we mean both hyperparameters and model architectures. The output table from this module defines the combinations of model architectures, compile and fit parameters to be trained in parallel.\n",
+    "\n",
+    "This utility was added in MADlib 1.17.0.  Improvements were made in MADlib 1.18.0 including support for custom loss functions and custom metrics.\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#define_model_arch\">1. Define model architecture table</a>\n",
+    "\n",
+    "<a href=\"#load_model_arch\">2. Load model architecture</a>\n",
+    "\n",
+    "<a href=\"#generate_configs\">3. Generate model configurations</a>\n",
+    "\n",
+    "  - <a href=\"#grid_search\">3a. Grid search</a>\n",
+    "  \n",
+    "  - <a href=\"#random_search\">3b. Random search</a>\n",
+    "  \n",
+    "  - <a href=\"#incremental_load\">3c. Incremental loading</a>\n",
+    "  \n",
+    "<a href=\"#load_model_selection_manual\">4. Create model selection table manually</a>\n",
+    "\n",
+    "<a href=\"#custom\">5. Custom loss functions and custom metrics NOT COMPLETE</a>\n",
+    "\n",
+    "<a href=\"#load_model_selection\">6. Load model selection table [deprecated]</a>\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
+     ]
+    }
+   ],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP (PM demo machine) - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"define_model_arch\"></a>\n",
+    "# 1. Define model architecture table\n",
+    "The model selection loader works in conjunction with the model architecture table, so we first create a model architecture table with two different models.  See http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html for more details on the model architecture table.\n",
+    "\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 41,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_4\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_14 (Dense)             (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_15 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_16 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_14\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_15\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_16\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_4\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 42,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 2, \"batch_input_shape\": [null, 3], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"new_dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'\n",
+    "        "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_5\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_17 (Dense)             (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_18 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_19 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_20 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 44,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_17\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_18\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_19\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_20\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_5\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 44,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_arch\"></a>\n",
+    "# 2. Load model architecture\n",
+    "\n",
+    "Load both into model architecture table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 45,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_61202069_1614901986_7314581__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_12006647_1614901987_43673839__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_61202069_1614901986_7314581__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_12006647_1614901987_43673839__')]"
+      ]
+     },
+     "execution_count": 45,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"generate_configs\"></a>\n",
+    "# 3. Generate model configurations\n",
+    "\n",
+    "<a id=\"grid_search\"></a>\n",
+    "## 3a. Grid search\n",
+    "\n",
+    "The output table for grid search contains the unique combinations of model architectures, compile and fit parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 46,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 46,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Note that above uses the same learning rate for the two optimizers.  If you wanted to use different learning rates and different parameters for different optimizers (common):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 47,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 2, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 2, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 1, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 1, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 1, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 1, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (17, 2, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (19, 2, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 2, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 47,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [\n",
+    "                                                 {'optimizer': ['SGD']}, \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001], 'momentum': [0.95]}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1], 'decay': [1e-4]}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"random_search\"></a>\n",
+    "## 3b. Random search\n",
+    "\n",
+    "The output table for random search contains the specified number of model architectures, compile and fit parameters, sampled from the specified distributions."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 48,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.0347167931002948,decay=4.746966178774611e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01062006045632861,decay=1.1876016717166215e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0006995070125407458,momentum=0.9844790514730665)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.07439975848075757,decay=1.7976337634506005e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.09030450672567254,decay=1.340890767690431e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01357387578284614,decay=2.3014993523846666e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.00010336714004241796,momentum=0.9711372680116186)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.00011116485234161093,momentum=0.9664752194346332)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0003071392825766392,momentum=0.9697893478568044)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.03540256307419597,decay=2.7490870549984347e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00026429087119428287,momentum=0.9702132562449013)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.04882317737663686,decay=8.006807036282709e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005040379351745158,momentum=0.9863934944304705)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00037668508410008814,momentum=0.978821521218891)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.016426175651771575,decay=1.6439282808391488e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00046988338854109496,momentum=0.988290883937812)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005402557401986037,momentum=0.9795021324622476)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.012596752275640428,decay=1.2801865417619381e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01055415187064375,decay=7.646989120220466e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00014021314734214438,momentum=0.9663397507032889)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 2, u\"optimizer='Adam(lr=0.0347167931002948,decay=4.746966178774611e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.01062006045632861,decay=1.1876016717166215e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.0006995070125407458,momentum=0.9844790514730665)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.07439975848075757,decay=1.7976337634506005e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (5, 2, u\"optimizer='Adam(lr=0.09030450672567254,decay=1.340890767690431e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01357387578284614,decay=2.3014993523846666e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (7, 2, u\"optimizer='SGD(lr=0.00010336714004241796,momentum=0.9711372680116186)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 2, u\"optimizer='SGD(lr=0.00011116485234161093,momentum=0.9664752194346332)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='SGD(lr=0.0003071392825766392,momentum=0.9697893478568044)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 1, u\"optimizer='Adam(lr=0.03540256307419597,decay=2.7490870549984347e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (11, 1, u\"optimizer='SGD(lr=0.00026429087119428287,momentum=0.9702132562449013)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 1, u\"optimizer='Adam(lr=0.04882317737663686,decay=8.006807036282709e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (13, 2, u\"optimizer='SGD(lr=0.0005040379351745158,momentum=0.9863934944304705)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (14, 1, u\"optimizer='SGD(lr=0.00037668508410008814,momentum=0.978821521218891)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (15, 1, u\"optimizer='Adam(lr=0.016426175651771575,decay=1.6439282808391488e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (16, 1, u\"optimizer='SGD(lr=0.00046988338854109496,momentum=0.988290883937812)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (17, 1, u\"optimizer='SGD(lr=0.0005402557401986037,momentum=0.9795021324622476)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.012596752275640428,decay=1.2801865417619381e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (19, 2, u\"optimizer='Adam(lr=0.01055415187064375,decay=7.646989120220466e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 1, u\"optimizer='SGD(lr=0.00014021314734214438,momentum=0.9663397507032889)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64')]"
+      ]
+     },
+     "execution_count": 48,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001, 'log'], 'momentum': [0.95, 0.99, 'log_near_one']}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1, 'log'], 'decay': [1e-6, 1e-4, 'log']}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'random',            -- search_type\n",
+    "                                         20                   -- num_configs\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"incremental_load\"></a>\n",
+    "# 3c.  Incremental loading for more complex combinations\n",
+    "\n",
+    "If it is easier to generate the model configurations incrementally rather than all at once, you can do that by not dropping the model selection table and associated summary table, in which case the new model configurations will be appended to the existing table.  Here we combine 2 of the previous examples in to a single output table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 49,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 49,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now add to the existing table and note that mst_key continues where it left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 50,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "36 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00020031615564004395,momentum=0.9724038009180801)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.07529364006470769,decay=1.463102386655202e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.017537612203171578,decay=9.268965340542783e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.02436723652830891,decay=2.7036693659868636e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0009162225178908051,momentum=0.9636373679078051)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00020973934011486018,momentum=0.9810505351311615)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00011669504881554843,momentum=0.9563917160422619)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.019887949889421844,decay=1.3512689688436213e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.06844958467546351,decay=1.0949453143707621e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0279719469411538,decay=3.116565475127251e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005340915863494089,momentum=0.9846555995292319)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00037236518835129966,momentum=0.9750593509631483)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001703149580002491,momentum=0.9516827304557754)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0003205092574897573,momentum=0.9745610627224451)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.000638802198775629,momentum=0.9896674744988915)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0007145264848827797,momentum=0.9859303213231139)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.053811310244363884,decay=5.1052295876998844e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0617217468673046,decay=2.0871014466512653e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.013012045649000626,decay=5.7173240691732966e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.000575290475361327,momentum=0.9883738353302843)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (17, 1, u\"optimizer='SGD(lr=0.00020031615564004395,momentum=0.9724038009180801)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.07529364006470769,decay=1.463102386655202e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (19, 1, u\"optimizer='Adam(lr=0.017537612203171578,decay=9.268965340542783e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 1, u\"optimizer='Adam(lr=0.02436723652830891,decay=2.7036693659868636e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (21, 2, u\"optimizer='SGD(lr=0.0009162225178908051,momentum=0.9636373679078051)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (22, 1, u\"optimizer='SGD(lr=0.00020973934011486018,momentum=0.9810505351311615)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (23, 1, u\"optimizer='SGD(lr=0.00011669504881554843,momentum=0.9563917160422619)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (24, 1, u\"optimizer='Adam(lr=0.019887949889421844,decay=1.3512689688436213e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (25, 2, u\"optimizer='Adam(lr=0.06844958467546351,decay=1.0949453143707621e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (26, 1, u\"optimizer='Adam(lr=0.0279719469411538,decay=3.116565475127251e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (27, 1, u\"optimizer='SGD(lr=0.0005340915863494089,momentum=0.9846555995292319)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (28, 1, u\"optimizer='SGD(lr=0.00037236518835129966,momentum=0.9750593509631483)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (29, 1, u\"optimizer='SGD(lr=0.0001703149580002491,momentum=0.9516827304557754)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (30, 2, u\"optimizer='SGD(lr=0.0003205092574897573,momentum=0.9745610627224451)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (31, 2, u\"optimizer='SGD(lr=0.000638802198775629,momentum=0.9896674744988915)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (32, 2, u\"optimizer='SGD(lr=0.0007145264848827797,momentum=0.9859303213231139)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (33, 2, u\"optimizer='Adam(lr=0.053811310244363884,decay=5.1052295876998844e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (34, 1, u\"optimizer='Adam(lr=0.0617217468673046,decay=2.0871014466512653e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (35, 1, u\"optimizer='Adam(lr=0.013012045649000626,decay=5.7173240691732966e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (36, 1, u\"optimizer='SGD(lr=0.000575290475361327,momentum=0.9883738353302843)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64')]"
+      ]
+     },
+     "execution_count": 50,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001, 'log'], 'momentum': [0.95, 0.99, 'log_near_one']}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1, 'log'], 'decay': [1e-6, 1e-4, 'log']}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'random',            -- search_type\n",
+    "                                         20                   -- num_configs\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_selection_manual\"></a>\n",
+    "# 4.  Create model selection table manually\n",
+    "\n",
+    "If you want more control over the content of the model selection table, you could use grid or random search to generate a large number of combinations, then SELECT a subset of rows for training.\n",
+    "\n",
+    "Alternatively, you could manually create the model selection table and the associated summary table.  Both must be created since they are needed by the multiple model fit module.\n",
+    "\n",
+    "For example, let's say we don't want all combinations but only want batch_size=4 for model_id=1 and batch_size=8 for model_id=2:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 51,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "6 rows affected.\n",
+      "6 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_arch_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (3, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (4, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (5, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (6, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
+      ]
+     },
+     "execution_count": 51,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table_manual;\n",
+    "\n",
+    "CREATE TABLE mst_table_manual(\n",
+    "    mst_key serial,\n",
+    "    model_arch_id integer,\n",
+    "    compile_params varchar,\n",
+    "    fit_params varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO mst_table_manual(model_arch_id, compile_params, fit_params) VALUES\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=8,epochs=1');\n",
+    "\n",
+    "SELECT * FROM mst_table_manual ORDER BY mst_key; "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create the summary table which must be named with the model selection output table appended by \"_summary\":"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 52,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_arch_table</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>model_arch_library</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'model_arch_library',)]"
+      ]
+     },
+     "execution_count": 52,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table_manual_summary;\n",
+    "\n",
+    "CREATE TABLE mst_table_manual_summary (\n",
+    "    model_arch_table varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO mst_table_manual_summary(model_arch_table) VALUES\n",
+    "('model_arch_library');\n",
+    "\n",
+    "SELECT * FROM mst_table_manual_summary; "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"custom\"></a>\n",
+    "# 5. Custom loss functions and custom metrics\n",
+    "\n",
+    "Define custom functions using the utility \"Define Custom Functions\". Psycopg is a PostgreSQL database adapter for the Python programming language. Note need to use the psycopg2.Binary() method to pass as bytes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 53,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import database connector psycopg2 and create connection cursor\n",
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "# import Dill and define functions\n",
+    "import dill\n",
+    "\n",
+    "# custom loss\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "\n",
+    "# custom metric\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "\n",
+    "# call load function\n",
+    "cur.execute(\"DROP TABLE IF EXISTS madlib.custom_function_table\")\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'squared_error', 'squared error')\", [p2.Binary(pb_squared_error)])\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'rmse', 'root mean square error')\", [p2.Binary(pb_rmse)])\n",
+    "conn.commit()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 54,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 54,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['squared_error'],\n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ],\n",
+    "                                             'metrics': ['rmse']}\n",
+    "                                         $$,                  -- compile_param_grid\n",
+    "                                         $$\n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10]\n",
+    "                                         }\n",
+    "                                         $$,                  -- fit_param_grid\n",
+    "                                         'grid',              -- search_type\n",
+    "                                         NULL,                -- num_configs\n",
+    "                                         NULL,                -- random_state\n",
+    "                                         'custom_function_table'  -- table with custom functions\n",
+    "                                         );\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_selection\"></a>\n",
+    "# 6.  Load model selection table [deprecated]\n",
+    "\n",
+    "#### This method is deprecated and replaced by generate_model_configs() method described above.\n",
+    "\n",
+    "Select the model(s) from the model architecture table that you want to run, along with the compile and fit parameters.  Unique combinations will be created for the set of model selection parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 55,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
+      ]
+     },
+     "execution_count": 55,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.load_model_selection_table('model_arch_library', -- model architecture table\n",
+    "                                         'mst_table',          -- model selection table output\n",
+    "                                          ARRAY[1,2],              -- model ids from model architecture table\n",
+    "                                          ARRAY[                   -- compile params\n",
+    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$,\n",
+    "                                              $$loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']$$,\n",
+    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$\n",
+    "                                          ],\n",
+    "                                          ARRAY[                    -- fit params\n",
+    "                                              $$batch_size=4,epochs=1$$,\n",
+    "                                              $$batch_size=8,epochs=1$$\n",
+    "                                          ]\n",
+    "                                         );\n",
+    "                                  \n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/Load-model-architecture-v2-checkpoint.ipynb
similarity index 68%
rename from community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
rename to community-artifacts/Deep-learning/.ipynb_checkpoints/Load-model-architecture-v2-checkpoint.ipynb
index 8aa3716..b823f09 100644
--- a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/Load-model-architecture-v2-checkpoint.ipynb
@@ -4,10 +4,16 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# Load model architecture\n",
-    "This utility function loads model architectures and weights into a table for use by deep learning algorithms in Keras.  \n",
+    "# Define model architecture\n",
+    "This function loads model architectures and weights into a table for use by deep learning algorithms.\n",
     "\n",
-    "The model architecture loader was added in MADlib 1.16.\n",
+    "Model architecture is in JSON form and model weights are in the form of PostgreSQL binary data types (bytea). If the output table already exists, a new row is inserted into the table so it can act as a repository for multiple model architectures and weights.\n",
+    "\n",
+    "There is also a function to delete a model from the table.\n",
+    "\n",
+    "MADlib's deep learning methods are designed to use the TensorFlow package and its built in Keras functions. To ensure consistency, please use tensorflow.keras objects (models, layers, etc.) instead of importing Keras and using its objects.\n",
+    "\n",
+    "The model architecture loader was added in MADlib 1.16 and updated after that.\n",
     "\n",
     "## Table of contents\n",
     "\n",
@@ -25,17 +31,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 34,
    "metadata": {},
    "outputs": [
     {
-     "name": "stderr",
+     "name": "stdout",
      "output_type": "stream",
      "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
      ]
     }
    ],
@@ -45,24 +49,10 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 35,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -72,7 +62,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 36,
    "metadata": {},
    "outputs": [
     {
@@ -90,15 +80,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 36,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -120,28 +110,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 37,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
    ]
   },
   {
@@ -153,21 +128,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 38,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
+      "Model: \"sequential_3\"\n",
       "_________________________________________________________________\n",
       "Layer (type)                 Output Shape              Param #   \n",
       "=================================================================\n",
-      "dense_1 (Dense)              (None, 10)                50        \n",
+      "dense_9 (Dense)              (None, 10)                50        \n",
       "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                110       \n",
+      "dense_10 (Dense)             (None, 10)                110       \n",
       "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 3)                 33        \n",
+      "dense_11 (Dense)             (None, 3)                 33        \n",
       "=================================================================\n",
       "Total params: 193\n",
       "Trainable params: 193\n",
@@ -182,21 +158,21 @@
     "model.add(Dense(10, activation='relu'))\n",
     "model.add(Dense(3, activation='softmax'))\n",
     "    \n",
-    "model.summary()"
+    "model.summary();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 39,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_9\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_10\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_11\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_3\"}, \"backend\": \"tensorflow\"}'"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 39,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -225,7 +201,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 40,
    "metadata": {},
    "outputs": [
     {
@@ -255,15 +231,15 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 40,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -294,7 +270,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 41,
    "metadata": {},
    "outputs": [
     {
@@ -323,7 +299,7 @@
        "        <td>None</td>\n",
        "        <td>Maria</td>\n",
        "        <td>Also a simple model</td>\n",
-       "        <td>__madlib_temp_36064316_1576692433_8110861__</td>\n",
+       "        <td>__madlib_temp_87665369_1614901189_11144097__</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
@@ -331,16 +307,16 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_36064316_1576692433_8110861__'),\n",
-       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_87665369_1614901189_11144097__'),\n",
+       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 41,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -376,7 +352,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 42,
    "metadata": {},
    "outputs": [
     {
@@ -384,7 +360,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "1 rows affected.\n"
+      "2 rows affected.\n"
      ]
     },
     {
@@ -392,18 +368,31 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1L,)]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 42,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -416,7 +405,7 @@
     "WHERE model_arch_library.model_id = 2;\n",
     "\n",
     "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -430,7 +419,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 43,
    "metadata": {},
    "outputs": [
     {
@@ -438,7 +427,6 @@
      "output_type": "stream",
      "text": [
       "Done.\n",
-      "1 rows affected.\n",
       "1 rows affected.\n"
      ]
     },
@@ -447,18 +435,18 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>load_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>2</td>\n",
+       "        <td></td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2L,)]"
+       "[('',)]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 43,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -467,8 +455,8 @@
     "%%sql\n",
     "CREATE OR REPLACE FUNCTION load_weights() RETURNS VOID AS\n",
     "$$\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "import plpy\n",
     "\n",
@@ -493,15 +481,12 @@
     "$$ language plpythonu;\n",
     "\n",
     "-- Call load function\n",
-    "SELECT load_weights();\n",
-    "\n",
-    "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT load_weights();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 44,
    "metadata": {},
    "outputs": [
     {
@@ -518,33 +503,43 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 44,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -560,45 +555,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 45,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(2L,)]"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import psycopg2 as p2\n",
-    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
-    "conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
     "cur = conn.cursor()\n",
     "\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "\n",
     "# create model\n",
@@ -615,22 +581,19 @@
     "\n",
     "query = \"SELECT madlib.load_keras_model('model_arch_library', %s,%s,%s,%s)\"\n",
     "cur.execute(query,[model.to_json(), weights_bytea, \"Grace\", \"Model y\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check weights loaded OK\n",
-    "%sql SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "conn.commit()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 46,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "3 rows affected.\n"
+      "4 rows affected.\n"
      ]
     },
     {
@@ -640,33 +603,50 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 16,
+     "execution_count": 46,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -679,7 +659,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 47,
    "metadata": {},
    "outputs": [
     {
@@ -687,7 +667,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "2 rows affected.\n"
+      "3 rows affected.\n"
      ]
     },
     {
@@ -697,22 +677,36 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, u'Maria'), (3, u'Ella')]"
+       "[(2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 47,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -722,7 +716,7 @@
     "SELECT madlib.delete_keras_model('model_arch_library',   -- Output table\n",
     "                                  1                      -- Model id\n",
     "                                );\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   }
  ],
@@ -742,7 +736,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb
new file mode 100644
index 0000000..cf99035
--- /dev/null
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb
@@ -0,0 +1,5034 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples with images please refer to the deep learning notebooks at\n",
+    "https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#train\">4. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">5. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">6. Predict</a>\n",
+    "\n",
+    "* <a href=\"#pred_byom\">7. Predict BYOM</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>\n",
+    "\n",
+    "<a href=\"#transfer_learn\">Transfer learning</a>\n",
+    "\n",
+    "* <a href=\"#load2\">1. Define and load model architecture with some layers frozen</a>\n",
+    "\n",
+    "* <a href=\"#train2\">2. Train transfer model</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 60,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
+     ]
+    }
+   ],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 61,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
+    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
+    "\n",
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 62,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 62,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 63,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 63,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 64,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 64,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 65,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 65,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',         -- Dependent variable\n",
+    "                                       'attributes'          -- Independent variable\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 66,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 66,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 67,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 68,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_3\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_9 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_10 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_11 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_simple = Sequential()\n",
+    "model_simple.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model_simple.add(Dense(10, activation='relu'))\n",
+    "model_simple.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_simple.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 69,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_9\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_10\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_11\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_3\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 69,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_simple.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 70,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model')]"
+      ]
+     },
+     "execution_count": 70,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'A simple model'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 4.  Train\n",
+    "Train the model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 71,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 71,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10                    -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 72,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-05 00:32:32.677148</td>\n",
+       "        <td>2021-03-05 00:32:33.888866</td>\n",
+       "        <td>[1.21162915229797]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.609960496426</td>\n",
+       "        <td>[0.891666650772095]</td>\n",
+       "        <td>[0.609960496425629]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>[10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, None, None, 10, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 5, 0, 32, 32, 677148), datetime.datetime(2021, 3, 5, 0, 32, 33, 888866), [1.21162915229797], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.609960496425629, [0.891666650772095], [0.609960496425629], None, None, None, None, [10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 72,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 5. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 73,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.565514206886</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.565514206886292, 0.899999976158142, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 73,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_model',       -- model\n",
+    "                                   'iris_test_packed',  -- test table\n",
+    "                                   'iris_validate'      -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 6. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 74,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4811115</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3254119</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.1934767</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4824369</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.31281063</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.20475245</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.46726868</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.33416426</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.19856708</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.48340678</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.30329248</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.21330076</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4921991</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.30441415</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.20338683</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49637538</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.40710366</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09652098</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47494373</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.44864976</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.076406464</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.51390177</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.38778767</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09831052</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6093597</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2456077</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14503266</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.55952024</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3228162</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.11766361</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5187173</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.40794137</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.07334134</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6168418</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.23869106</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14446718</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.57109237</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3401038</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.088803805</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.53077435</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.32625726</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14296837</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.53015316</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.32889763</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14094917</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5004781</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3183768</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.18114516</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49173826</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.39376155</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.11450017</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.63378763</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.33676574</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.029446673</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.52301323</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4507337</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026253074</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8007931</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.17807306</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.021133851</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8288441</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.15422747</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.016928488</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.60298413</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3622377</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.034778137</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.79363465</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.18244599</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.023919372</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6008913</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.38202757</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.01708112</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.51136595</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.455122</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.033512004</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5061915</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4644996</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.029308934</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8607982</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.12758763</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.011614183</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7419237</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23144698</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026629237</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.81490934</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.16574617</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.019344518</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6649737</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.29889813</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.03612826</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(6, u'class_text', u'Iris-setosa', 0.4811115, 1),\n",
+       " (6, u'class_text', u'Iris-versicolor', 0.3254119, 2),\n",
+       " (6, u'class_text', u'Iris-virginica', 0.1934767, 3),\n",
+       " (9, u'class_text', u'Iris-setosa', 0.4824369, 1),\n",
+       " (9, u'class_text', u'Iris-versicolor', 0.31281063, 2),\n",
+       " (9, u'class_text', u'Iris-virginica', 0.20475245, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.46726868, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 0.33416426, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 0.19856708, 3),\n",
+       " (32, u'class_text', u'Iris-setosa', 0.48340678, 1),\n",
+       " (32, u'class_text', u'Iris-versicolor', 0.30329248, 2),\n",
+       " (32, u'class_text', u'Iris-virginica', 0.21330076, 3),\n",
+       " (41, u'class_text', u'Iris-setosa', 0.4921991, 1),\n",
+       " (41, u'class_text', u'Iris-versicolor', 0.30441415, 2),\n",
+       " (41, u'class_text', u'Iris-virginica', 0.20338683, 3),\n",
+       " (52, u'class_text', u'Iris-versicolor', 0.49637538, 1),\n",
+       " (52, u'class_text', u'Iris-virginica', 0.40710366, 2),\n",
+       " (52, u'class_text', u'Iris-setosa', 0.09652098, 3),\n",
+       " (57, u'class_text', u'Iris-virginica', 0.47494373, 1),\n",
+       " (57, u'class_text', u'Iris-versicolor', 0.44864976, 2),\n",
+       " (57, u'class_text', u'Iris-setosa', 0.076406464, 3),\n",
+       " (60, u'class_text', u'Iris-virginica', 0.51390177, 1),\n",
+       " (60, u'class_text', u'Iris-versicolor', 0.38778767, 2),\n",
+       " (60, u'class_text', u'Iris-setosa', 0.09831052, 3),\n",
+       " (63, u'class_text', u'Iris-versicolor', 0.6093597, 1),\n",
+       " (63, u'class_text', u'Iris-virginica', 0.2456077, 2),\n",
+       " (63, u'class_text', u'Iris-setosa', 0.14503266, 3),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.55952024, 1),\n",
+       " (66, u'class_text', u'Iris-virginica', 0.3228162, 2),\n",
+       " (66, u'class_text', u'Iris-setosa', 0.11766361, 3),\n",
+       " (67, u'class_text', u'Iris-virginica', 0.5187173, 1),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.40794137, 2),\n",
+       " (67, u'class_text', u'Iris-setosa', 0.07334134, 3),\n",
+       " (68, u'class_text', u'Iris-versicolor', 0.6168418, 1),\n",
+       " (68, u'class_text', u'Iris-virginica', 0.23869106, 2),\n",
+       " (68, u'class_text', u'Iris-setosa', 0.14446718, 3),\n",
+       " (77, u'class_text', u'Iris-versicolor', 0.57109237, 1),\n",
+       " (77, u'class_text', u'Iris-virginica', 0.3401038, 2),\n",
+       " (77, u'class_text', u'Iris-setosa', 0.088803805, 3),\n",
+       " (81, u'class_text', u'Iris-versicolor', 0.53077435, 1),\n",
+       " (81, u'class_text', u'Iris-virginica', 0.32625726, 2),\n",
+       " (81, u'class_text', u'Iris-setosa', 0.14296837, 3),\n",
+       " (83, u'class_text', u'Iris-versicolor', 0.53015316, 1),\n",
+       " (83, u'class_text', u'Iris-virginica', 0.32889763, 2),\n",
+       " (83, u'class_text', u'Iris-setosa', 0.14094917, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.5004781, 1),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.3183768, 2),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.18114516, 3),\n",
+       " (100, u'class_text', u'Iris-versicolor', 0.49173826, 1),\n",
+       " (100, u'class_text', u'Iris-virginica', 0.39376155, 2),\n",
+       " (100, u'class_text', u'Iris-setosa', 0.11450017, 3),\n",
+       " (104, u'class_text', u'Iris-virginica', 0.63378763, 1),\n",
+       " (104, u'class_text', u'Iris-versicolor', 0.33676574, 2),\n",
+       " (104, u'class_text', u'Iris-setosa', 0.029446673, 3),\n",
+       " (108, u'class_text', u'Iris-virginica', 0.52301323, 1),\n",
+       " (108, u'class_text', u'Iris-versicolor', 0.4507337, 2),\n",
+       " (108, u'class_text', u'Iris-setosa', 0.026253074, 3),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.8007931, 1),\n",
+       " (114, u'class_text', u'Iris-versicolor', 0.17807306, 2),\n",
+       " (114, u'class_text', u'Iris-setosa', 0.021133851, 3),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.8288441, 1),\n",
+       " (116, u'class_text', u'Iris-versicolor', 0.15422747, 2),\n",
+       " (116, u'class_text', u'Iris-setosa', 0.016928488, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.60298413, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.3622377, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.034778137, 3),\n",
+       " (122, u'class_text', u'Iris-virginica', 0.79363465, 1),\n",
+       " (122, u'class_text', u'Iris-versicolor', 0.18244599, 2),\n",
+       " (122, u'class_text', u'Iris-setosa', 0.023919372, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.6008913, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.38202757, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 0.01708112, 3),\n",
+       " (126, u'class_text', u'Iris-virginica', 0.51136595, 1),\n",
+       " (126, u'class_text', u'Iris-versicolor', 0.455122, 2),\n",
+       " (126, u'class_text', u'Iris-setosa', 0.033512004, 3),\n",
+       " (132, u'class_text', u'Iris-virginica', 0.5061915, 1),\n",
+       " (132, u'class_text', u'Iris-versicolor', 0.4644996, 2),\n",
+       " (132, u'class_text', u'Iris-setosa', 0.029308934, 3),\n",
+       " (137, u'class_text', u'Iris-virginica', 0.8607982, 1),\n",
+       " (137, u'class_text', u'Iris-versicolor', 0.12758763, 2),\n",
+       " (137, u'class_text', u'Iris-setosa', 0.011614183, 3),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.7419237, 1),\n",
+       " (143, u'class_text', u'Iris-versicolor', 0.23144698, 2),\n",
+       " (143, u'class_text', u'Iris-setosa', 0.026629237, 3),\n",
+       " (146, u'class_text', u'Iris-virginica', 0.81490934, 1),\n",
+       " (146, u'class_text', u'Iris-versicolor', 0.16574617, 2),\n",
+       " (146, u'class_text', u'Iris-setosa', 0.019344518, 3),\n",
+       " (150, u'class_text', u'Iris-virginica', 0.6649737, 1),\n",
+       " (150, u'class_text', u'Iris-versicolor', 0.29889813, 2),\n",
+       " (150, u'class_text', u'Iris-setosa', 0.03612826, 3)]"
+      ]
+     },
+     "execution_count": 74,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model', -- model\n",
+    "                                   'iris_test',  -- test_table\n",
+    "                                   'id',  -- id column\n",
+    "                                   'attributes', -- independent var\n",
+    "                                   'iris_predict'  -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 75,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 75,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id)\n",
+    "WHERE iris_predict.class_value != iris_test.class_text AND iris_predict.rank = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 76,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 76,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id where iris_predict.rank = 1) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_byom\"></a>\n",
+    "# 7. Predict BYOM\n",
+    "The predict BYOM function allows you to do inference on models that have not been trained on MADlib, but rather imported from elsewhere.  \n",
+    "\n",
+    "We will use the validation dataset for prediction as well, which is not usual but serves to show the syntax.\n",
+    "\n",
+    "See load_keras_model()\n",
+    "http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html\n",
+    "for details on how to load the model architecture and weights.  In this example we will use weights we already have:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 77,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 77,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train using a model from the model architecture table directly without referencing the model table from the MADlib training.  \n",
+    "\n",
+    "Note that if you specify the class values parameter as we do below, it must reflect how the dependent variable was 1-hot encoded for training.  In this example the 'training_preprocessor_dl()' in Step 2 above encoded in the order {'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'} so this is the order we pass in the parameter.  If we accidently picked another order that did not match the 1-hot encoding, the predictions would be wrong."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 78,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4811115</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4824369</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.46726868</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.48340678</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.4921991</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49637538</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47494373</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.51390177</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6093597</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.55952024</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5187173</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6168418</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.57109237</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.53077435</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.53015316</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5004781</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49173826</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.63378763</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.52301323</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8007931</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8288441</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.60298413</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.79363465</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6008913</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.51136595</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5061915</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8607982</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7419237</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.81490934</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6649737</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(6, u'dependent_var', u'Iris-setosa', 0.4811115),\n",
+       " (9, u'dependent_var', u'Iris-setosa', 0.4824369),\n",
+       " (31, u'dependent_var', u'Iris-setosa', 0.46726868),\n",
+       " (32, u'dependent_var', u'Iris-setosa', 0.48340678),\n",
+       " (41, u'dependent_var', u'Iris-setosa', 0.4921991),\n",
+       " (52, u'dependent_var', u'Iris-versicolor', 0.49637538),\n",
+       " (57, u'dependent_var', u'Iris-virginica', 0.47494373),\n",
+       " (60, u'dependent_var', u'Iris-virginica', 0.51390177),\n",
+       " (63, u'dependent_var', u'Iris-versicolor', 0.6093597),\n",
+       " (66, u'dependent_var', u'Iris-versicolor', 0.55952024),\n",
+       " (67, u'dependent_var', u'Iris-virginica', 0.5187173),\n",
+       " (68, u'dependent_var', u'Iris-versicolor', 0.6168418),\n",
+       " (77, u'dependent_var', u'Iris-versicolor', 0.57109237),\n",
+       " (81, u'dependent_var', u'Iris-versicolor', 0.53077435),\n",
+       " (83, u'dependent_var', u'Iris-versicolor', 0.53015316),\n",
+       " (94, u'dependent_var', u'Iris-versicolor', 0.5004781),\n",
+       " (100, u'dependent_var', u'Iris-versicolor', 0.49173826),\n",
+       " (104, u'dependent_var', u'Iris-virginica', 0.63378763),\n",
+       " (108, u'dependent_var', u'Iris-virginica', 0.52301323),\n",
+       " (114, u'dependent_var', u'Iris-virginica', 0.8007931),\n",
+       " (116, u'dependent_var', u'Iris-virginica', 0.8288441),\n",
+       " (117, u'dependent_var', u'Iris-virginica', 0.60298413),\n",
+       " (122, u'dependent_var', u'Iris-virginica', 0.79363465),\n",
+       " (123, u'dependent_var', u'Iris-virginica', 0.6008913),\n",
+       " (126, u'dependent_var', u'Iris-virginica', 0.51136595),\n",
+       " (132, u'dependent_var', u'Iris-virginica', 0.5061915),\n",
+       " (137, u'dependent_var', u'Iris-virginica', 0.8607982),\n",
+       " (143, u'dependent_var', u'Iris-virginica', 0.7419237),\n",
+       " (146, u'dependent_var', u'Iris-virginica', 0.81490934),\n",
+       " (150, u'dependent_var', u'Iris-virginica', 0.6649737)]"
+      ]
+     },
+     "execution_count": 78,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict_byom;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict_byom('model_arch_library',  -- model arch table\n",
+    "                                         1,                    -- model arch id\n",
+    "                                        'iris_test',           -- test_table\n",
+    "                                        'id',                  -- id column\n",
+    "                                        'attributes',          -- independent var\n",
+    "                                        'iris_predict_byom',   -- output table\n",
+    "                                        'response',            -- prediction type\n",
+    "                                         FALSE,                -- use GPUs\n",
+    "                                         ARRAY[ARRAY['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']], -- class values\n",
+    "                                         1.0                   -- normalizing const\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict_byom ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 79,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 79,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict_byom JOIN iris_test USING (id)\n",
+    "WHERE iris_predict_byom.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 80,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 80,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict_byom.class_value as estimated\n",
+    "     from iris_predict_byom inner join iris_test\n",
+    "     on iris_test.id=iris_predict_byom.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 81,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 81,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                FALSE,                -- warm start\n",
+    "                               'Sophie L.',           -- name\n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 82,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-05 00:32:44.058709</td>\n",
+       "        <td>2021-03-05 00:32:45.314395</td>\n",
+       "        <td>[0.694608211517334, 0.840541124343872, 0.978843212127686, 1.11710405349731, 1.25560808181763]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.241201594472</td>\n",
+       "        <td>[0.941666662693024, 0.941666662693024, 0.949999988079071, 0.949999988079071, 0.949999988079071]</td>\n",
+       "        <td>[0.488521963357925, 0.39494463801384, 0.326846390962601, 0.278280317783356, 0.241201594471931]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.26036465168</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 1.0, 0.966666638851166]</td>\n",
+       "        <td>[0.47617694735527, 0.398945957422256, 0.344237744808197, 0.293299406766891, 0.260364651679993]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 5, 0, 32, 44, 58709), datetime.datetime(2021, 3, 5, 0, 32, 45, 314395), [0.694608211517334, 0.840541124343872, 0.978843212127686, 1.11710405349731, 1.25560808181763], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.241201594471931, [0.941666662693024, 0.941666662693024, 0.949999988079071, 0.949999988079071, 0.949999988079071], [0.488521963357925, 0.39494463801384, 0.326846390962601, 0.278280317783356, 0.241201594471931], 0.966666638851166, 0.260364651679993, [0.966666638851166, 0.966666638851166, 0.966666638851166, 1.0, 0.966666638851166], [0.47617694735527, 0.398945957422256, 0.344237744808197, 0.293299406766891, 0.260364651679993], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 82,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 83,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Loss by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 84,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by time"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 85,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get time\n",
+    "time_proxy = %sql SELECT metrics_elapsed_time FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "time = np.array(time_proxy).reshape(num_points)/60.0\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by time')\n",
+    "plt.xlabel('Time (min)')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(time, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(time, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Time to achieve a given accuracy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 86,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#plot\n",
+    "plt.title('Iris time by validation accuracy')\n",
+    "plt.xlabel('Accuracy')\n",
+    "plt.ylabel('Time (min)')\n",
+    "plt.grid(True)\n",
+    "plt.plot(train_accuracy, time, 'g.-', label='Train')\n",
+    "plt.plot(test_accuracy, time, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2. Predict probabilities\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 87,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.891271</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.10080952</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.007919549</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8695044</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.11757523</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.012920381</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8633581</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.12582295</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.010819025</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.88681984</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.102223285</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.010956874</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8932031</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.096981615</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.009815287</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.76211596</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.19126216</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.04662187</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.69715446</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.27219558</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.030649954</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60125184</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.34705988</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.051688295</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8020071</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.13346818</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.06452477</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.81577915</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.12264396</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.06157696</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60419196</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.36887947</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026928646</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8244004</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.090247154</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.08535246</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7504721</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.22607413</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.023453651</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7521254</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.16548002</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.08239466</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.77373123</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.13472785</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.091540955</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7143379</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.15561377</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.13004832</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.73750204</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.19979021</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.06270776</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.75223774</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.24626015</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0015020997</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7122927</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.28699583</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0007114962</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.92487866</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.07457555</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00054574676</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9063354</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.092982225</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0006823736</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6758052</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.32160306</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0025916724</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.88375044</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.11495294</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0012965987</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8630747</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.1367832</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00014210763</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5698242</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4279695</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0022062436</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.52581084</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4718109</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0023783143</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.93258834</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.06707534</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00033634563</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.85896367</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.13981287</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0012235282</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.90900683</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.090333104</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0006600239</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7043904</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2916941</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0039154952</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(6, u'class_text', u'Iris-setosa', 0.891271, 1),\n",
+       " (6, u'class_text', u'Iris-versicolor', 0.10080952, 2),\n",
+       " (6, u'class_text', u'Iris-virginica', 0.007919549, 3),\n",
+       " (9, u'class_text', u'Iris-setosa', 0.8695044, 1),\n",
+       " (9, u'class_text', u'Iris-versicolor', 0.11757523, 2),\n",
+       " (9, u'class_text', u'Iris-virginica', 0.012920381, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.8633581, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 0.12582295, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 0.010819025, 3),\n",
+       " (32, u'class_text', u'Iris-setosa', 0.88681984, 1),\n",
+       " (32, u'class_text', u'Iris-versicolor', 0.102223285, 2),\n",
+       " (32, u'class_text', u'Iris-virginica', 0.010956874, 3),\n",
+       " (41, u'class_text', u'Iris-setosa', 0.8932031, 1),\n",
+       " (41, u'class_text', u'Iris-versicolor', 0.096981615, 2),\n",
+       " (41, u'class_text', u'Iris-virginica', 0.009815287, 3),\n",
+       " (52, u'class_text', u'Iris-versicolor', 0.76211596, 1),\n",
+       " (52, u'class_text', u'Iris-virginica', 0.19126216, 2),\n",
+       " (52, u'class_text', u'Iris-setosa', 0.04662187, 3),\n",
+       " (57, u'class_text', u'Iris-versicolor', 0.69715446, 1),\n",
+       " (57, u'class_text', u'Iris-virginica', 0.27219558, 2),\n",
+       " (57, u'class_text', u'Iris-setosa', 0.030649954, 3),\n",
+       " (60, u'class_text', u'Iris-versicolor', 0.60125184, 1),\n",
+       " (60, u'class_text', u'Iris-virginica', 0.34705988, 2),\n",
+       " (60, u'class_text', u'Iris-setosa', 0.051688295, 3),\n",
+       " (63, u'class_text', u'Iris-versicolor', 0.8020071, 1),\n",
+       " (63, u'class_text', u'Iris-virginica', 0.13346818, 2),\n",
+       " (63, u'class_text', u'Iris-setosa', 0.06452477, 3),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.81577915, 1),\n",
+       " (66, u'class_text', u'Iris-virginica', 0.12264396, 2),\n",
+       " (66, u'class_text', u'Iris-setosa', 0.06157696, 3),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.60419196, 1),\n",
+       " (67, u'class_text', u'Iris-virginica', 0.36887947, 2),\n",
+       " (67, u'class_text', u'Iris-setosa', 0.026928646, 3),\n",
+       " (68, u'class_text', u'Iris-versicolor', 0.8244004, 1),\n",
+       " (68, u'class_text', u'Iris-setosa', 0.090247154, 2),\n",
+       " (68, u'class_text', u'Iris-virginica', 0.08535246, 3),\n",
+       " (77, u'class_text', u'Iris-versicolor', 0.7504721, 1),\n",
+       " (77, u'class_text', u'Iris-virginica', 0.22607413, 2),\n",
+       " (77, u'class_text', u'Iris-setosa', 0.023453651, 3),\n",
+       " (81, u'class_text', u'Iris-versicolor', 0.7521254, 1),\n",
+       " (81, u'class_text', u'Iris-virginica', 0.16548002, 2),\n",
+       " (81, u'class_text', u'Iris-setosa', 0.08239466, 3),\n",
+       " (83, u'class_text', u'Iris-versicolor', 0.77373123, 1),\n",
+       " (83, u'class_text', u'Iris-virginica', 0.13472785, 2),\n",
+       " (83, u'class_text', u'Iris-setosa', 0.091540955, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.7143379, 1),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.15561377, 2),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.13004832, 3),\n",
+       " (100, u'class_text', u'Iris-versicolor', 0.73750204, 1),\n",
+       " (100, u'class_text', u'Iris-virginica', 0.19979021, 2),\n",
+       " (100, u'class_text', u'Iris-setosa', 0.06270776, 3),\n",
+       " (104, u'class_text', u'Iris-virginica', 0.75223774, 1),\n",
+       " (104, u'class_text', u'Iris-versicolor', 0.24626015, 2),\n",
+       " (104, u'class_text', u'Iris-setosa', 0.0015020997, 3),\n",
+       " (108, u'class_text', u'Iris-virginica', 0.7122927, 1),\n",
+       " (108, u'class_text', u'Iris-versicolor', 0.28699583, 2),\n",
+       " (108, u'class_text', u'Iris-setosa', 0.0007114962, 3),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.92487866, 1),\n",
+       " (114, u'class_text', u'Iris-versicolor', 0.07457555, 2),\n",
+       " (114, u'class_text', u'Iris-setosa', 0.00054574676, 3),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.9063354, 1),\n",
+       " (116, u'class_text', u'Iris-versicolor', 0.092982225, 2),\n",
+       " (116, u'class_text', u'Iris-setosa', 0.0006823736, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.6758052, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.32160306, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.0025916724, 3),\n",
+       " (122, u'class_text', u'Iris-virginica', 0.88375044, 1),\n",
+       " (122, u'class_text', u'Iris-versicolor', 0.11495294, 2),\n",
+       " (122, u'class_text', u'Iris-setosa', 0.0012965987, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.8630747, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.1367832, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 0.00014210763, 3),\n",
+       " (126, u'class_text', u'Iris-virginica', 0.5698242, 1),\n",
+       " (126, u'class_text', u'Iris-versicolor', 0.4279695, 2),\n",
+       " (126, u'class_text', u'Iris-setosa', 0.0022062436, 3),\n",
+       " (132, u'class_text', u'Iris-versicolor', 0.52581084, 1),\n",
+       " (132, u'class_text', u'Iris-virginica', 0.4718109, 2),\n",
+       " (132, u'class_text', u'Iris-setosa', 0.0023783143, 3),\n",
+       " (137, u'class_text', u'Iris-virginica', 0.93258834, 1),\n",
+       " (137, u'class_text', u'Iris-versicolor', 0.06707534, 2),\n",
+       " (137, u'class_text', u'Iris-setosa', 0.00033634563, 3),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.85896367, 1),\n",
+       " (143, u'class_text', u'Iris-versicolor', 0.13981287, 2),\n",
+       " (143, u'class_text', u'Iris-setosa', 0.0012235282, 3),\n",
+       " (146, u'class_text', u'Iris-virginica', 0.90900683, 1),\n",
+       " (146, u'class_text', u'Iris-versicolor', 0.090333104, 2),\n",
+       " (146, u'class_text', u'Iris-setosa', 0.0006600239, 3),\n",
+       " (150, u'class_text', u'Iris-virginica', 0.7043904, 1),\n",
+       " (150, u'class_text', u'Iris-versicolor', 0.2916941, 2),\n",
+       " (150, u'class_text', u'Iris-setosa', 0.0039154952, 3)]"
+      ]
+     },
+     "execution_count": 87,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model',      -- model\n",
+    "                                   'iris_test',       -- test_table\n",
+    "                                   'id',              -- id column\n",
+    "                                   'attributes',      -- independent var\n",
+    "                                   'iris_predict',    -- output table\n",
+    "                                   'prob'             -- response type\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3. Warm start\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 88,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 88,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                TRUE,                 -- warm start\n",
+    "                               'Sophie L.',           -- name \n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In the summary table and plots below note that the loss and accuracy values pick up from where the previous run left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 89,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-05 00:32:52.007110</td>\n",
+       "        <td>2021-03-05 00:32:53.468497</td>\n",
+       "        <td>[0.856245040893555, 1.01584315299988, 1.16454410552979, 1.31038999557495, 1.4613139629364]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.148840203881</td>\n",
+       "        <td>[0.958333313465118, 0.949999988079071, 0.958333313465118, 0.949999988079071, 0.949999988079071]</td>\n",
+       "        <td>[0.212763890624046, 0.190055623650551, 0.173214688897133, 0.159584209322929, 0.148840203881264]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.15544141829</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.239033177495003, 0.209584251046181, 0.192669615149498, 0.169393673539162, 0.155441418290138]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 5, 0, 32, 52, 7110), datetime.datetime(2021, 3, 5, 0, 32, 53, 468497), [0.856245040893555, 1.01584315299988, 1.16454410552979, 1.31038999557495, 1.4613139629364], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.148840203881264, [0.958333313465118, 0.949999988079071, 0.958333313465118, 0.949999988079071, 0.949999988079071], [0.212763890624046, 0.190055623650551, 0.173214688897133, 0.159584209322929, 0.148840203881264], 0.966666638851166, 0.155441418290138, [0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.239033177495003, 0.209584251046181, 0.192669615149498, 0.169393673539162, 0.155441418290138], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 89,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 90,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEWCAYAAABbgYH9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzs3Xd4FFX3wPHvSShBehORIKDYUHmBIBgrxQI2hCRUQQVE/aEiL/aK2LCLwisqoqC0FERUFJAiClgoASmiiEpVESEQWkhyfn/MBNeQnkxmk5zP8+yTmTv3zpyZ3Z2TaXdFVTHGGGOKWojfARhjjCmdLMEYY4zxhCUYY4wxnrAEY4wxxhOWYIwxxnjCEowxxhhPWILxiYj0EZE5xbi8xiKiIlLOHf9URG7IS90CLOtBERlXmHjLMhFpJyJbi2heY0XkkaKYVyFiWCsi7fyMwfhD7DkYb4jIr8BAVf3c71jASRrAL0B5VU0twrrtgPdVNbwo4jTebdPieK9E5F1gq6o+7NUySqv8fO9ymc+vBMm+x45gfFDQIwPjr7L+vpX19Yfg3gZBGZuq2suDF/ArcKk7fCOwGHgZ2AU86ZZ95U4Xd9qfwF7ge+DsLObZA1iWqWwoMNMdvgpY6c5jCzA8oF5jQIFy7vhCnP9yAEKBF4C/gE3A4Ex1bwLWA/vc6be45ZWBg0A6kOy+TgSG4/ynnLHsa4G1wB53uWdm2k53A6uBJGAaEJbNNj0FmO9uw7+ASUCNgOkNgenATrfO6IBpNweswzqglVuuQNOAeu8CT7rD7YCtwH3A78B7QE3gY3cZu93h8ID2tYB3gO3u9Blu+RrgmoB65d11aJnFemYs90G3zq9AH3faucAfQGhA/W7Aqmy22bs4n7fs3qsQ4H7gZ3ebxQK1Mn1mBgCbgUVueZy7PZKARcBZbvkg4AiQ4s7/oyy+CxWBV9zts90drphpvYfhfBd2ADcV8PsX5q5vHXf8ISAVqOaOPwG8ko/vzdFtEFB2k1t/N3Cr+96sxvmcj84htjbAMnd5fwAvueWb3flmvD+R5P6Z/xXn87kaOAxMcd/jg+487vV1P+jnwkvzi2MTTCpwB1AOqMS/E8wVwHKgBk6yOROon8U8j8PZQZ4aUPYd0NMdbgecg7PTaO5+eK9zp2V8KbJKMLcCP+DsoGsBCzLVvcr9oAtwCXCAf3bQ7XBOiQTGORw3wQCnAfuBy3B2qvcCG4EKAdvpW5ydXS2cJHBrNtu0qTufikBdnC97xk4iFFiFk6gr4+xgLnSnxQDbcHYA4s6nkTsttwSTCjzrLrMSUBuIct+Lqjg72xkB7T/BSZI13fW9xC2/F5gWUK8L8H0265mx3Jfc5V7ibsPT3enrgM4B9T8AhmUzr8zrk/m9GgJ8DYS7y3oDmJLpMzPR3aaV3PL+7rpnJIvErJaXzXdhhLu84933cAnwRKb1HuFuuytxPms1C/gdXAREucNzcJJo54BpXfPxvTm6DQLKxuJ8zi4HDgEz3PVqgJMgL8kmrqVAX3e4CnBeVt/R3D7zAds2Eee7Wynz9vb75XsApfXFsQlmc6bpN/JPgukA/AicB4TkMt/3gUfd4VNxEs5x2dR9BXjZHf7Xh5d/J5j5BOzU3S/Mvz7omeY7AxjiDrcj5wTzCBAbMC0EZ2ffLmA7XR8w/TlgbB638XXASnc4Eueo4piYgdkZ8WYxLbcEk0I2R1RunRbAbne4Ps5/j8fsEHES6D7++Q86nmz+u+SfHW3lgLJY4BF3+D5gkjtcC2cnfMw/JNmsT+b3aj3QMWC8Ps5RSLmAz8zJOax/DbdO9czLy+a78DNwZcC0K4BfA+I7yL93sH/i7oAL8B18AnjVXZffcZLpSP45uqmdj+/NyQHTM8oaBJTtAnoEjCcAd2Uz/0XA47hHV1nMN8vvXebPfMC27Z/d9vb7Zddgis+W7Cao6nxgNDAG+FNE3hSRatlUnwz0cod74/z3fABARNqKyAIR2SkiSThHJnXyENuJmeL7LXCiiHQWka9F5G8R2YPzn2Ve5psx76PzU9V0d1kNAur8HjB8AOe/umOISD0RmSoi20RkL06yzYijIfCbZn1xtCHOjq0gdqrqoYAYjhORN0TkNzeGRUANEQl1l/O3qu7OPBNV3Y5zmjRKRGoAnXFOd2Rnt6ruDxj/DWdbgrPe14hIZaA78KWq7ijg+jUCPhCRPe57ux5IA+oF1Dn62RCRUBEZKSI/u+v/qzupQJ8H/r1eALsyvYdZfh5E5CIRSXZfa7NZ1hc4SasVzmnnuThHg+cBG1V1lzuvvHxvsvr+/hEwfDCL8Sw/xzin204DfhCR70Tk6mzq5faZzym2oGAJpvhojhNVX1XVCKAZzofvnmyqzgXqikgLnEQzOWDaZGAm0FBVq+McwkseYtuBs3PMcFLGgIhUxPlv7AWgnqrWAGYFzDfH9cI5z94oYH7iLmtbHuLK7Gl3eeeoajXg+oA4tgAnZXOhcwvOKb6sHMA53ZXhhEzTM6/fMOB0oK0bw8VuubjLqeUmkKxMcGOOAZaqak7boKabQDKchLMtcdstxbn20hfn2lBeZPVebcE5bVQj4BWWKbbAdr1xTu9dClTH+a8bCvh5IGC98kNVv1TVKu7rrGyqLcF5r7oCX6jqOnd5V+Iknwx5+d7ktl75if0nVe2FczrtWSDefa+zWkZOn/nsYiuyWAvLEkwQEJFz3f+iyuOcaz+Ec6rlGKp6BOe8//M4p0fmBkyuivMf9CERaYOzM8iLWOBOEQkXkZo4F30zVMA5/7sTSBWRzjin0DL8AdQWkeo5zPsqEenort8wnIuRS/IYW6CqOBcuk0SkAf9Owt/iJMqRIlJZRMJE5AJ32jjgbhGJEEdTEcnYySUCvd3/zDvh/IebWwwHgT0iUgt4LGOCexTxKfA/EakpIuVF5OKAtjNw/psegnNOPzePi0gFEbkIuBrnfc8wEee6zjk4NzbkRVbv1VjgqYztISJ1RaRLDvOoivP+7cJJzE9nsYyTc2g/BXjYXU4d4FGc/8qLnHtkvxznppWMhLIE5wglMMEU9HtTICJyvYjUdY/m97jF6TjfsXT+vf1y+sxnJ7f3oNhYggkO1YC3cO5G+Q3ny/t8DvUn4/wHGZfpdML/ASNEZB/OFzc2j8t/C+c6xSpgBQE7LFXdB9zpzms3zpdvZsD0H3B2Gpvc0yyBpztQ1Q04/3W9hnMXzDU4d1Ol5DG2QI/j7KCTcC6mB8aZ5s67Kc7dOFtx7rpDVeOAp3C22z6cHX0tt+kQt90eoI87LSev4Fzo/QvnYvVnmab3xbmG8QPO9YO7AmI8iHM02ITck8LvONt7O86ptFvdbZ3hA9zTWxmnSHOTzXs1Cuf9nON+br4G2uYwm4k4n9FtODcbfJ1p+ttAM3f+WW3LJ3HuoFqNc9pqhVvmlS9wbhj4NmC8Ks6pzQwF/d4UVCdgrYgk42z/nqp60H0fnwIWu9vvPHL4zOfgGZwkvkdE7vZmFfLGHrQ0phiJyKPAaap6fRHM62ecW8Z9f6DOmKwE34M5xpRS7im1AThHOYWdVxTOufb5hZ2XMV7x9BSZiHQSkQ0islFE7s9ieiMRmSciq0VkoYiEB0w7SUTmiMh6EVnndqOAiHwpIonua3vGYbg4/TclBUx71Mt1MyY/RORmnAvqn6rqotzq5zKvhcDrwGD3PL4xQcmzU2TubZs/4jwktBXngcBe7p0cGXXigI9VdYKIdMB5arevO20h8JSqzhWRKkB65nPNIpIAfKiqE8XpZ+luVc32lj9jjDHFx8sjmDY495pvci/oTsW5vTFQM/45xF+QMV1EmuE8bDQXQFWTs0gu1XAeUMztoqwxxhgfeHkNpgH/fgBoK8fenbIK517+UTj3qlcVkdo4z4HsEZHpOHfcfA7c794plOE6YJ6q7g0oixSRVTh33tytqsc8gCUig3D6TKJSpUoRDRs2zFwlT9LT0wkJCb6b8II1Lgje2Cyu/LG48qc0xvXjjz/+pap1c63oVRcBQDQwLmC8L5k6gMN5gnc6Tkdzo3CSUA23bRLOvdzlcG7tHJCp7ae4/Qy549WAKu7wlcBPucUYERGhBbVgwYICt/VSsMalGryxWVz5Y3HlT2mMi0yd7mb38jKtbuPfT4eHk+npbVXdrqrdVLUlTm+nqOoenESTqM7ptVT+eUANAPcBrTY494VnzGuvqia7w7OA8m49Y4wxPvAywXwHnCoiTUSkAtCTgAf0wEkUIpIRwwPA+IC2NUQk4xCsA85DXRmicW4OCOwj6gS3GxLcp3FDcB5YNMYY4wPPEox75HE7zhPi63F61F0rIiNE5Fq3Wjtgg4j8iNO53lNu2zSc3wiZJyLf4/S981bA7HviPJEcKBpY416DeRXn6Vh7itQYY3zi6YOW7qmqWZnKHg0YjsfptjyrtnNxfpshq2ntsigbjdMjsTHGmCAQfLc2GGOMKRUswRhjjPGEJZiCWLqUkyZNgqVL/Y6k5LBtlj+2vfLHtlf+FNP2KtO9Kbdu3VqXLVuWv0ZLl8LFF6OpqUhICDRvDtWz+ymU4rdnzx5q1Mju9658kpQEq1ej6em2zfLCtlf+2PbKn8DtVakSzJsHkZH5moWILFfV1rnVsyOY/Fq4ENLSnJ+US0933iyTs6QkSE+3bZZXtr3yx7ZX/gRur5QUZ5/mlbw8jVlaXwV6kn/JEtVKlTQtJES1UiVnPIgE5VPDts3yx7ZX/tj2yp8i2F4EwZP8pVNkJMybx6/9+xfo0LJMsm2WP7a98se2V/4U4/ayHxwriMhINh8+zMn2Qc4722b5Y9srf2x75U8xbS87gjHGGOMJSzDGGGM8YQnGGGOMJyzBGGOM8YQlGGOMMZ6wBGOMMcYTlmCMMcZ4whKMMcYYT1iCMcYY4wlLMMYYYzxhCcYYY4wnLMEYY4zxhCUYY4wxnvA0wYhIJxHZICIbReT+LKY3EpF5IrJaRBaKSHjAtJNEZI6IrBeRdSLS2C1/V0R+EZFE99XCLRcRedVd1moRaeXluhljjMmZZwlGREKBMUBnoBnQS0SaZar2AjBRVZsDI4BnAqZNBJ5X1TOBNsCfAdPuUdUW7ivRLesMnOq+BgGvF/U6GWOMyTsvj2DaABtVdZOqpgBTgS6Z6jQD5rvDCzKmu4monKrOBVDVZFU9kMvyuuAkK1XVr4EaIlK/iNbFGGNMPonz65cezFgkGuikqgPd8b5AW1W9PaDOZOAbVR0lIt2ABKAOcBEwEEgBmgCfA/erapqIvAtEAoeBeW75YRH5GBipql+5854H3KeqyzLFNQjnCId69epFTJ06tUDrl5ycTJUqVQrU1kvBGhcEb2wWV/5YXPlTGuNq3779clVtnWvFvPyuckFeQDQwLmC8LzA6U50TgenASmAUsBWo4bZNAk7G+dXNBGCA26Y+IEBFYALwqFv+MXBhwLznAa1zijEiIiLfv0WdIeh+Z9sVrHGpBm9sFlf+WFz5UxrjApZpHvKAl6fItgENA8bD3bKjVHW7qnZT1ZbAQ27ZHpxEk6jO6bVUYAbQyp2+w13Hw8A7OKfi8rQ8Y4wxxcfLBPMdcKqINBGRCkBPYGZgBRGpIyIZMTwAjA9oW0NE6rrjHYB1bpv67l8BrgPWuHVmAv3cu8nOA5JUdYc3q2aMMSY35byasaqmisjtwGwgFBivqmtFZATO4dVMoB3wjIgosAgY7LZNE5G7gXluIlkOvOXOepKbeARIBG51y2cBVwIbgQPATV6tmzHGmNx5lmAAVHUWzo4/sOzRgOF4ID6btnOB5lmUd8imvuImKGOMMf6zJ/mNMcZ4whKMMcYYT1iCMcYY4wlLMMYYYzxhCcYYY4wnLMEYY4zxhCUYY4wxnrAEY4wxxhOWYIwxxnjCEowxxhhPWIIxxhjjCUswxhhjPGEJxhhjjCcswRhjjPGEJRhjjDGesARjjDHGE5ZgjDHGeMISjDHGGE9YgjHGGOMJSzDGGGM8YQnGGGOMJzxNMCLSSUQ2iMhGEbk/i+mNRGSeiKwWkYUiEh4w7SQRmSMi60VknYg0dssnufNcIyLjRaS8W95ORJJEJNF9PerluhljjMmZZwlGREKBMUBnoBnQS0SaZar2AjBRVZsDI4BnAqZNBJ5X1TOBNsCfbvkk4AzgHKASMDCgzZeq2sJ9jSjqdTLGGJN3Xh7BtAE2quomVU0BpgJdMtVpBsx3hxdkTHcTUTlVnQugqsmqesAdnqUu4FsgHGOMMUFHnP20BzMWiQY6qepAd7wv0FZVbw+oMxn4RlVHiUg3IAGoA1yEc2SSAjQBPgfuV9W0gLblgW+AIar6pYi0c9tvBbYDd6vq2iziGgQMAqhXr17E1KlTC7R+ycnJVKlSpUBtvRSscUHwxmZx5Y/FlT+lMa727dsvV9XWuVZUVU9eQDQwLmC8LzA6U50TgenASmAUTnKo4bZNAk4GyuEkjgGZ2r4FvBIwXg2o4g5fCfyUW4wRERFaUAsWLChwWy8Fa1yqwRubxZU/Flf+lMa4gGWahzzg5SmybUDDgPFwt+woVd2uqt1UtSXwkFu2ByfRJKpzei0VmAG0ymgnIo8BdYH/Bsxrr6omu8OzgPIiUseTNTPGGJMrLxPMd8CpItJERCoAPYGZgRVEpI6IZMTwADA+oG0NEanrjncA1rltBgJXAL1UNT1gXieIiLjDbXDWbZcna2aMMSZXniUY98jjdmA2sB6IVdW1IjJCRK51q7UDNojIj0A94Cm3bRpwNzBPRL4HBOeUGMBYt+7STLcjRwNrRGQV8CrQ0z2UM8YY44NyXs7cPVU1K1PZowHD8UB8Nm3nAs2zKM8yZlUdDYwuTLzGGGOKjj3Jb4wxxhOWYIwxxnjCEowxxhhPWIIxxhjjCUswxhhjPGEJxhhjjCcswRhjjPGEJRhjjDGesARjjDHGE5ZgjDHGeMISjDHGGE9YgjHGGOMJSzDGGGM8YQnGGGOMJyzBGGOM8YQlGGOMMZ6wBGOMMcYTlmCMMcZ4whKMMcYYT1iCMcYY4wlPE4yIdBKRDSKyUUTuz2J6IxGZJyKrRWShiIQHTDtJROaIyHoRWScijd3yJiLyjTvPaSJSwS2v6I5vdKc39nLdjDHG5MyzBCMiocAYoDPQDOglIs0yVXsBmKiqzYERwDMB0yYCz6vqmUAb4E+3/FngZVVtCuwGBrjlA4DdbvnLbj1jjDE+8fIIpg2wUVU3qWoKMBXokqlOM2C+O7wgY7qbiMqp6lwAVU1W1QMiIkAHIN5tMwG4zh3u4o7jTu/o1jfGGOMDUdWcK4jcAbyvqrvzNWORaKCTqg50x/sCbVX19oA6k4FvVHWUiHQDEoA6wEXAQCAFaAJ8DtwP1AS+do9SEJGGwKeqeraIrHGXt9Wd9rO7vL8yxTUIGARQr169iKlTp+ZntY5KTk6mSpUqBWrrpWCNC4I3Nosrfyyu/CmNcbVv3365qrbOtaKq5vgCngQ2ArFAJ9yklId20cC4gPG+wOhMdU4EpgMrgVHAVqCG2zYJOBkoh5N4BuAkn40B7RsCa9zhNUB4wLSfgTo5xRgREaEFtWDBggK39VKwxqUavLFZXPljceVPaYwLWKZ5yAO5niJT1YeBU4G3gRuBn0TkaRE5JZem29wEkCHcLQuc93ZV7aaqLYGH3LI9bqJJVOf0WiowA2gF7AJqiEi5LOZ5dHnu9OpufWOMMT7I0zUYN2P97r5ScU5VxYvIczk0+w441b3rqwLQE5gZWEFE6ohIRgwPAOMD2tYQkbrueAdgnRvHApwjHIAbgA/d4ZnuOO70+W59Y4wxPsg1wYjIEBFZDjwHLAbOUdXbgAggKrt27pHH7cBsYD0Qq6prRWSEiFzrVmsHbBCRH4F6wFNu2zTgbmCeiHwPCPCW2+Y+4L8ishGojXNkhfu3tlv+X5xrNsYYY3xSLvcq1AK6qepvgYWqmi4iV+fUUFVnAbMylT0aMBzPP3eEZW47F2ieRfkmnDvUMpcfAmJyiscYY0zxycspsk+BvzNGRKSaiLQFUNX1XgVmjDGmZMtLgnkdSA4YT3bLjDHGmGzlJcFI4MVyVU0nb6fWjDHGlGF5STCbROROESnvvoYAm7wOzBhjTMmWlwRzK3A+znMmW4G2uE/CG2OMMdnJ9VSXqv6J8wyLMcYYk2e5JhgRCcPppuUsICyjXFX7exiXMcaYEi4vp8jeA04ArgC+wOmeZZ+XQRljjCn58pJgmqrqI8B+VZ0AXIVzHcYYY4zJVl4SzBH37x4RORunE8njvQvJGGNMaZCX51neFJGawMM4HUpWAR7xNCpjjDElXo4Jxu3peK86Pza2COf3WYwxxphc5XiKzH1q/95iiqXEWLplKZM2T2LplqV+h2JKKfuMmdIgL9dgPheRu0WkoYjUynh5HlmQWrplKe0ntGfcL+PoOLGj7QBMkft80+dc/O7FjP9lvH3GTImWlwTTAxiMc4psufta5mVQwWzhrws5ku7c93Aw9SALfl3gc0SmNFFV7vrsLlLTU0knnZS0FBb+utDvsIwpkLw8yd+kOAIpKdo1bkfF0IocSj2Eomzfu93vkEwp8vLXL7N251pCJZQ0TQPgkkaX+ByVMQWTl1+07JfVqziCC0aRDSOZ128eAxoPoEPjDoxdPpZFvy3yOyxTCny1+SvunXsvXc/oyqIbFxFRI4I0TWPVH6v8Ds2YAsnLbcrnBgyHAR2BFcBETyIqASIbRnK40WFaRbbi3LfOpUd8D1YMWkH9qvX9Ds2UUH8k/0H3uO40qdmEd7q8Q/Ww6jzX/Dle3PEid82+i9YntubcBufmPiNjgkiuRzCqekfA62agFc6zMGVetYrVSOiewN7De+mZ0JPU9FS/QzIlUGp6Kr0SerH70G7iY+KpHlYdgBAJ4b2u71G/Sn2i46LZdWCXz5Eakz95ucif2X7Arsu4zj7+bN68+k0W/baIB+c96Hc4pgR6ZP4jLPh1Aa9f9Tr/OeE//5pWq1It4rvH83vy71z/wfWka7pPURqTf3m5BvORiMx0Xx8DG4APvA+t5OjTvA+3tb6N55c8z4wfZvgdjilBZm6YycjFIxnYciA3trgxyzqtT2zNqE6j+GzjZzy56MniDdCYQsjLNZgXAoZTgd9UdWteZi4inYBRQCgwTlVHZpreCBgP1AX+Bq7PmLeIpAHfu1U3q+q1bvmXQFW3/HjgW1W9TkTaAR8Cv7jTpqvqiLzEWRRevuJllm1fxg0zbmD5oOU0rdW0uBZtSqhNuzfR74N+tDyhJa9d+VqOdW+JuIXFWxYzfOFwzgs/j8tPubyYojSm4PJyimwz8I2qfqGqi4FdItI4t0YiEgqMAToDzYBeItIsU7UXgImq2hwYATwTMO2gqrZwX9dmFKrqRRnlwFJgekCbLwPaFFtyAahYriJxMXGUCylHdGw0B48cLM7FmxLmUOohomOjERHiu8cTVi4sx/oiwtirxtKsbjN6J/RmS9KWYorUmILLS4KJAwJP/Ka5ZblpA2xU1U2qmgJMBbpkqtMMmO8OL8hierZEpBrQAQiac1KNajTi/a7vs/qP1QyeNdjvcEwQu2PWHaz8fSUTr5vIyTXz1sVf5QqVSeieQEpaCjFxMaSkpXgcpTGFI6qacwWRRPdoIbBslar+J7s2bp1ooJOqDnTH+wJtVfX2gDqTcY6ORolINyABqKOqu0QkFUjEOS03UlVnZJp/P+BaVY12x9u57bcC24G7VXVtFnENAgYB1KtXL2Lq1Kk5rn92kpOTqVIl65vpxv8ynvc2v8fdp93NVfWvKtD8CyqnuPwWrLEVd1yf/f4Zz254lt4Ne3PzyTfnO64vdn7B8HXD6dqgK3c2vdPLUPMVl98srvwpTFzt27dfrqqtc62oqjm+gLk4O/KM8S7AvDy0i8a57pIx3hcYnanOiTinuFbiXKvZCtRwpzVw/54M/Aqckqntp0BUwHg1oIo7fCXwU24xRkREaEEtWLAg22mpaal62cTLtOITFXXF9hUFXkZB5BSX34I1tuKMK3FHooY9Gabt322vR9KO5Fg3p7iGfjZUGY5O+X5KEUeYO3sf86c0xgUs01z2r6qap1NktwIPishmEdkM3Afckod224CGAePhbllgctuuqt1UtSXwkFu2x/27zf27CVgItMxoJyJ1cE7BfRIwr72qmuwOzwLKu/WKXWhIKJO6TaJu5bpEx0Wz59AeP8IwQSbpUBLRcdHUDKvJlKgplAvJyz02WXv20me5oOEFDJw5kPU71xdhlMYUnbw8aPmzqp6Hc72kmaqer6ob8zDv74BTRaSJiFQAeuL8YNlRIlLH/c0ZgAdw7ihDRGqKSMWMOsAFwLqAptHAx6p6KGBeJ4iIuMNt3HXz7cm0upXrEhsdy+akzdww4wZ7fqGMU1Vu/PBGftn9C7ExsdSrUq9Q8ysfWp5p0dOoXKEyUbFRJKckF1GkxhSdvDwH87SI1FDVZFVNdnf+ud6Mr6qpwO3AbGA9EKuqa0VkhIhk3BXWDtggIj8C9YCn3PIzgWUisgrn4v9IVQ1MMD2BKZkWGQ2scdu8CvR0D+V8E9kwkhcvf5GZG2by/OLn/QzF+OzFpS8y44cZPHfZc1x40oVFMs8G1RowJWoKG3ZtYNBHg/D5427MMfJyjN5ZVY8+oq6qu0XkSpyfUM6Re6pqVqayRwOG44H4LNotAc7JYb7tsigbDYzOLabidkebO1i8ZTEPzn+QtuFtade4nd8hmWK26LdF3P/5/USdGcXQ84YW6bw7NOnAE+2f4KH5D3FBwwsY3MbuXjTBIy/XYEIzTlcBiEgloGIO9U0AEWHcNeM4rfZp9IzvyfZ91r1/WfJ78u/0iO/ByTVPZnyX8bhncYvU/Rfez9WnXc3Q2UP5Zus3RT5/YwoqLwlmEjBPRAaIyECcu8omeBtW6VK1YlXiY+LZl7KPHvE9OJJ2xO+QTDFITU+lR3wPkg4lkdA9gWoVq3mynBAJYeJ1E2lQrQExcTH8deAvT5ZjTH7l5SL/s8CTONdFTse5ptLI47hKnbOOP4u3rnmLrzZ/xQPzHvA7HFMMHpr3EIt+W8TYq8dyTr1sz/gWiZqVahIfE88f+/+gz/SiariAAAAgAElEQVQ+pKWnebo8Y/Iir70p/wEoEIPz9LzdF1kAvc/pzeBzB/Pi0heZvn567g1MifXhDx/y3JLnGNRqEP3+Uzy/zxdxYgSvdX6NOT/P4YlFTxTLMo3JSbYJRkROE5HHROQH4DWcPslEVdu7F9RNAbx4+Yu0adCGmz68iZ92/eR3OMYDP//9MzfMuIFW9VsxqvOoYl32za1upt9/+jHiixF8tvGzYl22MZnldATzA87RytWqeqGqvobTD5kphIxOMcuHlCcqNooDRw74HZIpQgePHCQqNooQCSE+JvdOLIuaiPD6Va9z9vFn02d6HzYnbS7W5RsTKKcE0w3YASwQkbdEpCNQ9LfAlEEnVT+JSd0msebPNfzfJ/9nzy+UIrfPup1Vf6ziva7v0aSmP7/Ld1z544jvHs+RtCPExMVwOPWwL3EYk22CUdUZqtoTOAPnYce7gONF5HURsR+jKKQrml7Bo5c8yoRVExi3Ypzf4ZgiMH7leMYnjuehix7iqtOKt5PTzE6rfRrvXvcu3277lmFzhvkaiym78nIX2X5Vnayq1+D0J7YSpz8yU0iPXPwIl59yOXd8egcrdqzwOxxTCIm/JzJ41mA6NunI4+0e9zscALqd2Y1hkcMY890YJn8/2e9wTBmU17vIAOcpflV9U1U7ehVQWZLRKebxlY8nKjaK3Qd3+x2SKYA9h/YQFRtF7Uq1mRw1mdCQUL9DOuqZjs9w4UkXcvNHN7Nu57rcGxhThPKVYEzRq3NcHeJi4ti2dxv9ZvSzTjFLGFXlxhk3sjlpM7ExsRxf+Xi/Q/qXjE4xq1aoSlRsFPsO7/M7JFOGWIIJAm3D2/LSFS/x8Y8f8+xXz/odjsmH55c8z4cbPuT5y57n/Ibn+x1Olk6seiJTo6fy464fufmjm+2mElNsLMEEicHnDqbn2T15eMHDzP9lfu4NjO8W/rqQB+Y9QEyzGIa0HeJ3ODlq17gdT3V4imlrpzH6W3uMzRQPSzBBQkR465q3OL326fSM78m2vdtyb2R8s2PfDnrG96RpraaMu3acJ51YFrV7L7iXa067hmFzhvH11q/9DseUAZZggkiVClVI6J7AgSMHrFPMIHYk7Qg94nuwL2Wfp51YFrUQCWHCdRMIrxZOTFwMO/fv9DskU8pZggkyZ9Y9k3HXjmPxlsXc97ndDR6MHpz3IF9u/pI3rn6Ds48/2+9w8qVmpZokdE9g5/6d1imm8ZwlmCDU8+ye3NHmDl7++mXi1x3ze2zGRx+s/4AXlr7Aba1v4/rm1/sdToG0rN+S0VeOZu6muTz+RXA8s2NKJ0swQeqFy1/gvPDz6P9hf37c9aPf4Rjgp10/ceOHN3Luiefy8hUv+x1OoQxoOYAbW9zIE4ue4NOfPvU7HFNKWYIJUhVCKxAbHUvFchWJio1if8p+v0Mq0w4cOUB0XDTlQsoRFxNHxXIl+0ddRYQxV46heb3mXP/B9fy25ze/QzKlkCWYINawekMmd5vM2j/Xctsnt9nzCz5RVQbPGsz3f3zP+13fp1GN0vF7e8eVP46E7gmkpqcSHRdtnWKaIudpghGRTiKyQUQ2isj9WUxvJCLzRGS1iCwUkfCAaWkikui+ZgaUvysivwRMa+GWi4i86i5rtYi08nLdistlp1zG8HbDeW/1e7y5/E2/wymT3l75Nu8mvsvDFz9M51M7+x1OkWpaqykTrpvAsu3LGDp7qN/hmFLGswQjIqHAGKAz0AzoJSLNMlV7AZioqs2BEcAzAdMOqmoL93Vtpnb3BExLdMs6A6e6r0HA60W8Sr55+OKH6dS0E3d+difLti/zO5wyZcWOFdw+63YuO/kyHrvkMb/D8cR1Z1zHPeffw+vLXmfS6kl+h2NKES+PYNoAG1V1k6qmAFOBLpnqNAMyHltfkMX0/OiCk6xUVb8GaohI/ULML2iESAjvd32fE6qcQHRsNH8f/NvvkMqE3Qd3Ex0bTd3KdZnUbVJQdWJZ1J7u+DQXN7qYQR8PYu2fa/0Ox5QSXiaYBsCWgPGtblmgVTg/bAbQFagqIrXd8TARWSYiX4vIdZnaPeWeBntZRDKutuZleSVW7eNqExcTx/Z92+n7QV/rFNNj6ZrODTNuYMveLcRGx1K3cl2/Q/JUuZByTI2aap1imiIlXl04FpFooJOqDnTH+wJtVfX2gDonAqOBJsAiIAo4W1X3iEgDVd0mIifjHOV0VNWf3aOS34EKwJvAz6o6QkQ+Bkaq6lfuvOcB96nqv84picggnFNo1KtXL2Lq1KkFWr/k5GSqVKlSoLaFMWPbDEZtHMWAxgO4vtGxz2H4FVdeBGtsWcU1efNk3vrlLW4/5XaiwqOCJi6vJe5JZNiqYVxU9yIeO/OxLLvAKUnvYzAojXG1b99+uaq2zrWiqnryAiKB2QHjDwAP5FC/CrA1m2nvAtFZlLcDPnaH3wB6BUzbANTPKcaIiAgtqAULFhS4bWGkp6dr74TeGvJ4iM79ee4x0/2KKy+CNbbMcc3fNF9DHg/R7nHdNT093Z+g1L/t9exXzyrD0VeWvpLl9JLyPgaL0hgXsEzzkAe8PEX2HXCqiDQRkQpAT2BmYAURqSMiGTE8AIx3y2tmnPoSkTrABcA6d7y++1eA64A1bvuZQD/3brLzgCRV3eHh+vlCRHjz6jc5o84Z9Eroxda9W/0OqVTZtncbPRN6clrt0xh3TcnoxLKo3XP+PXQ5vQt3z72bJVuW+B2OKcE8SzCqmgrcDswG1gOxqrpWREaISMZdYe2ADSLyI1APeMotPxNYJiKrcC7+j1TVjJ/jmyQi3wPfA3WAJ93yWcAmYCPwFvB/Xq2b3ypXqExC9wQOpR6ie1x3UtJS/A6pVMjoxHJ/yn4SuidQtWJVv0PyhYjw7nXv0qh6I7rHdefP/X/6HZIpocp5OXNVnYWz4w8sezRgOB44prMtVV0CnJPNPDtkU67A4MLEW5KcUecM3r72bXrE9+DeuffySqdX/A6pxLv/8/tZvGUxk7tNplndzHfUly01wmoQ3z2eyLcj6Z3Qm9nXzy7Vd9EZb9iT/CVY97O6M6TtEEZ9M4rYtbF+h1OiJaxL4KWvX2LwuYPpdU4vv8MJCi1OaMGYK8cw75d5DF843O9wTAlkCaaEe+6y54gMj2TAzAH88NcPfodTIm05sIWbPryJNg3a8OLlL/odTlDp37I//Vv058kvn+STHz/xOxxTwliCKeEqhFYgNiaWsHJhRMdGczDtoN8hlSgHjhxg+LrhVAitUCo6sfTC6CtH0+KEFvT9oC+/7vnV73BMCWIJphQIrxbOlKgprNu5jpd+fMk6xcwjVeW2T27jl/2/MKnbJE6qfpLfIQWlSuUrER8TT7qmEx0bTUq63VRi8sYSTClx6cmXMqL9CD7/83PGLhvrdzglwlsr3mLiqon0a9SPK5pe4Xc4Qe2UWqcwsetElu9YzuiNo/0Ox5QQlmBKkQcvepC2tdpy1+y7+G7bd36HE9SWb1/OHZ/eweWnXE7fRn39DqdEuPb0a7nvgvv4aMdHvLfqPb/DMSWAJZhSJERCePCMB6lfpT7RcdHsOrDL75CC0t8H/yY6Lpp6les5nViK3X6bV092eJIW1Vtwy8e38P0f3/sdjglylmBKmWrlqxHfPZ7fk3+3TjGzkK7p9PugH9v2biMuJo46x9XxO6QSpVxIOR5p9gg1wmoQFRvF3sN7/Q7JBDFLMKVQ6xNbM6rTKD7d+ClPLXoq9wZlyMivRvLJT5/w0hUv0Ta8rd/hlEi1KtRiWvQ0Nu3eRP8P+9tNJSZblmBKqVsibuH65tfz2MLHmPPzHL/DCQrzNs3jkQWP0OvsXgw+t8x0+uCJixpdxMhLR5KwPoFXvrZeJEzWLMGUUiLC2KvG0qxuM3on9GZL0pbcG5Vi2/Zuo1dCL06vfTpvXvNmmezEsqgNixxG1zO6cu/n97J482K/wzFByBJMKZbRKWZKWgoxcTFltlPMI2lH6B7fnQNHDpDQPYEqFYLvtzlKIhHhnS7v0LhGY7rHW6eY5liWYEq50+uczvgu4/lm2zfcPeduv8Pxxb1z72XJliW8fe3bnFn3TL/DKVWqh1UnPiaevw/+Ta+EXqSlp/kdkgkilmDKgOhm0Qw9byivffsaU9cU7Bc8S6q4tXG88s0r3NHmDnqc3cPvcEql/5zwH16/6nXm/zKfRxc8mnsDU2ZYgikjnr30WS5oeAEDZw5k/c71fodTLDb8tYH+M/tzXvh5vHD5C36HU6rd2OJGBrYcyNNfPc1HGz7yOxwTJCzBlBHlQ8szLXoalStUJio2iuSUZL9D8tT+lP1ExUYRVi6M2OhYKoRW8DukUu+1K1+jVf1W9JvRj027N/kdjgkClmDKkAbVGjAlagobdm1g0EeDSu3zC6rKrZ/cyrqd65jcbTINqzf0O6QyIaxcGPExzu8HxsTFcCj1kM8RGb9ZgiljOjTpwBPtn2DKmin877v/+R2OJ95Y/gbvr36f4e2Gc9kpl/kdTpnSpGYT3uv6Hit2rODOT+/0OxzjM0swZdD9F97P1addzdDZQ/lm6zd+h1Oklm1fxpDPhtCpaScevvhhv8Mpk64+7WoeuPAB3lrxFhMSJ/gdjvGRJZgyKERCmHjdRBpUa0BMXAx/HfjL75CKxK4Du4iOjeaEKifwftf3CRH7ePtlRPsRtG/cnls/uZXVf6z2OxzjE/sGllE1K9UkPiaeP/b/QZ/pfUr88wvpmk7fD/qyI3kH8THx1D6utt8hlWnlQsoxJWoKNcNqEhUbRdKhJL9DMj7wNMGISCcR2SAiG0Xk/iymNxKReSKyWkQWikh4wLQ0EUl0XzMDyie581wjIuNFpLxb3k5EkgLa2A35uYg4MYLXOr/GnJ/n8MSiJ/wOp1CeWvQUn278lFeueIVzG5zrdzgGqFelHrExsfyy+xf6z7ROMcsizxKMiIQCY4DOQDOgl4g0y1TtBWCiqjYHRgDPBEw7qKot3Ne1AeWTgDOAc4BKwMCAaV8GtBlRxKtUKt3c6mb6/acfI74YwWcbP/M7nAKZ+/NcHlv4GH3O6cOtrW/1OxwT4MKTLuS5y55j+vrpvLT0Jb/DMcXMyyOYNsBGVd2kqinAVKBLpjrNgPnu8IIsph9DVWepC/gWCM+tjcmeiPD6Va9z9vFn02d6HzYnbfY7pHzZkrSF3tN706xuM964+g3rxDIIDT1vKFFnRnHf5/fx5W9f+h2OKUbi1WGriEQDnVR1oDveF2irqrcH1JkMfKOqo0SkG5AA1FHVXSKSCiQCqcBIVZ2Raf7lgW+AIar6pYi0c9tvBbYDd6vq2iziGgQMAqhXr17E1KkF6zolOTmZKlWCr9PEgsa15cAWbl1xKycddxKjWoyiQkjRP5hY1NvsSPoR7kq8i18O/MLYVmM56biTgiKuolKa4tqfup9bV9zKwbSDvBnxJrUq1AqKuIpDaYyrffv2y1W1da4VVdWTFxANjAsY7wuMzlTnRGA6sBIYhZMcarjTGrh/TwZ+BU7J1PYt4JWA8WpAFXf4SuCn3GKMiIjQglqwYEGB23qpMHElrEtQhqODPxlcdAEFKOptduesO5XhaOya2ELNpzS+l14qaFyrf1+tlZ6spO3ebadH0o4UbVBa+raX1woTF7BM85AHyhUofeXNNiDwEepwt+woVd0OdAMQkSpAlKrucadtc/9uEpGFQEvgZ7fuY0Bd4JaAee0NGJ4lIv8TkTqqmq97cI8cOcLWrVs5dCjnp5CrV6/O+vXB16dXQeIKCwsjPDycbmd2Y1jkMF5c+iLnNzyf3uf09ijKwpu2ZhqvfvsqQ9oOIeasGL/DMXlwTr1zGHv1WG6YcQOPzH+EZy59JvdGpkTzMsF8B5wqIk1wEktP4F97LBGpA/ytqunAA8B4t7wmcEBVD7t1LgCec6cNBK4AOrrtMuZ1AvCHqqqItMG5vrQrv0Fv3bqVqlWr0rhx4xzP5+/bt4+qVavmd/aey29cqsquXbvYunUrTZo04ZmOz/DNtm+4+aObaXFCC5rVzXxfhv9++OsHBn40kMjwSJ677Dm/wzH50O8//Vi8eTEjF48ksmEk155+be6NTInl2UV+VU0FbgdmA+uBWFVdKyIjRCTjU9UO2CAiPwL1gIwfkD8TWCYiq3Au/o9U1XXutLFu3aWZbkeOBta4bV4FerqHcvly6NAhateuXWYuFosItWvXPnrEltEpZtUKVYmKjWLf4X0+R/hvySnJ/3RiGWOdWJZEozqPIqJ+BP0+6MfPf//sdzjGQ14ewaCqs4BZmcoeDRiOB+KzaLcE5zbkrOaZZcyqOhoYXZh4M5SV5JIh8/qeWPVEpkZPpePEjtz80c1MiZoSFNtEVbnl41tYv3M9c/rOIbya3UBYEoWVCyO+ezyt3mhFdFw0S/ovoVL5Sn6HZTxgT/KbLLVr3I6nOjzFtLXTGP1tkeTtQnt92etM/n4yI9qP4NKTL/U7HFMIjWs05r2u75H4eyJ3fHqH3+EYj1iCCTK7du2iRYsWtGjRghNOOIEGDRocHU9JScnTPG666SY2bNhQ6FjuveBerjntGobNGcbXW78u9PwK49tt33LXZ3dx5alX8uBFD/oaiykaV512FQ9d9BBvr3ybd1a+43c4xgOWYIrA0i1LeebLZ1i6ZWmh51W7dm0SExNJTEzk1ltvZejQoUfHK1RwrjeoKunp6dnO45133uH0008vdCwhEsKE6yYQXi2cmLgYdu7fWeh5FsSuA7uIiYuhQbUGvNf1PevEshR5vN3jdGzSkf+b9X8k/p7odzimiHl6Daaku+uzu7L90KelpREaGkrS4SRW/7GadE0nREJoXq851StWz3aeLU5owSudXsl3LBs3buTaa6+lZcuWrFy5krlz5/L444+zYsUKDh48SI8ePXj0Uefy1oUXXsjo0aM5++yzqVOnDrfeeiuffvopxx13HB9++CHHH398npdbs1JNEronEPl2JH2m9+HTPp8SGhKa7/gLKi09jT7T+/B78u8s7r+YWpWK/gE945/QkFAmR012rsfERrNs0DJqhNXwOyxTROxfwUJKOpREunu3dLqme9pr7A8//MDQoUNZt24dDRo0YOTIkSxbtoxVq1Yxd+5c1q1bd0ybpKQkLrnkElatWkVkZCTjx4/P93Jb1m/J6CtHM3fTXB7/4vGiWJU8e3LRk8z+eTavdnqV1ifm/uCwKXmOr3w8sTGx/Jb0Gzd9eJN1ilmK2BFMDnI60sh43mTplqV0nNiRlLQUKoRWYFK3SUQ2jPQknlNOOYXWrf/ZyU6ZMoW3336b1NRUtm/fzrp162jY8N8/D1ypUiU6d+4MQEREBF9+WbC+oAa0HMDiLYt5YtETRIZH0vnUzgVfkTyavXE2j3/xOH2b92VQxCDPl2f8c37D83n+sucZOnsoLyx5gXsuuMfvkEwRsARTSJENI5nXbx4Lf11Iu8btPEsuAJUrVz46/NNPPzFq1Ci+/fZbatSowfXXX59l7wMZ120AQkNDSU1NLdCyRYQxV45hxY4VXP/B9awYtIJGNRoVaF55sTlpM32m9+Gs489i7NVjg+I2aeOtIW2HsGTLEh6Y9wBtw9tycaOL/Q7JFJKdIisCkQ0jeeCiBzxNLpnt3buXqlWrUq1aNXbs2MHs2bM9X+Zx5Y8joXsCqempRMdFczj1sCfLSUlLoXtcd1LSUkjonsBx5Y/zZDkmuIgI464dxym1TqFHfA927Nvhd0imkCzBlFCtWrWiWbNmnHHGGfTr148LLrigWJbbtFZT3u3yLsu2L2Po7KGeLGPY7GF8s+0bxncZz2m1T/NkGSY4VatYjYTuCew9vJeeCT1JTS/YEbcJDnaKLIgNHz786HDTpk1JTPznjjYR4b333jumzb59+/jqq6+Oju/Zs+focM+ePenZs2eh4+p6ZlfuOf8enl/yPBc0vIA+zfsUep4Zpq6ZyujvRjP0vKFEN4susvmakuPs48/mjavfoO8HfXlo3kM8e9mzfodkCsiOYEyBPN3xaS5udDGDPh7E2j+P+dmdAlm3cx0DZw7kgoYX8OyltlMpy65vfj23tb6N55Y8x4wfZuTewAQlSzCmQMqFlGNq1NQi6xQzOSWZ6NhoKleozLToaZQPLV9EkZqS6uUrXubcE8/lhhk3sPHvjX6HYwrAEowpsPpV6zMtehob/97IgJkDCvz8gqpy80c3s2HXBqZETaFBtQZFHKkpiSqWq0hcTBzlQsoRHRvNwSMH/Q7J5JMlGFMolzS+hKc7Pk3cujhe/ebVAs1jzHdjmLpmKk+2f5IOTToUcYSmJGtUoxHvd32f1X+sZvCswX6HY/LJEowptHvOv4cup3fh7rl3s2TLkny1/Xrr1/x39n+5+rSrue/C+zyK0JRknU/tzMMXP8w7ie/w9oq3/Q7H5IMlGFNoIsK7171Lo+qN6B7XnT/3/5mndjv37yQmLobwauFMvG6idWJpsvXYJY9x2cmXMXjWYFbuWOl3OCaP7BsdZIqiu36A8ePH8/vvv3sY6b/VCKtBfPd4dh3cRe+E3qSlp+VYP6MTy537dxLfPZ6alWoWU6SmJAoNCWVSt0nUrVyX6Lho9hzak3sj4ztLMEVh6VJ45hnnbyHlpbv+vCjuBANOT9FjrhzDvF/m8djCx3KsO+KLEczdNJfXOr9Gq/qtiilCU5LVrVyX2OhYNidt5oYZNxztZNYEL3vQMid33QWJWXfXXyktDUJDISkJVq+G9HQICYHmzaF69t3106IFvJL/7voBJkyYwJgxY0hJSeH8889n9OjRpKenc9NNN5GYmIiq0q9fPxo1akRiYiI9evSgUqVKfPvtt/lKToXRv2V/Fm9ezFNfPkVkeCRXnXbVMXU+2/gZTyx6ghv+cwMDWw0slrhM6RDZMJIXL3+RIZ8N4fnFz9t1uyBnRzCFlZTkJBdw/iZ5013/mjVr+OCDD1iyZAmJiYmkpqYydepUli9fzl9//cX333/PmjVr6NWrFz169KBFixZMmzYt30c+RWH0laNpcUIL+n7Ql1/3/Pqvab/t+Y0+0/twTr1z+N9V/7NOLE2+3dHmDrqf1Z0H5z/Iwl8X+h2OyYEdweQkhyONg253/SxdCh07QkoKVKgAkyZBZNF3evn555/z3XffHe2u/+DBgzRs2JArrriCDRs2cOedd3LVVVcR6cGy86tS+UrEx8QT8WYE0bHRfNX/K8LKhZGSnkJMXAyp6anEx8RbJ5amQESEcdeMY/Ufq+kZ35OVt6ykftX6fodlsuDpEYyIdBKRDSKyUUTuz2J6IxGZJyKrRWShiIQHTEsTkUT3NTOgvImIfOPOc5qIVHDLK7rjG93pjb1ct6MiI2HePHjiCeevRzt4VaV///5Hr8ds2LCBRx55hNq1a7N69WouuugixowZw5AhQzxZfn6dUusUJlw3geU7lnPXZ3cB8L+f/8d327/jnS7vcGrtU32O0JRkVStWJT4mnn0p++gR34MjaUf8DslkwbMEIyKhwBigM9AM6CUizTJVewGYqKrNgRHAMwHTDqpqC/d1bUD5s8DLqtoU2A0McMsHALvd8pfdesUjMhIeeMCz5AJw6aWXEhsby19//QU4d5tt3ryZnTt3oqrExMQwYsQIVq1aBUDVqlXZt69w3bcUVpczunDfBffxxvI3uOK9K/hw+4f0OrsX3c7s5mtcpnQ46/izeOuat/hy85fcOONGJm2exNIthb/RpixYumVpsWwvL0+RtQE2quomABGZCnQBAn/XtxnwX3d4AZBjr3binLDvAPR2iyYAw4HX3XkPd8vjgdEiIlpKfn/1nHPO4bHHHuPSSy8lPT2d8uXLM3bsWEJDQxkwwOmmRUR47DHn7q2bbrqJgQMHFvtF/sye7PAkc36ew5xNcwCY8cMMlm5ZWqy/nWNKr97n9Gb6+ulMXjMZgLd/eZtGNRoF1enX/fv3U3ld5dwrFpMDRw7w257fAJi0ZRLz+s3z7PvoZYJpAGwJGN8KtM1UZxXQDRgFdAWqikhtVd0FhInIMiAVGKmqM4DawB5VTQ2YZ0bHVUeXp6qpIpLk1v8rcIEiMggYBFCvXj0WLlz4r4CqV6+ep//809LSPD9CGDZsGMDR5VxzzTVcc801x9RbtGjRMXF17tz56E8lHz58mMOHc/5xsEOHDh2zLYpKswrNWInzcNzh1MOMXzCewyd582NlBZGcnOzZuheGxZU31Q5WOzqsKJIi1C1X18eI/q1mhZqU0+C53L05ZTOK83+3199Hv9f6bpwjjRuBRcA2IOMJvUaquk1ETgbmi8j3QKFv0VLVN4E3AVq3bq3t2rX71/T169c7F+9zsS/jIn+QKWhcYWFhtGzZ0oOIoOIpFZk+cTqHUw9TsVxF+rfvH1RHMAsXLiTz5yAYWFx5U3FLRaZOnHr08zWp5yT7fOVg6ZaldJzYsVi+j15e5N8GNAwYD3fLjlLV7araTVVbAg+5ZXvcv9vcv5uAhUBLYBdQQ0TKZTHPo8tzp1d36xufRTaMZF6/efRv0t/Tw3FTNtnnK3+Kc3t5eQTzHXCqiDTB2fn35J9rJwCISB3gb1VNBx4AxrvlNYEDqnrYrXMB8JyqqogsAKKBqcANwIfu7Ga640vd6fMLev0l43pGWVEcl6kiG0Zy+KTD9uU3nrDPV/4U1/by7AjGvU5yOzAbWA/EqupaERkhIhl3hbUDNojIj0A94Cm3/ExgmYiswrn4P1JVM24OuA/4r4hsxLnGktG96ttAbbf8v8Axt0XnRVhYGLt27SqWnW4wUFV27dpFWFiY36EYY0oZT6/BqOosYFamskcDhuNx7vjK3G4JcE4289yEc4da5vJDQEwhQyY8PJytW7eyc+fOHOsdOnQoKHfKBYkrLCyM8PDw3CsaY0w++H2RP+iUL1+eJk2a5Fpv4cKFnl0UL4xgjcsYU/ZYX/vafiwAAAfkSURBVGTGGGM8YQnGGGOMJyzBGGOM8YSUlbulsiIiO4HfCti8Dpl6CQgSwRoXBG9sFlf+WFz5UxrjaqSquXaXUKYTTGGIyDJVbe13HJkFa1wQvLFZXPljceVPWY7LTpEZY4zxhCUYY4wxnrAEU3Bv+h1ANoI1Lgje2Cyu/LG48qfMxmXXYIwxxnjCjmCMMcZ4whKMMcYYT1iCyScRaSgiC0RknYisFZEhfscEICJhIvKtiKxy43rc75gCiUioiKwUkY/9jiWDiPwqIt+LSKL766lBQURqiEi8iPwgIutFxPc+6EXkdHc7Zbz2ishdfscFICJD3c/8GhGZIiJB0QutyP+3d/+xVtd1HMefL8EakKP8kTOhaMtyxAIxGYUyEnBqDMu5qLTZj5U1U9ssh67Nf/oD14/l1mo1K2kizQSKVUPI8ke0gLghPyJ1iTMWCFPnLxZcLq/++LwPnHu4XbqXc/Y5674f2935fr/3nM/3fc927vt8P9/v9/3WLRHTjtrvlaSfSNonaXvTttMlrZP0dDy+pd37zQQzdIeBW21PBmYCN0qaXDkmgIPApbanAtOAyyXNrBxTs1sobRu6zYdsT+uy+xTuBtbYPh+YShe8b7afjPdpGnAhcABYVTksJJ0L3Ay83/YUYBSl91RVkqYAn6dUfp8KLJD0rooh3Qtc3rJtMfCw7fOAhxlmi5PBZIIZItt7bPfE8quUD/+5daMCF6/F6qnx0xVXcEiaAHwYuKd2LN1O0nhgNtHnyPahRpfXLjIX+Ift4VbBaLfRwJjoZDsW+FfleKD0tNpg+0D0xnoUuLpWMLYfA15s2XwVsDSWlwIfafd+M8GcBEmTKK2cN9SNpIhpqC3APmCd7a6IC/gucBtwpHYgLQyslbRZ0hdqBxPeCewHfhpTivdIGlc7qBYfB5bXDgKOtlb/FvAcsAd42fbaulEBsB24RNIZksYCV9K/hXw3ONv2nljeS2n62FaZYIZJ0puAFcBXbL9SOx4A230xhTEBmBGH6VVJWgDss725diwDuNj2dOAKylTn7NoBUb6NTwd+YPsC4HU6MHUxXJLeACwEflE7FjjaXv0qSmJ+GzBO0nV1owLbO4G7gLXAGmAL0Fc1qEFEe/m2z3hkghkGSadSkssy2ytrx9MqplT+wPFzrjXMAhZKehb4OXCppPvqhlTEt19s76OcTziuU2oFu4HdTUefD1ISTre4Auix/XztQMI8YJft/bZ7gZXAByvHBIDtH9u+0PZs4CXgqdoxtXhe0jkA8biv3TvIBDNEkkSZH99p+zu142mQdJakN8fyGGA+8Pe6UYHt221PsD2JMrXye9vVv2FKGifptMYycBllWqMq23uBf0p6T2yaC/ytYkitPkGXTI+F54CZksbGZ3MuXXBRBICkt8bj2ynnX+6vG9FxVgPXx/L1wK/avYNsmTx0s4BPAdvifAfAHbZ/WzEmgHOApZJGUb44PGC7ay4J7kJnA6vK/yRGA/fbXlM3pKNuApbFdNQzwGcqxwMcTcTzgRtqx9Jge4OkB4EeyhWef6V7SrOskHQG0AvcWPNiDUnLgTnAmZJ2A3cCS4AHJH2O0rbkY23fb5aKSSml1Ak5RZZSSqkjMsGklFLqiEwwKaWUOiITTEoppY7IBJNSSqkjMsGkEUfSa/E4SdIn2zz2HS3rf2rn+O0m6dOSvlc7jvT/KRNMGskmAUNKMFFQcTD9EoztrrirvFPivquUBpQJJo1kSygFCbdET5FRkr4paZOkrZJuAJA0R9LjklYTd9VL+mUUydzRKJQpaQmlqu8WSctiW+NoSTH29uhBs6hp7Eea+r8sizvS+4nn3KXS8+cpSZfE9n5HIJJ+LWlOY9+xzx2SfidpRozzjKSFTcNPjO1PS7qzaazrYn9bJP2wkUxi3G9LegKo3qsmda+8kz+NZIuBr9peABCJ4mXbF0l6I7BeUqMy73Rgiu1dsf5Z2y9GWZ5NklbYXizpy1FwtNXVlD49U4Ez4zWPxe8uAN5LKTO/nlIt4o8DjDHa9gxJV1LuxJ53gr9vHKU0z9ckrQK+QbkTfzKlPPvqeN4MYAqlx8smSb+hFNlcBMyy3Svp+8C1wM9i3A22bz3B/tMIlwkmpWMuA94n6ZpYHw+cBxwCNjYlF4CbJX00lifG814YZOyLgeW2+yhFBh8FLgJeibF3A0T5oUkMnGAahVU3x3NO5BClki/ANuBgJIttLa9fZ/uF2P/KiPUwpbHYpjigGsOxYoh9lGKvKQ0qE0xKxwi4yfZD/TaWKafXW9bnAR+wfUDSI8DJtOk92LTcx3//XB4c4DmH6T/V3RxHr4/VgjrSeL3tIy3nklrrRZnyXiy1ffsAcfw7EmVKg8pzMGkkexU4rWn9IeBL0Y4BSe/WwM2+xgMvRXI5n9I6u6G38foWjwOL4jzPWZSulRvb8Dc8C0yTdIqkiQyv5cB8lf7sYyhdDddTWuhe01QR+HRJ72hDvGkEySOYNJJtBfriZPW9wN2UqaOeONG+n4HbyK4BvihpJ/Ak8Oem3/0I2Cqpx/a1TdtXUU6IP0E5QrjN9t5IUCdjPbCLcvHBTkpV4aHaSJnymgDcZ/svAJK+Tun4eQpREZhSdTel/0lWU04ppdQROUWWUkqpIzLBpJRS6ohMMCmllDoiE0xKKaWOyASTUkqpIzLBpJRS6ohMMCmllDriP9uCOO0jkdEaAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 91,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"transfer_learn\"></a>\n",
+    "# Transfer learning\n",
+    "\n",
+    "<a id=\"load2\"></a>\n",
+    "# 1. Define and load model architecture with some layers frozen\n",
+    "Here we want to start with initial weights from a pre-trained model rather than training from scratch.  We also want to use a model architecture with the earlier feature layer(s) frozen to save on training time.  The example below is somewhat contrived but gives you the idea of the steps.\n",
+    "\n",
+    "First define a model architecture with the 1st hidden layer frozen:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 92,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_4\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_12 (Dense)             (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_13 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_14 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 143\n",
+      "Non-trainable params: 50\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_transfer = Sequential()\n",
+    "model_transfer.add(Dense(10, activation='relu', input_shape=(4,), trainable=False))\n",
+    "model_transfer.add(Dense(10, activation='relu'))\n",
+    "model_transfer.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_transfer.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 93,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_12\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_13\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_14\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_4\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 93,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_transfer.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load transfer model into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 94,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': False, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>A transfer model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1341 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Maria', u'A transfer model')]"
+      ]
+     },
+     "execution_count": 94,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,                      \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'A transfer model'     -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train2\"></a>\n",
+    "# 2. Train transfer model\n",
+    "\n",
+    "Fetch the weights from a previous MADlib run.  (Normally these would be downloaded from a source that trained the same model architecture on a related dataset.)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 95,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 95,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 2;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train the model using the transfer model and the pre-trained weights:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 96,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 96,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                2,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2                     -- metrics compute frequency\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 97,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>2</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-05 00:32:57.328345</td>\n",
+       "        <td>2021-03-05 00:32:58.501111</td>\n",
+       "        <td>[0.633425951004028, 0.770482063293457, 0.901815891265869, 1.0358898639679, 1.17268896102905]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.120888665318</td>\n",
+       "        <td>[0.949999988079071, 0.949999988079071, 0.949999988079071, 0.949999988079071, 0.949999988079071]</td>\n",
+       "        <td>[0.141591802239418, 0.135162934660912, 0.129805147647858, 0.125084936618805, 0.120888665318489]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.117368154228</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.151054725050926, 0.138582393527031, 0.133960351347923, 0.12214257568121, 0.117368154227734]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 2, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 5, 0, 32, 57, 328345), datetime.datetime(2021, 3, 5, 0, 32, 58, 501111), [0.633425951004028, 0.770482063293457, 0.901815891265869, 1.0358898639679, 1.17268896102905], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.120888665318489, [0.949999988079071, 0.949999988079071, 0.949999988079071, 0.949999988079071, 0.949999988079071], [0.141591802239418, 0.135162934660912, 0.129805147647858, 0.125084936618805, 0.120888665318489], 0.966666638851166, 0.117368154227734, [0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.151054725050926, 0.138582393527031, 0.133960351347923, 0.12214257568121, 0.117368154227734], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 97,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Note loss picks up from where the last training left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 98,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 99,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-cnn-v3-checkpoint.ipynb
similarity index 98%
copy from community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb
copy to community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-cnn-v3-checkpoint.ipynb
index 987ff4b..f7053ef 100644
--- a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-cnn-v3-checkpoint.ipynb
@@ -59,46 +59,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {
     "scrolled": true
    },
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 2,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -108,7 +83,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -126,15 +101,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -155,32 +130,17 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 5,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "from __future__ import print_function\n",
-    "import keras\n",
-    "from keras.datasets import cifar10\n",
-    "from keras.preprocessing.image import ImageDataGenerator\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense, Dropout, Activation, Flatten\n",
-    "from keras.layers import Conv2D, MaxPooling2D\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import cifar10\n",
+    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
     "import os\n",
     "\n",
     "batch_size = 32\n",
@@ -197,7 +157,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-inference-v1-checkpoint.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-inference-v1-checkpoint.ipynb
new file mode 100644
index 0000000..eb3daa2
--- /dev/null
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-cifar10-inference-v1-checkpoint.ipynb
@@ -0,0 +1,718 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Inference for CIFAR-10 dataset using predict BYOM\n",
+    "The predict BYOM function allows you to do inference using models that have not been trained with MADlib, but rather imported or created elsewhere. It was added in MADlib 1.17.\n",
+    "\n",
+    "In this workbook we train a model in Python using\n",
+    "https://keras.io/examples/cifar10_cnn/\n",
+    "and run inference on the validation set.\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#setup\">1. Setup</a>\n",
+    "\n",
+    "<a href=\"#train_model\">2. Train model in Python</a>\n",
+    "\n",
+    "<a href=\"#load_model\">3. Load model into table</a>\n",
+    "\n",
+    "<a href=\"#load_images\">4. Get validation data set and load into table</a>\n",
+    "\n",
+    "<a href=\"#inference\">5. Inference</a>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"setup\"></a>\n",
+    "# 1. Setup"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train_model\"></a>\n",
+    "# 2. Train model in Python\n",
+    "\n",
+    "Train a model in Python using https://keras.io/examples/cifar10_cnn/\n",
+    "\n",
+    "Define model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "x_train shape: (50000, 32, 32, 3)\n",
+      "50000 train samples\n",
+      "10000 test samples\n",
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n"
+     ]
+    }
+   ],
+   "source": [
+    "from __future__ import print_function\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import cifar10\n",
+    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
+    "import os\n",
+    "\n",
+    "batch_size = 32\n",
+    "num_classes = 10\n",
+    "epochs = 2\n",
+    "data_augmentation = True\n",
+    "num_predictions = 20\n",
+    "#save_dir = os.path.join(os.getcwd(), 'saved_models')\n",
+    "#model_name = 'keras_cifar10_trained_model.h5'\n",
+    "\n",
+    "# The data, split between train and test sets:\n",
+    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
+    "print('x_train shape:', x_train.shape)\n",
+    "print(x_train.shape[0], 'train samples')\n",
+    "print(x_test.shape[0], 'test samples')\n",
+    "\n",
+    "# Convert class vectors to binary class matrices.\n",
+    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
+    "y_test = keras.utils.to_categorical(y_test, num_classes)\n",
+    "\n",
+    "model = Sequential()\n",
+    "model.add(Conv2D(32, (3, 3), padding='same',\n",
+    "                 input_shape=x_train.shape[1:]))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Conv2D(32, (3, 3)))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
+    "model.add(Dropout(0.25))\n",
+    "\n",
+    "model.add(Conv2D(64, (3, 3), padding='same'))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Conv2D(64, (3, 3)))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
+    "model.add(Dropout(0.25))\n",
+    "\n",
+    "model.add(Flatten())\n",
+    "model.add(Dense(512))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Dropout(0.5))\n",
+    "model.add(Dense(num_classes))\n",
+    "model.add(Activation('softmax'))\n",
+    "\n",
+    "# initiate RMSprop optimizer\n",
+    "opt = keras.optimizers.RMSprop(lr=0.0001, decay=1e-6)\n",
+    "\n",
+    "# Let's train the model using RMSprop\n",
+    "model.compile(loss='categorical_crossentropy',\n",
+    "              optimizer=opt,\n",
+    "              metrics=['accuracy']);"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"batch_input_shape\": [null, 32, 32, 3], \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_1\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d\", \"dtype\": \"float32\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.25, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_2\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_3\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_1\", \"dtype\": \"float32\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout_1\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.25, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Flatten\", \"config\": {\"dtype\": \"float32\", \"trainable\": true, \"name\": \"flatten\", \"data_format\": \"channels_last\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 512, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_4\"}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout_2\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.5, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"name\": \"activation_5\"}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model.to_json()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Using real-time data augmentation.\n",
+      "Epoch 1/2\n",
+      "1563/1563 [==============================] - 107s 69ms/step - loss: 1.8637 - acc: 0.3142 - val_loss: 1.6037 - val_acc: 0.4154\n",
+      "Epoch 2/2\n",
+      "1563/1563 [==============================] - 116s 74ms/step - loss: 1.5880 - acc: 0.4174 - val_loss: 1.4362 - val_acc: 0.4754\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<tensorflow.python.keras.callbacks.History at 0x14dfc98d0>"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "10000/10000 [==============================] - 7s 698us/sample - loss: 1.4365 - acc: 0.4754\n",
+      "Test loss: 1.4364811393737793\n",
+      "Test accuracy: 0.4754\n"
+     ]
+    }
+   ],
+   "source": [
+    "x_train = x_train.astype('float32')\n",
+    "x_test = x_test.astype('float32')\n",
+    "x_train /= 255\n",
+    "x_test /= 255\n",
+    "\n",
+    "if not data_augmentation:\n",
+    "    print('Not using data augmentation.')\n",
+    "    model.fit(x_train, y_train,\n",
+    "              batch_size=batch_size,\n",
+    "              epochs=epochs,\n",
+    "              validation_data=(x_test, y_test),\n",
+    "              shuffle=True)\n",
+    "else:\n",
+    "    print('Using real-time data augmentation.')\n",
+    "    # This will do preprocessing and realtime data augmentation:\n",
+    "    datagen = ImageDataGenerator(\n",
+    "        featurewise_center=False,  # set input mean to 0 over the dataset\n",
+    "        samplewise_center=False,  # set each sample mean to 0\n",
+    "        featurewise_std_normalization=False,  # divide inputs by std of the dataset\n",
+    "        samplewise_std_normalization=False,  # divide each input by its std\n",
+    "        zca_whitening=False,  # apply ZCA whitening\n",
+    "        zca_epsilon=1e-06,  # epsilon for ZCA whitening\n",
+    "        rotation_range=0,  # randomly rotate images in the range (degrees, 0 to 180)\n",
+    "        # randomly shift images horizontally (fraction of total width)\n",
+    "        width_shift_range=0.1,\n",
+    "        # randomly shift images vertically (fraction of total height)\n",
+    "        height_shift_range=0.1,\n",
+    "        shear_range=0.,  # set range for random shear\n",
+    "        zoom_range=0.,  # set range for random zoom\n",
+    "        channel_shift_range=0.,  # set range for random channel shifts\n",
+    "        # set mode for filling points outside the input boundaries\n",
+    "        fill_mode='nearest',\n",
+    "        cval=0.,  # value used for fill_mode = \"constant\"\n",
+    "        horizontal_flip=True,  # randomly flip images\n",
+    "        vertical_flip=False,  # randomly flip images\n",
+    "        # set rescaling factor (applied before any other transformation)\n",
+    "        rescale=None,\n",
+    "        # set function that will be applied on each input\n",
+    "        preprocessing_function=None,\n",
+    "        # image data format, either \"channels_first\" or \"channels_last\"\n",
+    "        data_format=None,\n",
+    "        # fraction of images reserved for validation (strictly between 0 and 1)\n",
+    "        validation_split=0.0)\n",
+    "\n",
+    "    # Compute quantities required for feature-wise normalization\n",
+    "    # (std, mean, and principal components if ZCA whitening is applied).\n",
+    "    datagen.fit(x_train)\n",
+    "\n",
+    "    # Fit the model on the batches generated by datagen.flow().\n",
+    "    model.fit_generator(datagen.flow(x_train, y_train,\n",
+    "                                     batch_size=batch_size),\n",
+    "                        epochs=epochs,\n",
+    "                        validation_data=(x_test, y_test),\n",
+    "                        workers=1)\n",
+    "\n",
+    "# Save model and weights\n",
+    "#if not os.path.isdir(save_dir):\n",
+    "#    os.makedirs(save_dir)\n",
+    "#model_path = os.path.join(save_dir, model_name)\n",
+    "#model.save(model_path)\n",
+    "#print('Saved trained model at %s ' % model_path)\n",
+    "\n",
+    "# Score trained model.\n",
+    "scores = model.evaluate(x_test, y_test, verbose=1)\n",
+    "print('Test loss:', scores[0])\n",
+    "print('Test accuracy:', scores[1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model\"></a>\n",
+    "# 3.  Load model into table\n",
+    "\n",
+    "Load the model architecture and weights into the model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>CIFAR10 model</td>\n",
+       "        <td>CNN model with weights trained on CIFAR10.</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'CIFAR10 model', u'CNN model with weights trained on CIFAR10.')]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "#conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "from keras.layers import *\n",
+    "from keras import Sequential\n",
+    "import numpy as np\n",
+    "\n",
+    "# get weights, flatten and serialize\n",
+    "weights = model.get_weights()\n",
+    "weights_flat = [w.flatten() for w in weights]\n",
+    "weights1d =  np.concatenate(weights_flat).ravel()\n",
+    "weights_bytea = p2.Binary(weights1d.tostring())\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS model_arch_library_cifar10;\n",
+    "query = \"SELECT madlib.load_keras_model('model_arch_library_cifar10', %s,%s,%s,%s)\"\n",
+    "cur.execute(query,[model.to_json(), weights_bytea, \"CIFAR10 model\", \"CNN model with weights trained on CIFAR10.\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check weights loaded OK\n",
+    "%sql SELECT model_id, name, description FROM model_arch_library_cifar10;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_images\"></a>\n",
+    "# 4. Get validation data set and load into table\n",
+    "\n",
+    "First set up image loader using the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import sys\n",
+    "import os\n",
+    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
+    "sys.path.append(madlib_site_dir)\n",
+    "\n",
+    "# Import image loader module\n",
+    "from madlib_image_loader import ImageLoader, DbCredentials\n",
+    "\n",
+    "# Specify database credentials, for connecting to db\n",
+    "#db_creds = DbCredentials(user='fmcquillan',\n",
+    "#                         host='localhost',\n",
+    "#                         port='5432',\n",
+    "#                         password='')\n",
+    "\n",
+    "# Specify database credentials, for connecting to db\n",
+    "db_creds = DbCredentials(user='gpadmin', \n",
+    "                         db_name='madlib',\n",
+    "                         host='localhost',\n",
+    "                         port='8000',\n",
+    "                         password='')\n",
+    "\n",
+    "# Initialize ImageLoader (increase num_workers to run faster)\n",
+    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Next load CIFAR-10 data from Keras consisting of 50,000 32x32 color training images, labeled over 10 categories, and 10,000 test images."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "MainProcess: Connected to madlib db.\n",
+      "Executing: CREATE TABLE cifar_10_test_data (id SERIAL, x REAL[], y TEXT)\n",
+      "CREATE TABLE\n",
+      "Created table cifar_10_test_data in madlib db\n",
+      "Spawning 5 workers...\n",
+      "Initializing PoolWorker-1 [pid 95042]\n",
+      "PoolWorker-1: Created temporary directory /tmp/madlib_dTZhEGBDFE\n",
+      "Initializing PoolWorker-2 [pid 95043]\n",
+      "PoolWorker-2: Created temporary directory /tmp/madlib_ctWjbhcjwz\n",
+      "Initializing PoolWorker-3 [pid 95044]\n",
+      "PoolWorker-3: Created temporary directory /tmp/madlib_nx9VuMScrX\n",
+      "Initializing PoolWorker-4 [pid 95045]\n",
+      "PoolWorker-4: Created temporary directory /tmp/madlib_thkphNCw4r\n",
+      "Initializing PoolWorker-5 [pid 95046]\n",
+      "PoolWorker-5: Created temporary directory /tmp/madlib_037luEXgEL\n",
+      "PoolWorker-2: Connected to madlib db.\n",
+      "PoolWorker-3: Connected to madlib db.\n",
+      "PoolWorker-1: Connected to madlib db.\n",
+      "PoolWorker-5: Connected to madlib db.\n",
+      "PoolWorker-4: Connected to madlib db.\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_nx9VuMScrX/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_dTZhEGBDFE/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_ctWjbhcjwz/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_037luEXgEL/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_thkphNCw4r/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-3: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_nx9VuMScrX/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-1: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_dTZhEGBDFE/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-2: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-4: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-5: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_ctWjbhcjwz/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_thkphNCw4r/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_037luEXgEL/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-3: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-2: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-4: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-5: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Removed temporary directory /tmp/madlib_dTZhEGBDFE\n",
+      "PoolWorker-2: Removed temporary directory /tmp/madlib_ctWjbhcjwz\n",
+      "PoolWorker-3: Removed temporary directory /tmp/madlib_nx9VuMScrX\n",
+      "PoolWorker-5: Removed temporary directory /tmp/madlib_037luEXgEL\n",
+      "PoolWorker-4: Removed temporary directory /tmp/madlib_thkphNCw4r\n",
+      "Done!  Loaded 10000 images in 108.267487049s\n",
+      "5 workers terminated.\n"
+     ]
+    }
+   ],
+   "source": [
+    "from keras.datasets import cifar10\n",
+    "\n",
+    "# Load dataset into np array\n",
+    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS cifar_10_test_data;\n",
+    "\n",
+    "# Save images to temporary directories and load into database\n",
+    "#iloader.load_dataset_from_np(x_train, y_train, 'cifar_10_train_data', append=False)\n",
+    "iloader.load_dataset_from_np(x_test, y_test, 'cifar_10_test_data', append=False)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"inference\"></a>\n",
+    "# 5. Inference"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "ename": "InternalError",
+     "evalue": "(psycopg2.errors.InternalError_) plpy.Error: Unable to get number of classes from model architecture. (plpython.c:5038)\nCONTEXT:  Traceback (most recent call last):\n  PL/Python function \"madlib_keras_predict_byom\", line 23, in <module>\n    madlib_keras_predict.PredictBYOM(**globals())\n  PL/Python function \"madlib_keras_predict_byom\", line 42, in wrapper\n  PL/Python function \"madlib_keras_predict_byom\", line 314, in __init__\n  PL/Python function \"madlib_keras_predict_byom\", line 326, in validate_and_set_defaults\n  PL/Python function \"madlib_keras_predict_byom\", line 207, in set_default_class_values\n  PL/Python function \"madlib_keras_predict_byom\", line 75, in get_num_classes\nPL/Python function \"madlib_keras_predict_byom\"\n\n[SQL: SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n                                         1,                            -- model arch id\n                                        'cifar_10_test_data',          -- test_table\n                                        'id',                          -- id column\n                                        'x',                           -- independent var\n                                        'cifar10_predict_byom',        -- output table\n                                        'response',                    -- prediction type\n                                         FALSE,                        -- use gpus\n                                         NULL,                         -- class values\n                                         255.0                         -- normalizing const\n                                   );]\n(Background on this error at: http://sqlalche.me/e/2j85)",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mInternalError\u001b[0m                             Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-11-d7da0ccca3f1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'sql'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34mu''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34mu\"DROP TABLE IF EXISTS cifar10_predict_byom;\\n\\nSELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\\n                                         1,                            -- model arch id\\n                                        'cifar_10_test_data',          -- test_table\\n                                        'id',                          -- id column\\n                                        'x',                           -- independent var\\n                                        'cifar10_predict_byom',        -- output table\\n                                        'response',                    -- prediction type\\n                                         FALSE,                        -- use gpus\\n                                         NULL,                         -- class values\\n                                         255.0                         -- normalizing const\\n                                   );\\nSELECT * FROM cifar10_predict_byom ORDER BY id LIMIT 10;\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[1;32m   2115\u001b[0m             \u001b[0mmagic_arg_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvar_expand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstack_depth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2116\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2117\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2118\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m</Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/decorator.pyc:decorator-gen-124>\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/magic.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    187\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m         \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    190\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m</Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/decorator.pyc:decorator-gen-123>\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/magic.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    187\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m         \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    190\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sql/magic.pyc\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n\u001b[1;32m    135\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msql\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparsed\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'sql'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muser_ns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumn_local_vars\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sql/run.pyc\u001b[0m in \u001b[0;36mrun\u001b[0;34m(conn, sql, config, user_namespace)\u001b[0m\n\u001b[1;32m    361\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    362\u001b[0m                 \u001b[0mtxt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msqlalchemy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msql\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 363\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtxt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muser_namespace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    364\u001b[0m             \u001b[0m_commit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    365\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeedback\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, object_, *multiparams, **params)\u001b[0m\n\u001b[1;32m    980\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mObjectNotExecutableError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    981\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 982\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    983\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    984\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_execute_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/sql/elements.pyc\u001b[0m in \u001b[0;36m_execute_on_connection\u001b[0;34m(self, connection, multiparams, params)\u001b[0m\n\u001b[1;32m    285\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_execute_on_connection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    286\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msupports_execution\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_execute_clauseelement\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    288\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    289\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mObjectNotExecutableError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_clauseelement\u001b[0;34m(self, elem, multiparams, params)\u001b[0m\n\u001b[1;32m   1099\u001b[0m             \u001b[0mdistilled_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1100\u001b[0m             \u001b[0mcompiled_sql\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1101\u001b[0;31m             \u001b[0mdistilled_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1102\u001b[0m         )\n\u001b[1;32m   1103\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_has_events\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_has_events\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m   1248\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1249\u001b[0m             self._handle_dbapi_exception(\n\u001b[0;32m-> 1250\u001b[0;31m                 \u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1251\u001b[0m             )\n\u001b[1;32m   1252\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_handle_dbapi_exception\u001b[0;34m(self, e, statement, parameters, cursor, context)\u001b[0m\n\u001b[1;32m   1474\u001b[0m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from_cause\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnewraise\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1475\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mshould_wrap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1476\u001b[0;31m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from_cause\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msqlalchemy_exception\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1477\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1478\u001b[0m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/util/compat.pyc\u001b[0m in \u001b[0;36mraise_from_cause\u001b[0;34m(exception, exc_info)\u001b[0m\n\u001b[1;32m    396\u001b[0m     \u001b[0mexc_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_tb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    397\u001b[0m     \u001b[0mcause\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexc_value\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mexc_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mexception\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 398\u001b[0;31m     \u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexception\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexception\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexc_tb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcause\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcause\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    399\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    400\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m   1244\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mevt_handled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1245\u001b[0m                     self.dialect.do_execute(\n\u001b[0;32m-> 1246\u001b[0;31m                         \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1247\u001b[0m                     )\n\u001b[1;32m   1248\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/default.pyc\u001b[0m in \u001b[0;36mdo_execute\u001b[0;34m(self, cursor, statement, parameters, context)\u001b[0m\n\u001b[1;32m    579\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    580\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mdo_execute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 581\u001b[0;31m         \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    582\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    583\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mdo_execute_no_params\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mInternalError\u001b[0m: (psycopg2.errors.InternalError_) plpy.Error: Unable to get number of classes from model architecture. (plpython.c:5038)\nCONTEXT:  Traceback (most recent call last):\n  PL/Python function \"madlib_keras_predict_byom\", line 23, in <module>\n    madlib_keras_predict.PredictBYOM(**globals())\n  PL/Python function \"madlib_keras_predict_byom\", line 42, in wrapper\n  PL/Python function \"madlib_keras_predict_byom\", line 314, in __init__\n  PL/Python function \"madlib_keras_predict_byom\", line 326, in validate_and_set_defaults\n  PL/Python function \"madlib_keras_predict_byom\", line 207, in set_default_class_values\n  PL/Python function \"madlib_keras_predict_byom\", line 75, in get_num_classes\nPL/Python function \"madlib_keras_predict_byom\"\n\n[SQL: SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n                                         1,                            -- model arch id\n                                        'cifar_10_test_data',          -- test_table\n                                        'id',                          -- id column\n                                        'x',                           -- independent var\n                                        'cifar10_predict_byom',        -- output table\n                                        'response',                    -- prediction type\n                                         FALSE,                        -- use gpus\n                                         NULL,                         -- class values\n                                         255.0                         -- normalizing const\n                                   );]\n(Background on this error at: http://sqlalche.me/e/2j85)"
+     ]
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS cifar10_predict_byom;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n",
+    "                                         1,                            -- model arch id\n",
+    "                                        'cifar_10_test_data',          -- test_table\n",
+    "                                        'id',                          -- id column\n",
+    "                                        'x',                           -- independent var\n",
+    "                                        'cifar10_predict_byom',        -- output table\n",
+    "                                        'response',                    -- prediction type\n",
+    "                                         FALSE,                        -- use gpus\n",
+    "                                         NULL,                         -- class values\n",
+    "                                         255.0                         -- normalizing const\n",
+    "                                   );\n",
+    "SELECT * FROM cifar10_predict_byom ORDER BY id LIMIT 10;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Number of missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2551</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2551L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM cifar10_predict_byom JOIN cifar_10_test_data USING (id)\n",
+    "WHERE cifar10_predict_byom.estimated_dependent_var != cifar_10_test_data.y;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Predict accuracy. From https://keras.io/examples/cifar10_cnn/ accuracy claim is 75% on validation set after 25 epochs.  From run above test accuracy: 0.7449.  MADlib predict BYOM accuracy matches:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74.49</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('74.49'),)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100.0/10000.0, 2) as test_accuracy_percent from\n",
+    "    (select cifar_10_test_data.y as actual, cifar10_predict_byom.estimated_dependent_var as estimated\n",
+    "     from cifar10_predict_byom inner join cifar_10_test_data\n",
+    "     on cifar_10_test_data.id=cifar10_predict_byom.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-imagenet-inference-v1-checkpoint.ipynb
similarity index 89%
copy from community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb
copy to community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-imagenet-inference-v1-checkpoint.ipynb
index 968ea88..d3aa1f5 100644
--- a/community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-imagenet-inference-v1-checkpoint.ipynb
@@ -40,17 +40,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
-     "name": "stderr",
+     "name": "stdout",
      "output_type": "stream",
      "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
      ]
     }
    ],
@@ -60,24 +58,10 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 8,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -87,7 +71,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -105,15 +89,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-10-g205bdba, cmake configuration time: Mon Aug 26 16:15:40 UTC 2019, build type: release, build system: Linux-3.10.0-957.21.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-10-g205bdba, cmake configuration time: Mon Aug 26 16:15:40 UTC 2019, build type: release, build system: Linux-3.10.0-957.21.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -135,7 +119,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -151,7 +135,7 @@
        "[]"
       ]
      },
-     "execution_count": 19,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -176,7 +160,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -208,7 +192,7 @@
        "[(1, u'VGG16', u'VGG16 model with weights pre-trained on ImageNet.')]"
       ]
      },
-     "execution_count": 20,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -261,7 +245,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -283,23 +267,23 @@
        "        <th>description</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>VGG16</td>\n",
-       "        <td>VGG16 model with weights pre-trained on ImageNet.</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>ResNet50</td>\n",
        "        <td>ResNet50 model with weights pre-trained on ImageNet.</td>\n",
        "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>VGG16</td>\n",
+       "        <td>VGG16 model with weights pre-trained on ImageNet.</td>\n",
+       "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'VGG16', u'VGG16 model with weights pre-trained on ImageNet.'),\n",
-       " (2, u'ResNet50', u'ResNet50 model with weights pre-trained on ImageNet.')]"
+       "[(2, u'ResNet50', u'ResNet50 model with weights pre-trained on ImageNet.'),\n",
+       " (1, u'VGG16', u'VGG16 model with weights pre-trained on ImageNet.')]"
       ]
      },
-     "execution_count": 21,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4678,7 +4662,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -4704,7 +4688,7 @@
        "[(17863L,)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4724,7 +4708,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -4750,7 +4734,7 @@
        "[(Decimal('64.27'),)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4773,7 +4757,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -4792,29 +4776,41 @@
        "<table>\n",
        "    <tr>\n",
        "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
        "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
-       "        <td>[2.4545777e-06, 5.2808724e-07, 4.793985e-07, 3.0648587e-06, 1.7589542e-05, 7.423473e-06, 2.8404587e-05, 7.702516e-07, 2.9076324e-07, 4.9191232e-05, 7.6386027e-07, 1.6786764e-07, 2.8007811e-08, 1.10271536e-07, 6.7959e-08, 4.662994e-07, 1.4375345e-07, 1.0798308e-07, 3.0669946e-07, 2.0534213e-07, 7.262093e-07, 1.9336496e-06, 5.923924e-06, 2.124527e-06, 1.517234e-06, 9.527852e-05, 0.00018055105, 8.729679e-06, 1.3466038e-05, 4.9883015e-06, 0.00016520561, 8.931284e-07, 0.00010447865, 0.008126934, 0.0041637723, 0.00013488345, 0.0004189078, 1.1425285e-05, 0.0005037103, 0.0009210269, 1.1044925e-06, 0.00024138592, 9.045082e-05, 9.4167415e-05, 0.0013647893, 0.0005210496, 2.0178764e-05, 5.4065484e-05, 0.0009393721, 0.05819438, 0.027708823, 5.9237965e-07, 0.00053300196, 0.002545086, 0.037394878, 6.184113e-05, 0.000853419, 0.0009619954, 0.1408455, 0.00020672889, 0.014558754, 0.00151045, 0.055647947, 0.011832289, 0.0007671514, 0.5346089, 0.006554945, 0.041236367, 0.039578155, 1.4561356e-05, 1.6464638e-07, 3.165858e-05, 3.935167e-07, 1.0918371e-06, 5.218124e-07, 2.7307672e-07, 1.0199102e-05, 3.5511948e-06, 2.86876e-07, 4.0874023e-05, 2.6729484e-07, 1.0093462e-06, 4.629379e-06, 2.1517774e-06, 1.2261435e-05, 4.338481e-06, 9.929987e-07, 1.7831232e-07, 2.4536823e-07, 1.5457067e-07, 1.2165957e-07, 3.4199334e-07, 5.923435e-07, 2.5983104e-06, 1.6504788e-07, 7.1641075e-08, 5.894999e-07, 1.5662519e-06, 5.8751893e-06, 3.89696e-06, 4.1094467e-05, 4.955301e-06, 6.5522227e-06, 1.9406043e-05, 1.6132468e-05, 3.7659976e-07, 6.3438647e-06, 4.0902314e-06, 1.0292862e-06, 6.6630196e-06, 5.040724e-06, 8.1575585e-05, 7.456448e-05, 2.8282989e-06, 3.618538e-05, 3.8675685e-07, 7.651428e-05, 1.0225481e-06, 1.266903e-05, 4.5824258e-05, 7.288306e-05, 3.3498336e-06, 2.992845e-06, 1.8091552e-06, 1.875435e-05, 6.7368404e-05, 4.9985447e-06, 3.3620515e-07, 4.305059e-06, 1.7280902e-06, 7.6235165e-07, 5.0209233e-06, 7.799939e-06, 1.937166e-06, 9.611823e-07, 1.614425e-06, 1.8713204e-07, 2.9885357e-06, 4.8278425e-06, 2.0012436e-05, 7.2182515e-06, 4.359301e-06, 1.574922e-05, 2.238073e-06, 1.7358202e-06, 1.3882881e-06, 2.0444086e-06, 2.4902007e-05, 8.8671567e-07, 9.5118907e-07, 5.4420452e-05, 4.4048585e-07, 1.533093e-07, 2.2423917e-07, 1.2845265e-07, 5.4538754e-07, 6.9552794e-07, 3.5553444e-07, 4.2179462e-07, 1.1077553e-06, 1.831457e-06, 1.143593e-06, 5.030103e-07, 9.824084e-07, 6.9452412e-06, 1.0099182e-06, 3.9539648e-07, 8.06763e-08, 4.0702827e-07, 5.923435e-07, 5.3197714e-06, 1.4797711e-06, 2.7858605e-06, 1.0203154e-06, 1.270072e-06, 1.7932915e-06, 1.1223898e-06, 1.32488985e-05, 2.3145172e-07, 2.5678237e-06, 6.031348e-07, 7.921732e-07, 2.581308e-06, 3.6643971e-06, 7.416457e-07, 9.522029e-07, 7.175475e-07, 1.1451864e-06, 2.0917491e-06, 9.24253e-06, 3.8683064e-07, 1.0389535e-05, 7.724614e-07, 7.472543e-07, 5.071702e-07, 1.6446974e-06, 1.1704658e-06, 3.0614149e-06, 1.409079e-06, 8.466847e-07, 1.8017014e-06, 3.507826e-07, 2.1284595e-06, 8.698909e-07, 1.224563e-06, 1.7106437e-06, 5.696064e-06, 4.514067e-07, 1.1763666e-06, 3.3413244e-06, 3.4128946e-06, 5.175482e-07, 3.714022e-06, 2.2927e-07, 2.316875e-06, 3.377438e-07, 2.3052058e-07, 2.61643e-06, 6.701335e-07, 8.474925e-07, 2.7116255e-07, 6.2081126e-06, 1.5719688e-07, 1.4582722e-06, 6.9947583e-07, 1.865066e-06, 3.862484e-06, 2.6300042e-06, 3.1585807e-07, 5.6471627e-06, 2.8117404e-06, 3.3101567e-06, 4.781126e-06, 5.332083e-06, 4.262747e-06, 3.4367472e-06, 1.5752081e-06, 9.933036e-07, 4.4076637e-06, 3.7497364e-06, 1.7161192e-06, 2.5797578e-06, 1.5539875e-06, 1.019196e-06, 1.471617e-06, 2.4699254e-06, 2.445008e-06, 7.9564916e-07, 9.740301e-07, 3.635142e-06, 1.5163473e-06, 1.1429203e-06, 3.060701e-07, 2.6062207e-07, 1.1011417e-06, 1.8995628e-07, 1.8400178e-06, 2.40029e-07, 1.1530976e-06, 4.4667553e-07, 1.499923e-07, 1.0562828e-06, 2.805113e-07, 3.573091e-07, 4.562204e-06, 9.904574e-07, 4.4645708e-07, 8.6095275e-07, 3.799917e-07, 5.7280236e-06, 1.5454673e-06, 8.292788e-07, 1.09758175e-05, 1.1667296e-05, 9.930498e-07, 8.749859e-06, 5.806174e-05, 1.8263291e-06, 2.6493578e-06, 2.9941327e-06, 1.7455774e-05, 1.29098025e-05, 5.3980243e-06, 6.8297766e-08, 2.1631668e-07, 6.335388e-06, 1.089367e-06, 2.0598577e-06, 4.8624817e-05, 1.12490325e-05, 9.968333e-06, 1.8108658e-06, 3.7059235e-06, 4.596375e-05, 1.0402488e-06, 4.026173e-06, 1.0984137e-06, 2.3183823e-06, 0.00011660683, 8.382035e-06, 1.2012907e-07, 2.1115221e-07, 1.6709426e-07, 2.803805e-07, 9.1352774e-08, 8.547764e-06, 8.3231095e-07, 7.207249e-07, 4.964948e-07, 4.7260255e-07, 1.924433e-06, 5.233134e-07, 3.1484038e-07, 8.789158e-08, 3.3203023e-06, 1.5410322e-07, 7.599468e-07, 6.5865486e-08, 2.2502013e-06, 1.9028707e-06, 2.0829236e-07, 1.9414686e-07, 1.737569e-08, 4.187208e-08, 2.133833e-08, 5.217957e-08, 7.756315e-08, 0.00028948556, 3.2254661e-06, 0.00045745773, 3.6141873e-06, 3.6879846e-06, 4.3864155e-08, 1.1546421e-07, 6.098287e-06, 4.7297253e-06, 7.4544114e-06, 2.3579938e-05, 1.7185849e-07, 8.238342e-09, 6.6577663e-06, 7.1307113e-07, 6.6831553e-06, 4.188079e-06, 1.1908708e-05, 2.2311808e-06, 2.3669925e-05, 5.633239e-07, 2.5464924e-06, 3.673358e-06, 9.228042e-06, 3.7669442e-06, 2.5243994e-06, 3.923309e-06, 1.5492952e-06, 5.415315e-07, 1.2985793e-05, 7.727771e-06, 1.1638047e-05, 6.415278e-06, 0.000117049596, 1.844425e-05, 3.0543357e-05, 7.667886e-05, 4.6682158e-06, 5.8063925e-08, 3.4565298e-07, 1.3907674e-06, 3.9034413e-07, 2.3856628e-06, 1.3961561e-06, 1.0203523e-06, 9.6493195e-06, 1.916817e-06, 5.992382e-06, 1.3963438e-06, 1.6447373e-07, 1.1997806e-05, 3.522568e-06, 7.992761e-07, 2.7826318e-06, 2.9383807e-06, 1.2469625e-06, 6.400709e-06, 8.6687646e-07, 1.3604218e-05, 3.653841e-06, 3.270486e-07, 2.1591251e-07, 7.4862564e-06, 0.0022334387, 2.6425723e-06, 8.8534085e-07, 3.9918265e-07, 1.4015102e-05, 6.251236e-05, 3.7113346e-06, 4.424491e-05, 5.257468e-08, 2.3197601e-06, 8.55421e-09, 6.37598e-08, 1.7909628e-07, 8.214551e-08, 3.2871288e-08, 6.140439e-08, 1.6078678e-07, 1.8680272e-07, 5.777686e-06, 3.2538915e-07, 8.600066e-07, 2.7519786e-08, 1.1244575e-06, 4.4513232e-07, 1.3912985e-07, 2.2559327e-07, 7.5065955e-08, 2.1787962e-07, 6.5873184e-07, 1.6194141e-07, 4.2486533e-07, 9.449337e-08, 4.586137e-07, 6.8615904e-08, 3.4233057e-08, 2.3015714e-08, 8.529465e-08, 1.1009139e-06, 2.085397e-06, 1.1364241e-06, 5.969457e-08, 5.854545e-08, 1.2437502e-07, 2.8979143e-06, 3.7183227e-07, 6.1114713e-07, 1.8259102e-07, 5.007582e-06, 2.0794462e-07, 7.3661596e-08, 1.2289431e-06, 4.696466e-07, 8.236131e-08, 3.7003272e-07, 9.213571e-07, 6.144086e-07, 2.8531753e-07, 1.6841451e-06, 3.648355e-07, 3.489435e-07, 2.1981393e-07, 3.489891e-07, 6.616541e-08, 1.7107e-07, 5.8820905e-08, 2.657458e-06, 6.7280183e-07, 7.9155576e-08, 3.4055512e-07, 5.2415576e-08, 1.9475921e-05, 2.0859183e-08, 5.2399713e-07, 3.550162e-06, 6.954769e-07, 1.5623053e-07, 4.141466e-08, 7.0278865e-08, 1.1458085e-07, 1.1404557e-07, 3.500317e-07, 5.067037e-07, 2.6709915e-07, 6.325267e-07, 2.1115885e-07, 6.933021e-07, 4.481367e-08, 7.1330064e-08, 4.751686e-07, 6.4066296e-07, 2.3656271e-07, 1.1212038e-07, 5.1450616e-08, 4.898539e-07, 3.9345363e-07, 7.469027e-08, 2.8215636e-08, 1.4027972e-06, 1.5045851e-05, 5.45923e-07, 3.3606793e-07, 6.793033e-07, 3.2025406e-07, 5.567628e-08, 5.144404e-08, 4.7856094e-08, 8.7845734e-08, 2.304809e-08, 3.320628e-08, 1.531284e-07, 8.455002e-07, 4.030141e-08, 5.826353e-07, 2.0933905e-07, 2.1854659e-07, 1.8154402e-07, 8.5039017e-07, 9.850174e-07, 4.691499e-08, 2.9529717e-08, 5.921111e-06, 1.4848057e-07, 5.5719124e-07, 3.0771523e-07, 7.578906e-07, 1.2629686e-06, 4.9141647e-08, 7.4479624e-07, 1.2221409e-06, 1.6379033e-07, 3.4507277e-08, 3.4415274e-07, 1.2394273e-07, 2.48148e-06, 3.051856e-08, 7.7588567e-07, 3.814518e-08, 1.1678488e-08, 3.970682e-07, 3.907356e-07, 6.9163754e-08, 3.2372859e-07, 4.107152e-08, 1.32908e-07, 7.114948e-08, 1.3805939e-07, 4.362909e-07, 1.7327786e-06, 1.0840065e-07, 4.287437e-06, 1.3406026e-06, 2.7652288e-07, 5.110169e-07, 2.6476766e-07, 3.4128325e-06, 7.380665e-08, 2.5400274e-07, 6.9870474e-08, 5.537498e-08, 4.607658e-07, 1.6728343e-08, 1.2180828e-07, 3.1195963e-08, 3.9396355e-07, 2.7166365e-07, 1.8899802e-07, 1.434787e-07, 5.057714e-07, 1.0786199e-06, 9.368018e-08, 4.7229683e-08, 8.0803005e-07, 5.0072924e-07, 2.4026627e-07, 1.9182908e-08, 8.188763e-08, 1.274422e-07, 2.8407675e-07, 2.4712435e-07, 1.4823198e-07, 5.0134037e-07, 7.983131e-07, 1.8063096e-07, 7.675681e-06, 4.8255936e-07, 8.072598e-07, 1.6763661e-07, 1.07333484e-07, 6.337291e-08, 1.5299548e-08, 1.586752e-07, 2.2856735e-08, 1.3107238e-07, 3.1036965e-08, 4.9698727e-08, 5.08264e-07, 1.4144146e-06, 1.758415e-06, 2.6504657e-07, 9.582741e-08, 5.6582618e-08, 2.8249872e-07, 1.8841897e-08, 8.451918e-08, 1.1465327e-06, 6.435631e-07, 7.6025344e-07, 5.33686e-08, 1.4108464e-07, 4.900749e-07, 1.1835917e-05, 1.6986917e-08, 5.604835e-08, 3.662114e-07, 6.067581e-08, 2.396404e-07, 4.516629e-07, 4.7011735e-08, 3.1379034e-07, 2.5050101e-06, 3.2410483e-07, 1.0516861e-06, 1.4487472e-07, 3.085546e-08, 4.3942286e-08, 4.497369e-07, 4.5126813e-05, 5.931131e-08, 3.7003736e-07, 2.668337e-08, 8.2547594e-08, 7.860159e-07, 1.1476485e-06, 3.1438208e-06, 7.495808e-08, 2.8493167e-07, 1.9044575e-06, 1.75579e-07, 2.7747865e-07, 1.8837882e-07, 3.0251408e-07, 5.71522e-07, 3.9703924e-08, 2.5046242e-07, 7.552639e-08, 4.5776423e-07, 9.707653e-08, 1.4215377e-07, 1.4616903e-06, 1.1546075e-06, 2.3138962e-06, 1.7347833e-07, 4.9520267e-08, 3.0973612e-07, 1.7835579e-06, 3.6174768e-08, 6.2489794e-06, 2.0208286e-07, 7.262567e-08, 3.0372778e-06, 1.3853102e-07, 2.5439329e-07, 3.3290007e-07, 3.0902535e-07, 5.590861e-07, 1.06721984e-07, 6.7565156e-07, 2.1733736e-07, 3.322144e-07, 2.0757233e-07, 7.719017e-07, 8.4283094e-08, 1.0376899e-07, 1.9896996e-07, 2.2272106e-07, 7.127427e-07, 9.009337e-07, 3.2640187e-08, 2.0750068e-07, 4.8350348e-08, 7.0408504e-07, 5.6114324e-05, 7.5532836e-07, 8.887479e-08, 7.085125e-07, 1.1560844e-07, 3.8795744e-07, 3.976793e-06, 4.6256346e-07, 5.975669e-07, 3.0750516e-07, 7.345843e-08, 2.4090642e-07, 2.1353691e-07, 3.3497807e-07, 1.00545954e-07, 4.805937e-07, 8.9473104e-09, 1.5028067e-07, 2.299759e-08, 2.2111642e-07, 8.5874444e-07, 1.4600192e-07, 2.5260093e-07, 4.1094324e-08, 3.6426795e-06, 6.740626e-07, 1.0925928e-07, 1.2064076e-07, 2.6033217e-07, 2.3739936e-07, 4.02779e-06, 6.986927e-08, 4.927631e-07, 2.0377253e-07, 4.859285e-08, 6.001323e-07, 4.019476e-07, 6.5550914e-08, 3.255296e-08, 4.502512e-08, 4.5910076e-07, 1.9682864e-07, 1.5400917e-07, 2.1057043e-07, 3.4854838e-07, 2.8710346e-07, 7.8076866e-08, 3.7246292e-07, 8.849859e-08, 2.2556638e-07, 8.8687415e-08, 1.4012883e-07, 2.5905608e-08, 4.2669419e-07, 3.5269767e-07, 9.342652e-08, 1.16506385e-07, 1.8241785e-07, 2.592098e-08, 2.0602221e-07, 5.343529e-07, 4.3310727e-08, 3.1328245e-06, 3.7680095e-07, 1.6470683e-07, 1.3352549e-08, 4.713009e-07, 4.3408545e-07, 3.0829065e-07, 4.148033e-07, 3.5043252e-07, 4.1328406e-08, 1.039676e-07, 2.0944228e-07, 3.6792827e-08, 1.9913675e-06, 7.9480465e-08, 3.3763465e-07, 3.8642725e-07, 3.1329128e-07, 1.0457145e-06, 5.3874476e-07, 5.3555846e-07, 2.299623e-08, 2.9225612e-07, 1.2956369e-06, 5.7133235e-07, 1.7188988e-06, 1.951809e-07, 3.692544e-07, 3.600926e-07, 5.115637e-08, 2.873042e-07, 3.5520603e-07, 4.8817757e-08, 3.2432975e-08, 2.3311536e-07, 2.5904757e-07, 5.7130944e-07, 5.5044434e-06, 5.5146495e-07, 3.4003781e-07, 1.2421808e-07, 1.0033226e-05, 1.1899007e-06, 1.1852086e-06, 2.8190502e-07, 3.9343806e-08, 6.526603e-08, 2.8353597e-07, 3.716835e-08, 7.739528e-08, 1.2510313e-06, 1.1097918e-06, 1.4137441e-08, 5.196871e-08, 1.2651475e-07, 4.3768156e-07, 5.16784e-08, 1.8941446e-07, 3.4604793e-06, 2.1872393e-06, 1.603818e-06, 2.8407675e-07, 7.211409e-07, 4.7171773e-07, 7.0506945e-07, 2.37784e-08, 2.6139796e-07, 1.0857099e-08, 4.7737427e-05, 1.7715913e-06, 2.4736508e-07, 5.6247893e-07, 1.7013748e-06, 5.3935753e-07, 6.814604e-08, 8.114711e-07, 2.0709443e-07, 2.1679611e-08, 5.5730574e-08, 1.0388673e-07, 2.0995584e-07, 3.1774303e-07, 1.2546808e-07, 1.5703132e-07, 9.148216e-08, 1.1042813e-07, 1.16445406e-07, 2.0244965e-08, 1.4764365e-07, 9.9541595e-08, 2.9003402e-07, 5.2911406e-07, 3.6716312e-06, 1.8401056e-06, 2.6981215e-07, 2.3241279e-07, 4.6320945e-08, 6.2793663e-07, 4.0248636e-08, 7.398446e-08, 7.438862e-07, 8.786995e-08, 2.891773e-07, 7.3661136e-07, 6.0076565e-07, 2.798309e-06, 2.8826727e-07, 2.20146e-07, 1.3246057e-07, 4.587592e-06, 1.1943971e-06, 4.5323137e-07, 6.210182e-07, 7.987308e-08, 1.1633191e-06, 2.6830708e-08, 2.667916e-07, 9.157102e-08, 2.2695318e-07, 2.539181e-06, 2.993917e-07, 1.3205372e-08, 5.2766785e-07, 4.7152092e-08, 4.660542e-08, 4.905271e-07, 1.408878e-07, 4.298302e-08, 6.095104e-07, 1.6381455e-07, 6.7567737e-07, 1.3618406e-07, 2.9217654e-08, 6.0456813e-07, 3.481089e-07, 2.199539e-06, 3.1379585e-08, 4.0919085e-06, 1.3511705e-07, 1.7438792e-06, 5.164891e-07, 6.14058e-08, 1.692717e-07, 6.0094214e-07, 4.616263e-08, 1.7136415e-08, 1.8789655e-07, 1.664482e-05, 1.109561e-08, 2.0408984e-06, 5.144324e-07, 2.2324717e-07, 7.9635775e-08, 2.3219015e-07, 1.4640878e-07, 1.3904564e-07, 6.791909e-08, 5.3922327e-07, 1.7450128e-07, 2.2044287e-07, 8.2480156e-08, 7.791018e-08, 3.608704e-08, 1.4282757e-06, 4.4595026e-07, 6.1917463e-06, 1.2274731e-06, 6.541434e-08, 5.510292e-07, 6.2777127e-07, 9.852104e-08, 9.2759166e-08, 1.0801202e-07, 5.1773508e-08, 7.03263e-07, 5.48382e-08, 9.163828e-08, 1.8281544e-07, 2.2309499e-07, 1.5063874e-06, 2.9042156e-05, 8.7185555e-08, 3.4663535e-07, 2.3967124e-07, 6.1186444e-07, 2.6795408e-07, 1.7159874e-07, 2.5335256e-08, 1.0267665e-06, 1.2672062e-07, 1.19088995e-07, 9.9702916e-08, 6.4066995e-08, 1.2536097e-08, 9.928059e-08, 7.231101e-08, 2.8704923e-07, 6.1002176e-08, 2.986067e-07, 1.2906129e-06, 5.925127e-08, 1.8925866e-07, 9.22468e-08, 1.4960415e-07, 1.06911564e-07, 4.2838074e-08, 3.6908082e-07, 1.1071727e-07, 3.8998283e-07, 1.568034e-07, 3.122595e-07, 8.165866e-08, 1.6952727e-07, 1.9333584e-08, 1.3010535e-07, 3.7023185e-07, 3.297176e-08, 6.786729e-08, 2.6440307e-07, 4.7650342e-08, 2.6313728e-07, 1.0631267e-06, 7.3527224e-07, 1.0764516e-06, 7.899638e-08, 4.3475617e-07, 8.123929e-08, 9.337006e-08, 5.917117e-07, 8.175583e-08, 2.3680897e-07, 1.224908e-07, 1.1772941e-07, 7.237772e-08, 1.7921716e-08, 2.1354629e-07, 1.7915333e-07, 4.6141595e-06, 1.3726662e-06, 4.41399e-06, 1.4019968e-05, 5.0816493e-06, 3.158545e-05, 1.0377246e-05, 0.00013469988, 0.00012541312, 8.943293e-07, 3.5171972e-06, 4.143929e-07, 5.997899e-08, 3.7551363e-06, 2.5072768e-07, 4.117451e-08, 1.9050432e-07, 3.9115857e-06, 2.6173373e-07, 2.9716453e-08, 1.8971113e-07, 2.3804073e-07, 5.234724e-08, 1.01332226e-07, 4.7450158e-07, 1.5748033e-07, 6.902779e-07, 8.266525e-07, 3.983048e-06, 1.5279669e-07]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>58</td>\n",
+       "        <td>0.14084539</td>\n",
        "        <td>2</td>\n",
-       "        <td>[1.5398843e-09, 2.3107729e-08, 7.636333e-08, 2.2277517e-07, 1.7589974e-07, 5.438902e-08, 9.2527934e-08, 4.70354e-08, 9.018498e-09, 1.8840204e-08, 2.2168626e-07, 5.591516e-09, 3.5177464e-08, 4.6703323e-07, 4.6959094e-09, 4.3828187e-08, 1.6602337e-08, 2.8010957e-08, 1.4341178e-07, 8.532091e-08, 5.8298728e-08, 8.00204e-09, 3.6414684e-07, 3.851048e-08, 2.0718534e-08, 2.6480208e-08, 3.3010747e-09, 4.47217e-08, 2.8583589e-08, 6.513382e-10, 1.9336234e-08, 5.272263e-10, 2.404317e-09, 1.12124745e-07, 7.488657e-07, 6.5691674e-09, 4.623265e-09, 1.6595015e-09, 1.9597215e-08, 1.6531517e-07, 1.6838877e-08, 8.48814e-09, 2.9826325e-08, 4.543374e-09, 2.3641775e-08, 4.0592163e-08, 6.912111e-09, 3.3884773e-09, 1.042833e-08, 7.361764e-09, 4.2130747e-08, 1.6772022e-07, 1.4776109e-09, 5.525266e-09, 4.0264826e-08, 1.278795e-09, 1.4832867e-07, 4.2117554e-09, 1.3611935e-07, 3.0520868e-09, 6.4132884e-08, 1.4925305e-08, 5.7810297e-08, 6.520122e-09, 2.525428e-09, 2.0901005e-07, 3.504386e-08, 2.659847e-07, 1.3491556e-08, 8.361713e-08, 7.3479924e-08, 1.3090515e-08, 4.685739e-08, 1.2734573e-07, 1.3352158e-07, 9.6114135e-08, 3.8392837e-08, 1.2469758e-07, 5.4070338e-08, 1.2920589e-07, 3.2127724e-07, 1.414701e-05, 3.858608e-07, 1.1320818e-08, 1.5107693e-08, 3.15158e-08, 3.0302337e-07, 3.696147e-09, 2.5316362e-08, 1.6199753e-08, 5.834453e-09, 6.6545938e-09, 7.8418395e-08, 2.9896134e-09, 9.421624e-09, 2.3791766e-09, 2.7823246e-09, 1.8130814e-09, 4.316991e-09, 1.6660833e-08, 1.0815284e-08, 1.2120864e-08, 7.508208e-09, 2.4426359e-09, 7.537742e-08, 2.1063304e-09, 3.549428e-09, 4.384449e-08, 7.2657627e-09, 3.1592776e-08, 2.4405764e-10, 1.6091322e-08, 1.8533458e-06, 2.4308275e-08, 3.7633074e-09, 1.6087233e-09, 2.277431e-08, 5.8490266e-09, 4.0977223e-08, 3.8039954e-07, 1.3494928e-08, 1.781187e-07, 6.407897e-08, 5.389317e-07, 8.723511e-08, 7.2745024e-08, 2.6316968e-08, 6.543285e-08, 7.232058e-08, 4.530396e-08, 1.2370523e-07, 1.0784221e-08, 4.778658e-08, 8.2433225e-09, 1.152689e-07, 1.4541708e-08, 4.6979163e-09, 1.9269741e-08, 6.921267e-09, 2.708216e-07, 5.5321866e-08, 1.6940814e-07, 2.0328073e-08, 2.275105e-07, 7.400611e-08, 4.040531e-06, 5.9436662e-08, 3.5894548e-08, 5.200469e-08, 1.9099544e-09, 2.3085869e-07, 6.950096e-08, 9.922675e-09, 8.168692e-08, 7.0257973e-09, 8.1655614e-08, 1.0280881e-06, 3.198189e-08, 1.8011564e-08, 1.1670971e-06, 4.824007e-08, 4.8371714e-07, 2.3133298e-07, 9.200232e-07, 2.2442546e-07, 4.7174932e-08, 1.1280227e-07, 2.7898892e-07, 8.8787215e-07, 9.2161355e-07, 2.3470897e-05, 1.7707903e-06, 6.7424407e-06, 6.0599414e-06, 2.8161035e-06, 9.434914e-09, 1.0188343e-06, 5.5756454e-06, 3.1946593e-06, 8.136942e-07, 1.1003609e-07, 4.576751e-07, 3.3645716e-07, 2.740537e-07, 5.4528084e-07, 5.777307e-07, 2.9695158e-07, 7.171372e-08, 2.6257868e-07, 1.6330781e-06, 9.9922396e-08, 6.695125e-07, 8.737203e-07, 8.1306325e-08, 5.515203e-08, 6.864878e-07, 7.5751146e-08, 1.1799731e-06, 1.4831099e-07, 2.772437e-07, 1.7763999e-07, 2.098404e-08, 1.940811e-07, 2.6700523e-06, 1.0012253e-07, 6.0266035e-07, 4.6589884e-07, 6.262852e-07, 3.776922e-06, 7.038604e-06, 2.2661327e-06, 1.1063678e-06, 6.118894e-07, 2.5951251e-06, 2.1583949e-06, 2.2275087e-06, 5.9048972e-08, 9.353487e-07, 8.8109886e-07, 1.6752422e-07, 4.7095458e-08, 1.1280829e-07, 6.4681115e-07, 1.4628699e-06, 1.5081841e-06, 6.317585e-07, 1.1813028e-06, 1.900376e-07, 2.4231375e-07, 2.6553482e-07, 4.894391e-07, 2.6518939e-07, 1.5399695e-07, 8.8166956e-07, 6.533642e-07, 4.457954e-07, 1.8340435e-06, 1.855212e-07, 4.893554e-06, 2.3288433e-06, 2.3774019e-06, 5.201625e-06, 7.6095256e-07, 2.3237685e-07, 1.4151934e-07, 8.257309e-08, 2.1411304e-06, 2.2388014e-05, 1.3785373e-05, 5.831647e-06, 1.3944214e-05, 2.2903537e-06, 4.6498332e-08, 4.6375638e-07, 6.242959e-07, 2.3912223e-06, 1.4558304e-06, 9.471192e-07, 5.5140313e-06, 9.166841e-08, 1.2893312e-07, 3.9749816e-07, 4.1223927e-08, 3.76367e-07, 1.4717683e-06, 9.8032444e-08, 3.420696e-07, 1.1348545e-06, 1.233211e-07, 6.2267026e-07, 1.1291587e-06, 6.029464e-08, 4.1942053e-06, 3.126346e-07, 2.5256027e-08, 3.411787e-08, 1.6709652e-08, 1.0040704e-06, 2.5781976e-08, 9.700623e-07, 1.6046155e-07, 2.0606766e-08, 2.4433362e-08, 4.4592547e-09, 1.1156811e-08, 1.8641177e-08, 1.579223e-07, 2.0955612e-07, 2.9641933e-09, 4.2151328e-08, 8.4548657e-10, 1.2786364e-09, 5.8412592e-08, 7.3222175e-09, 3.4796508e-07, 6.028762e-08, 2.8341196e-06, 2.5817788e-09, 1.6543543e-08, 5.1597104e-09, 6.515199e-09, 2.4591106e-08, 1.10343e-08, 2.3506432e-08, 2.5722677e-09, 9.193776e-09, 7.1656943e-09, 6.2450964e-09, 4.8909826e-08, 2.9583264e-08, 1.0357064e-07, 7.1164735e-08, 3.6447915e-08, 3.097284e-07, 4.2578133e-08, 1.8602746e-08, 4.852659e-09, 4.6380855e-09, 8.3475065e-08, 7.4244093e-07, 2.558261e-08, 3.2909315e-07, 7.988803e-09, 2.3116634e-08, 3.85773e-08, 1.5388956e-08, 7.1112463e-09, 1.4074487e-07, 2.9982766e-07, 1.564242e-08, 1.0789998e-07, 1.299596e-07, 1.7822981e-09, 2.1977655e-09, 3.8496357e-09, 1.3551873e-09, 5.3080055e-07, 5.1470135e-08, 8.4123347e-10, 7.115103e-08, 1.0199323e-07, 8.621156e-08, 3.209869e-07, 1.0228442e-08, 3.5695646e-09, 1.6592921e-06, 5.754166e-08, 4.5394786e-06, 6.6713767e-07, 8.642847e-06, 8.179076e-06, 8.936807e-08, 7.0527335e-08, 9.755931e-08, 1.8077302e-06, 2.6266648e-06, 1.8360647e-06, 1.18492515e-07, 1.0602841e-08, 2.8182551e-08, 8.855424e-09, 3.9218904e-08, 9.4692405e-09, 1.8187903e-08, 6.0960176e-10, 2.8660767e-09, 2.7049174e-09, 2.9135108e-09, 2.0202557e-09, 3.7000687e-09, 1.3453749e-09, 7.608665e-08, 1.4827498e-08, 1.8008379e-07, 3.214444e-08, 3.3369876e-09, 1.1487082e-08, 1.0620547e-09, 1.0122127e-08, 2.7668134e-09, 1.38777265e-08, 5.459645e-09, 9.779465e-09, 1.4373716e-08, 1.4275604e-08, 3.1167882e-08, 1.6579142e-08, 1.6735798e-09, 1.7655769e-09, 2.4233465e-08, 7.761856e-08, 8.390994e-07, 8.398905e-09, 1.0605148e-08, 3.585211e-07, 5.846406e-07, 2.773881e-07, 9.707507e-09, 1.7990827e-08, 7.335421e-07, 5.715663e-08, 1.6425967e-06, 2.6860542e-07, 1.945019e-07, 4.4494698e-08, 2.3012471e-07, 1.0821924e-07, 2.522256e-07, 5.9017445e-08, 4.4775834e-07, 2.4033554e-06, 5.852322e-08, 3.763297e-07, 1.2767528e-05, 3.413865e-07, 2.4368111e-08, 1.2132007e-07, 2.718393e-07, 4.8032852e-08, 4.3237666e-08, 3.820392e-07, 2.2197873e-06, 3.518223e-08, 6.4883015e-09, 1.7396843e-08, 1.4981359e-05, 9.289176e-08, 5.7502575e-07, 2.5261088e-06, 7.218663e-08, 1.6187707e-08, 2.5262677e-08, 1.4110595e-06, 2.7774984e-06, 5.1647742e-08, 1.7309242e-07, 6.657365e-08, 1.1532635e-06, 2.5521492e-08, 1.2916955e-07, 1.5800223e-06, 5.573535e-08, 6.0709255e-08, 2.8454885e-08, 2.6240545e-07, 2.2590486e-06, 6.349486e-08, 2.5054753e-06, 1.0332632e-06, 7.5764866e-08, 3.0934818e-05, 1.0285893e-06, 4.9956363e-08, 3.806668e-08, 1.12557945e-08, 4.212406e-09, 9.062275e-06, 2.1683526e-07, 7.8610384e-08, 3.9823655e-07, 1.2365699e-05, 2.6495582e-07, 7.8097855e-06, 1.8755473e-07, 4.612106e-09, 1.1201466e-07, 1.1676837e-08, 3.508029e-09, 9.1218254e-08, 7.643896e-08, 1.5362502e-08, 9.381413e-07, 2.6301302e-07, 6.57294e-09, 7.180635e-07, 3.8983737e-07, 1.554282e-08, 8.0090764e-08, 8.545088e-08, 1.569008e-08, 5.355029e-08, 2.2874363e-07, 3.753023e-08, 3.225784e-07, 1.6325798e-06, 3.007842e-09, 3.2840123e-07, 3.130718e-08, 5.363401e-08, 9.742059e-08, 3.938637e-08, 1.09314815e-05, 2.7909737e-08, 1.9837347e-07, 1.0354215e-06, 5.9552523e-08, 1.6291214e-07, 2.0342968e-06, 2.5287791e-08, 1.59485e-07, 9.795091e-07, 3.1564498e-06, 1.7559394e-08, 1.6565266e-08, 2.620732e-08, 4.9752394e-08, 1.6515578e-08, 1.9081748e-08, 7.422872e-09, 3.3019376e-09, 1.7074969e-07, 1.0950456e-08, 8.516746e-09, 1.1135265e-06, 1.636078e-07, 1.3219143e-06, 3.5221102e-08, 4.5833468e-07, 1.7809934e-07, 1.052475e-07, 2.4009454e-08, 4.471895e-09, 3.8112885e-06, 4.0083058e-05, 1.1635215e-07, 5.101486e-07, 3.6760483e-08, 1.9992733e-08, 9.947765e-09, 3.0854395e-08, 1.118227e-08, 4.7650698e-08, 8.499971e-08, 2.4238595e-08, 1.4947384e-08, 3.6674674e-09, 6.124752e-08, 0.00038468122, 1.8884897e-07, 2.5177487e-08, 2.9864592e-07, 1.9823315e-07, 1.1138956e-07, 3.4749004e-08, 4.807366e-07, 1.1343858e-08, 1.24109e-07, 3.708061e-08, 1.3761401e-07, 7.507371e-07, 8.474337e-10, 3.2129975e-08, 1.6138574e-07, 4.289849e-08, 4.1769333e-08, 1.524812e-07, 4.4421853e-08, 3.3816161e-06, 1.883187e-06, 8.6855124e-07, 3.4589572e-08, 1.10152946e-07, 2.6198538e-07, 1.5651674e-08, 2.0048878e-07, 1.0421765e-07, 4.6393686e-07, 7.667737e-09, 3.3911301e-06, 5.303072e-07, 6.010618e-07, 9.7195084e-08, 4.687357e-08, 1.2324756e-08, 3.2322134e-07, 7.846987e-08, 2.5114367e-08, 7.899244e-08, 2.5696616e-07, 1.01712125e-07, 5.3800395e-08, 4.404471e-09, 7.0128237e-09, 4.1187302e-08, 2.6257606e-08, 7.664451e-08, 3.842652e-07, 6.999354e-07, 5.2077125e-09, 1.8243146e-08, 8.38386e-09, 1.0335663e-07, 6.9752186e-09, 5.2016794e-08, 8.570752e-07, 1.0925754e-08, 3.7993168e-06, 2.1593397e-08, 8.062468e-08, 1.6209674e-08, 9.4739295e-07, 3.8672835e-07, 2.2282576e-07, 4.2491993e-07, 4.789252e-08, 5.8676232e-08, 5.8623435e-08, 1.3501982e-08, 2.2437293e-06, 1.702915e-06, 9.943773e-07, 3.649515e-08, 1.6232762e-07, 3.140646e-08, 1.11932536e-07, 3.590689e-07, 1.3766297e-07, 5.5616647e-07, 5.2407668e-08, 2.748883e-08, 9.189626e-08, 2.5330624e-07, 6.336275e-08, 4.12668e-08, 6.258344e-09, 1.3503933e-07, 1.733054e-08, 1.9494284e-08, 1.6185105e-07, 1.3785838e-08, 6.109794e-08, 1.8560323e-08, 1.6609394e-07, 2.476262e-08, 2.6778312e-07, 4.351084e-08, 3.084329e-07, 7.817878e-06, 1.8975626e-06, 2.0993969e-06, 2.6453353e-08, 2.2118513e-07, 8.731006e-07, 1.6439921e-07, 2.3696006e-07, 1.787288e-06, 4.8213653e-05, 8.37574e-09, 6.81651e-09, 2.8432564e-06, 2.704404e-07, 4.226339e-08, 9.407418e-06, 9.6293405e-08, 3.725218e-07, 1.2643505e-06, 9.604207e-07, 7.47385e-06, 3.566186e-07, 9.538723e-09, 1.6844483e-06, 7.3710655e-09, 5.2484666e-09, 8.958981e-07, 7.355466e-08, 3.6778154e-08, 6.467584e-08, 1.0149527e-07, 1.1401684e-07, 2.0010434e-08, 2.130884e-08, 3.8332364e-06, 0.0007202051, 8.997154e-10, 3.1479754e-08, 8.319596e-08, 2.7916498e-08, 1.4024812e-06, 8.000587e-08, 6.105344e-08, 1.6910072e-08, 2.397463e-08, 2.5698992e-07, 8.2904137e-07, 2.7703791e-08, 2.4609814e-09, 8.351855e-10, 5.907249e-09, 2.3557195e-08, 5.1269083e-08, 3.1052042e-07, 1.9230353e-07, 1.3536194e-07, 5.51488e-07, 1.9878282e-08, 7.9125144e-08, 8.0264836e-05, 2.3167297e-07, 9.360291e-08, 3.483506e-07, 1.8976078e-06, 9.991526e-06, 7.9052325e-07, 2.5110057e-06, 1.2902883e-05, 1.06492195e-07, 1.8583303e-07, 5.769002e-08, 3.6822023e-08, 1.5638037e-08, 1.6243138e-07, 1.0981206e-07, 1.0313105e-09, 2.2036936e-08, 1.6936184e-08, 5.209431e-07, 1.066118e-05, 3.8097987e-08, 6.077448e-08, 8.576721e-09, 2.7099158e-09, 6.393335e-07, 6.024069e-09, 8.597185e-07, 2.4906703e-07, 1.7457806e-08, 9.4648165e-09, 2.0813505e-07, 1.3174564e-06, 4.096353e-09, 4.0667996e-06, 8.2589827e-07, 3.04197e-08, 2.339224e-05, 3.6062332e-08, 1.1635309e-06, 4.037927e-08, 6.19253e-08, 3.770228e-08, 6.161791e-08, 1.5994248e-06, 6.009784e-08, 8.941896e-08, 1.1777902e-07, 2.4193057e-06, 9.981634e-09, 3.2275516e-06, 5.3249114e-08, 1.5546792e-08, 6.834216e-07, 3.9778675e-07, 4.532384e-08, 6.9061976e-08, 1.1572694e-08, 5.0055938e-08, 6.2338563e-07, 4.9324466e-08, 5.308013e-06, 3.0234658e-06, 1.6129864e-07, 7.341118e-07, 4.529463e-08, 4.721031e-08, 2.7191814e-07, 9.214177e-05, 3.4954944e-08, 5.892889e-09, 6.9181067e-07, 3.0443786e-08, 9.5250334e-07, 6.399774e-08, 1.8667293e-08, 4.4535962e-08, 7.128982e-09, 6.305315e-08, 1.3619449e-06, 8.321957e-07, 6.1739435e-08, 7.1391058e-09, 3.2976266e-07, 4.1574063e-07, 9.305059e-09, 1.4348497e-07, 1.12088614e-07, 1.717341e-07, 9.155937e-10, 8.49131e-08, 2.274656e-07, 1.31738735e-08, 6.4238044e-08, 2.5300033e-09, 4.735305e-07, 0.0016679094, 4.3191326e-07, 1.3948901e-08, 0.6965568, 0.00032454787, 3.5461414e-06, 3.661261e-09, 1.7207987e-07, 9.268941e-09, 2.3562737e-07, 0.0002525007, 8.555244e-05, 1.0181198e-09, 6.2870043e-07, 1.4091459e-06, 1.3009806e-06, 2.7303082e-07, 1.4669624e-09, 8.454194e-09, 1.8131272e-08, 2.4682942e-07, 1.1727215e-06, 1.1580163e-07, 4.3070994e-08, 1.063989e-07, 1.1100011e-08, 9.354254e-07, 1.5596758e-07, 1.1565727e-07, 1.0455736e-08, 1.5751957e-06, 7.423669e-08, 2.7763226e-06, 6.379263e-06, 8.358341e-08, 1.1284831e-07, 8.936478e-09, 2.7141138e-07, 1.1885099e-06, 3.5644707e-08, 4.211571e-05, 8.188094e-07, 4.756142e-07, 4.3325363e-07, 3.3440047e-06, 3.8567996e-06, 2.567217e-07, 2.7330253e-07, 5.7382164e-07, 1.7412797e-06, 1.52012235e-05, 3.6163758e-06, 4.464074e-08, 1.5914673e-06, 2.5722297e-08, 5.8252516e-07, 5.265234e-08, 8.234005e-09, 6.593523e-08, 7.2670247e-07, 6.157772e-08, 1.9472304e-06, 1.6877687e-08, 5.4864344e-08, 1.2159968e-07, 8.8625045e-09, 3.85879e-08, 1.18826236e-07, 5.029152e-09, 7.548831e-09, 4.8796755e-06, 3.368214e-06, 3.206473e-07, 2.0191665e-08, 7.773727e-07, 8.836705e-07, 2.781339e-08, 8.5779556e-07, 6.021054e-07, 5.5811405e-08, 0.00017171177, 1.3041937e-07, 1.03372e-07, 9.105134e-07, 1.9368134e-07, 3.4401072e-08, 6.993172e-10, 1.4681606e-05, 2.6645605e-06, 5.3564694e-08, 1.8430373e-07, 3.574854e-08, 4.3808715e-08, 1.1790208e-07, 2.903986e-08, 1.7527881e-07, 9.018778e-08, 5.909041e-07, 1.3226456e-06, 9.100276e-10, 9.4933505e-08, 1.7600302e-08, 1.237418e-07, 2.4791518e-06, 1.6265204e-08, 5.6816635e-08, 3.0899054e-07, 2.259528e-07, 1.2160329e-07, 1.7874806e-08, 1.1018447e-07, 8.6053426e-08, 1.6846097e-09, 1.3612078e-09, 4.0714268e-09, 3.1117708e-07, 1.8836668e-06, 2.4274023e-09, 1.6711957e-07, 1.2489967e-07, 5.7767593e-06, 0.00023884398, 4.883025e-07, 0.00018770229, 6.8687876e-07, 3.7221625e-08, 1.396456e-07, 9.718689e-07, 9.019608e-07, 3.1364755e-07, 1.7217104e-08, 4.8390746e-08, 7.264543e-09, 7.605233e-10, 1.654826e-10, 6.4277764e-08, 1.371566e-07, 9.566331e-08, 6.1089866e-09, 1.1865948e-08, 9.200144e-09, 2.860801e-09, 3.0422314e-08, 1.2621048e-08, 5.286336e-08, 6.646337e-09, 1.1934101e-09, 1.2263828e-09, 1.2506999e-09, 1.0561177e-09, 1.5004105e-09, 4.2410333e-09, 1.4444183e-08, 2.3039358e-10, 7.3044473e-09, 7.0201445e-09, 4.5222894e-08, 6.5248993e-09, 3.0367296e-08, 1.61907e-08, 2.812724e-08, 7.16595e-10, 2.4030102e-09, 1.4037422e-09, 2.8542007e-09, 6.8244588e-09, 7.394124e-07, 8.272793e-09, 9.1326186e-08, 3.4254477e-08, 3.938575e-09, 1.2116357e-08, 2.4269255e-09, 2.9024413e-08, 1.6277409e-07, 4.0866994e-09, 4.3306834e-08, 7.559003e-09, 0.29820144, 6.001986e-07, 4.3510576e-05, 6.434583e-08, 4.367675e-05, 6.187613e-06, 5.1900697e-06, 4.6378314e-06, 8.057671e-06, 5.7155186e-05, 1.4133632e-05, 1.1964084e-07, 1.1058091e-07, 4.345451e-07, 3.3152878e-07, 8.424061e-09, 8.0378465e-10, 4.2880637e-09, 4.369939e-08, 6.1343945e-07, 2.029015e-08, 3.3226485e-08, 7.760297e-09, 3.8018118e-09, 3.5106462e-09, 1.7808583e-08, 1.4098259e-08, 3.8490683e-10, 3.2085192e-09, 3.8055336e-07]</td>\n",
        "    </tr>\n",
        "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>49</td>\n",
+       "        <td>0.05819455</td>\n",
        "        <td>3</td>\n",
-       "        <td>[1.6689529e-07, 2.2206162e-07, 2.820838e-07, 9.411482e-08, 9.196814e-08, 6.835522e-08, 1.4712062e-07, 9.119155e-06, 6.7199594e-06, 1.9530382e-06, 2.4907507e-07, 6.704823e-07, 1.3618245e-07, 3.1312987e-07, 1.2618708e-07, 8.8433814e-07, 1.3651416e-07, 1.0374823e-06, 9.697097e-07, 3.1258924e-07, 1.154241e-07, 2.7880057e-07, 7.071258e-07, 1.1773246e-06, 2.7102183e-07, 8.7961396e-08, 5.8193404e-08, 2.5870187e-07, 3.1527037e-08, 2.715556e-07, 1.865584e-07, 3.0306205e-07, 1.0248689e-07, 2.2406402e-07, 2.4086475e-07, 8.182266e-08, 3.4661014e-07, 2.965118e-07, 1.560052e-07, 2.3101217e-07, 5.0157405e-07, 1.6106436e-07, 1.7701154e-07, 7.382814e-07, 4.017762e-07, 8.348868e-08, 4.505219e-07, 3.507288e-08, 1.9216787e-07, 2.1005312e-07, 1.7100543e-06, 1.2874328e-07, 1.7951021e-07, 1.1528065e-07, 3.0493317e-07, 8.817166e-07, 7.344486e-07, 8.2197954e-07, 4.4888705e-07, 6.063366e-07, 9.589398e-07, 3.6966567e-06, 1.7984804e-06, 3.5922747e-07, 4.3303217e-07, 1.4106764e-07, 3.4898633e-07, 2.1168786e-07, 2.1905065e-07, 7.523292e-08, 1.2124268e-07, 1.6527275e-07, 6.333906e-08, 5.592894e-08, 9.339264e-08, 3.3048057e-08, 2.849944e-07, 5.0003926e-08, 3.2996897e-07, 1.093866e-06, 4.7521535e-08, 6.467596e-08, 6.746868e-07, 7.208058e-07, 1.3252958e-06, 4.4775916e-07, 1.3629414e-06, 2.6028246e-07, 1.2213138e-07, 2.378058e-07, 4.0746293e-08, 4.4012336e-07, 1.5162593e-07, 1.3352037e-06, 1.0124106e-06, 1.385228e-07, 2.0494727e-07, 1.7858578e-05, 1.1512349e-06, 8.851452e-06, 2.1538575e-07, 6.265657e-08, 5.9420086e-07, 2.688158e-07, 6.4805367e-06, 5.182306e-07, 2.372954e-07, 2.2233793e-07, 3.245263e-07, 5.0860205e-08, 1.017551e-07, 8.684927e-08, 3.1345842e-06, 2.1760503e-07, 2.1266662e-07, 5.1490655e-08, 5.8833677e-08, 7.994336e-07, 1.437624e-06, 1.8312319e-07, 4.1118618e-08, 6.079955e-07, 7.317862e-07, 1.2565258e-07, 8.145708e-07, 7.439697e-07, 4.4777835e-07, 8.953791e-08, 2.082923e-07, 3.7194494e-07, 6.495325e-08, 1.15024555e-07, 4.6843113e-07, 1.9805561e-06, 1.128121e-06, 3.502328e-08, 7.75236e-07, 1.0817615e-06, 2.0329721e-06, 3.4939458e-07, 1.3838962e-06, 5.9606386e-08, 1.0386679e-07, 2.7677422e-07, 2.562633e-07, 3.75767e-07, 2.257235e-06, 1.7437878e-07, 3.344044e-07, 1.4814579e-08, 1.4589527e-07, 9.747049e-06, 4.343081e-05, 2.4861931e-06, 4.7536546e-06, 1.7077704e-05, 4.1258518e-05, 0.00033958646, 2.7045458e-05, 2.2274935e-06, 0.0007474787, 7.4541317e-06, 3.46901e-06, 1.7526618e-06, 5.131311e-06, 5.9422626e-07, 5.283553e-06, 2.3466607e-06, 1.1319079e-06, 0.0075451825, 6.501963e-06, 1.8894696e-05, 4.274101e-05, 8.023169e-05, 4.3800146e-06, 5.5521894e-05, 7.4542e-05, 5.1395902e-05, 3.269665e-07, 6.566881e-07, 1.1947602e-06, 3.175389e-06, 4.53225e-06, 2.0213977e-06, 1.9833658e-05, 7.5548055e-06, 7.107016e-05, 5.446052e-05, 0.0003789736, 2.3369696e-05, 6.262723e-06, 8.743196e-05, 1.7344008e-05, 0.00054024416, 5.6735547e-07, 1.3520279e-06, 9.357407e-06, 1.2883928e-06, 4.2506967e-06, 2.1557997e-05, 2.9111889e-05, 6.968902e-05, 4.0829773e-06, 6.0506145e-06, 1.7851306e-05, 2.1046308e-06, 9.482371e-07, 1.9215779e-05, 1.5350582e-06, 9.981025e-07, 1.2606618e-07, 5.10712e-06, 2.7865839e-05, 7.178262e-06, 4.581452e-06, 1.8116694e-05, 5.820323e-06, 3.7669934e-06, 7.9357415e-05, 2.4837062e-05, 1.822985e-05, 1.283606e-06, 1.2288719e-05, 2.9043683e-06, 0.00011244261, 4.338252e-06, 0.00021625363, 2.9391324e-05, 1.0695196e-06, 0.00011266577, 0.40733615, 0.5772368, 0.0004146664, 1.229108e-06, 1.202781e-06, 2.706326e-05, 9.573294e-06, 1.6624028e-06, 1.3531604e-06, 4.1547428e-05, 1.3941313e-05, 3.45452e-06, 3.975819e-07, 1.14479995e-07, 3.2602754e-06, 2.4812724e-07, 5.9290517e-07, 9.359942e-06, 5.2608295e-05, 1.6942557e-05, 3.36582e-05, 3.7529944e-06, 1.7631246e-06, 6.8221685e-05, 1.913694e-07, 2.6620355e-06, 2.7133906e-06, 2.9902525e-05, 3.281977e-05, 0.00021295837, 1.4895779e-05, 1.5925854e-05, 7.54719e-07, 0.00016248274, 8.674957e-05, 7.4369905e-06, 1.7487591e-05, 5.6154302e-05, 1.0220183e-06, 2.6891967e-05, 1.2903312e-05, 1.98491e-05, 1.0393447e-05, 3.2990965e-06, 4.3320383e-06, 6.4613107e-07, 5.837787e-07, 9.864287e-06, 1.605011e-06, 5.953469e-06, 3.730937e-06, 7.4432987e-06, 1.6610296e-05, 2.930948e-05, 3.3447233e-07, 4.6493938e-06, 6.9082525e-08, 3.058961e-07, 1.7166974e-07, 1.0861472e-07, 1.1060474e-07, 9.991572e-06, 2.624814e-06, 7.4486564e-07, 1.1626346e-06, 8.506138e-07, 3.9435324e-07, 5.3783315e-06, 1.02206464e-07, 3.4676552e-07, 1.2598566e-07, 2.1253848e-07, 1.1014853e-07, 3.873366e-07, 5.1221065e-07, 7.8767215e-08, 3.3245198e-07, 1.7352278e-07, 1.7126436e-07, 7.1782176e-07, 5.609307e-07, 1.8716644e-07, 2.7722834e-07, 2.3728228e-07, 1.4343879e-06, 1.6317398e-07, 1.8679945e-07, 9.642633e-07, 6.046637e-07, 2.5942106e-07, 6.012982e-08, 3.1809796e-07, 3.3224913e-07, 2.943848e-07, 4.0296842e-07, 1.1191497e-06, 1.4413408e-07, 2.769044e-07, 1.8496877e-07, 1.05810884e-07, 5.328658e-07, 4.866973e-06, 3.224421e-05, 1.1619223e-05, 2.464877e-06, 1.8399638e-05, 1.6188493e-06, 2.0739626e-06, 9.169329e-05, 2.8408182e-05, 1.0441167e-06, 2.2457004e-06, 4.574065e-06, 6.362242e-07, 9.629592e-07, 1.0002079e-05, 7.1745495e-07, 2.1475851e-07, 1.01941005e-05, 8.618323e-07, 1.869045e-06, 6.2070296e-07, 1.1434444e-06, 2.3597759e-06, 6.7796793e-07, 1.271199e-05, 1.1577484e-06, 2.368491e-07, 4.55484e-07, 2.5140366e-06, 5.6595123e-08, 7.3302494e-06, 4.584962e-06, 2.463876e-06, 1.1013761e-07, 7.970608e-07, 1.06286215e-07, 6.5447483e-07, 5.9785117e-07, 3.151479e-07, 1.0185223e-06, 2.0698292e-06, 2.019361e-06, 1.1943068e-06, 9.928024e-07, 8.1185874e-07, 1.9383758e-06, 8.319345e-07, 6.315681e-07, 1.5005149e-07, 1.4024852e-06, 2.58234e-07, 4.5330773e-07, 1.0390844e-06, 6.014614e-07, 5.0667715e-08, 4.292828e-08, 2.428166e-07, 2.1167232e-07, 5.6699145e-07, 3.6647265e-07, 7.7877735e-07, 9.033721e-08, 7.109228e-08, 1.13489925e-07, 5.4377375e-07, 1.7701846e-07, 7.7141095e-08, 9.243051e-07, 2.0634916e-07, 7.603061e-07, 2.1217143e-06, 1.2784554e-06, 6.703036e-08, 2.8089295e-07, 8.370749e-07, 3.334441e-06, 4.4463496e-07, 2.1578214e-07, 8.6750146e-07, 2.0263879e-07, 1.757333e-06, 4.232752e-06, 5.2864135e-07, 1.0017834e-06, 8.292726e-06, 2.0218168e-07, 5.6843703e-07, 3.1687039e-06, 2.3628252e-06, 1.3313359e-06, 2.1216838e-06, 3.529718e-07, 1.0109056e-06, 5.4811755e-07, 1.5179745e-06, 1.1439428e-06, 2.7279775e-06, 2.491207e-05, 2.4989247e-06, 1.0711284e-06, 3.4363297e-06, 1.795127e-06, 5.6359966e-08, 4.6255496e-05, 7.617995e-06, 1.7480146e-06, 1.513277e-06, 4.223011e-06, 2.5502782e-06, 4.8256497e-06, 6.389756e-07, 2.050033e-06, 1.9788192e-06, 2.5552567e-06, 6.402927e-07, 1.5162955e-05, 1.9254494e-06, 1.4773743e-05, 1.5308382e-07, 6.756578e-07, 3.368628e-06, 3.2261296e-06, 1.3053974e-06, 8.031118e-06, 8.357667e-07, 4.2610545e-06, 5.840485e-06, 7.83309e-07, 6.467494e-07, 4.065039e-06, 1.2906764e-06, 3.6102936e-06, 1.5432053e-05, 1.8839935e-06, 9.1145074e-07, 9.640519e-07, 1.5100665e-06, 1.49469e-06, 3.234839e-06, 1.8960048e-06, 9.3880084e-07, 1.1120671e-06, 1.266507e-06, 3.204753e-06, 2.2967995e-06, 8.827923e-06, 1.5669655e-06, 2.128402e-06, 4.6287373e-06, 3.5791315e-06, 1.1039351e-06, 7.966436e-07, 2.8899622e-06, 1.6511663e-07, 2.5859703e-07, 5.687974e-06, 7.1050804e-06, 4.2829834e-07, 1.4763658e-05, 5.886087e-07, 3.8952072e-07, 1.2212666e-06, 4.2225375e-07, 2.9476307e-06, 2.9590444e-07, 1.647012e-06, 1.138658e-05, 6.443352e-06, 4.116174e-06, 2.3373326e-07, 4.594675e-06, 5.326156e-06, 2.7369208e-06, 9.157579e-06, 1.6969457e-06, 1.5630312e-06, 7.475492e-07, 3.4837499e-06, 4.043013e-06, 3.866793e-07, 1.3447072e-06, 2.7079177e-06, 7.07651e-06, 3.3592798e-06, 2.4041381e-05, 1.5609503e-06, 1.4794115e-07, 1.8450921e-06, 3.6126664e-06, 8.430876e-07, 1.6879924e-06, 1.49956795e-05, 8.848961e-06, 7.616669e-07, 8.442579e-06, 5.06263e-07, 4.8507803e-07, 9.1500846e-07, 2.4074225e-06, 6.2053016e-07, 9.895185e-07, 2.1231817e-06, 5.107417e-06, 1.9196445e-06, 2.279443e-06, 1.78816e-07, 2.918832e-06, 1.6303065e-06, 1.3995557e-05, 3.7271278e-08, 7.159881e-07, 1.059618e-06, 2.258917e-06, 2.0854193e-07, 2.4586356e-07, 5.275983e-07, 2.4461443e-07, 7.5761e-07, 4.2390033e-07, 1.6908271e-07, 1.8666652e-06, 1.8524983e-05, 1.4771988e-06, 2.6837728e-07, 1.7947718e-07, 1.140592e-06, 1.8138328e-06, 6.742733e-05, 2.4207802e-06, 7.482425e-07, 4.8928086e-07, 4.0176797e-06, 1.5053209e-05, 2.5682698e-07, 6.180497e-07, 1.2896313e-05, 1.0683698e-06, 7.219537e-06, 2.5994248e-06, 7.657017e-07, 1.0884103e-06, 4.019638e-06, 1.1041446e-06, 8.6559413e-07, 3.2376015e-06, 5.8260262e-08, 3.7094105e-07, 1.7066193e-05, 9.563972e-07, 2.7943852e-06, 8.446875e-07, 8.798296e-06, 2.0743909e-07, 3.720597e-06, 9.2031805e-05, 3.2299022e-07, 1.3909248e-06, 1.5150531e-06, 1.1316872e-05, 3.735218e-07, 8.270013e-06, 9.53729e-08, 5.2934156e-05, 1.0523074e-05, 2.0331552e-07, 1.072588e-06, 2.2581287e-06, 1.7145777e-06, 1.3304353e-07, 7.8983436e-07, 8.3505965e-06, 4.7793077e-07, 8.633999e-06, 5.063731e-07, 2.9272896e-06, 1.6326154e-06, 1.6821863e-06, 1.6723036e-05, 2.907346e-07, 1.0632824e-06, 1.8857632e-05, 8.1562877e-07, 3.4525522e-07, 2.9374132e-06, 1.6777803e-06, 2.093815e-07, 5.092932e-06, 2.2783825e-06, 3.2003124e-06, 3.72425e-06, 1.1175212e-06, 7.551085e-07, 1.2608814e-06, 7.110252e-06, 6.5194e-07, 1.294883e-06, 1.4719675e-06, 6.0391164e-07, 2.758968e-06, 1.3804836e-06, 1.03495595e-05, 1.0754078e-06, 4.651161e-07, 8.321808e-08, 3.883249e-07, 4.3750847e-06, 6.9287e-06, 1.0790991e-06, 2.0175928e-07, 1.1477083e-06, 9.2724866e-07, 4.4966427e-07, 3.768524e-06, 8.53336e-08, 7.5422184e-07, 5.943853e-06, 5.7822704e-06, 1.1200253e-06, 2.2967261e-07, 1.7970591e-06, 5.6860836e-07, 1.3928349e-06, 6.2377126e-06, 5.0388206e-07, 6.703836e-06, 2.8018142e-06, 3.1146221e-06, 5.6211627e-07, 2.3552186e-06, 7.2731456e-07, 8.2250574e-07, 1.7007797e-07, 1.4904311e-06, 2.3674602e-06, 8.284086e-06, 1.5256389e-06, 5.753343e-06, 1.6530263e-06, 4.4300623e-07, 2.975805e-06, 1.5939414e-06, 1.2028959e-06, 1.9596916e-06, 5.4057625e-07, 2.5539276e-07, 3.354089e-05, 4.7010667e-07, 7.318403e-06, 6.808285e-07, 1.2269537e-05, 2.980676e-06, 1.2634037e-07, 5.5363403e-06, 3.1773146e-05, 9.6223175e-08, 1.5475484e-07, 1.4305355e-06, 3.206239e-08, 5.6593562e-06, 2.2849756e-06, 4.1018943e-06, 4.2290035e-06, 7.9598516e-07, 8.535069e-08, 3.1764587e-06, 2.3981077e-06, 2.4379176e-06, 2.924787e-06, 1.9348952e-05, 3.043286e-05, 3.9040322e-07, 1.9553707e-07, 3.6785837e-06, 9.770004e-07, 2.1725493e-06, 9.120881e-07, 2.3135665e-06, 1.628987e-06, 2.6829575e-06, 5.118893e-07, 6.0893008e-06, 2.598494e-07, 2.110724e-07, 3.142682e-07, 8.9087973e-07, 1.6903034e-05, 1.8139677e-06, 4.9642364e-07, 9.3815464e-07, 1.1011582e-06, 8.299229e-06, 4.316495e-06, 1.5535351e-06, 1.2686715e-07, 7.4317227e-06, 2.2307408e-07, 7.130532e-07, 1.6027021e-05, 2.522636e-07, 2.934066e-07, 1.3851732e-06, 5.2406995e-07, 3.4384148e-06, 1.7058935e-07, 2.2353183e-06, 1.1527202e-06, 2.0424222e-06, 9.0871504e-07, 9.279175e-07, 1.2784419e-06, 1.0543832e-06, 1.288475e-06, 7.744535e-07, 6.339913e-06, 1.9381142e-07, 3.6516923e-07, 5.14587e-06, 1.8609968e-06, 2.1099022e-06, 6.7389306e-06, 1.0700466e-05, 6.8114905e-06, 2.9642656e-06, 7.136022e-07, 7.744875e-07, 3.7833279e-06, 3.0161364e-06, 6.936075e-07, 4.3780747e-07, 1.0460443e-06, 8.8778995e-07, 2.3039381e-06, 1.7693857e-06, 1.115564e-06, 1.661298e-06, 2.6530446e-07, 4.3556693e-07, 3.4118489e-06, 1.5530655e-06, 7.466016e-07, 5.063683e-07, 1.3009085e-06, 1.5598796e-05, 1.0366763e-06, 1.1196889e-06, 3.0060828e-06, 1.356155e-06, 9.820625e-07, 2.1989595e-06, 1.6922332e-06, 1.3272423e-06, 1.9030645e-06, 2.1997091e-07, 8.5709223e-07, 3.8253297e-06, 3.4569968e-07, 2.6077578e-06, 3.483567e-06, 3.6281364e-07, 1.7578661e-06, 1.9342892e-06, 1.7658742e-06, 3.907155e-06, 8.981448e-06, 8.9915403e-07, 2.0014852e-07, 4.210974e-06, 4.8389336e-07, 2.2567508e-06, 8.9751427e-07, 6.308779e-08, 5.069776e-07, 4.775052e-07, 8.122239e-06, 5.8180678e-05, 1.3861193e-06, 3.4600296e-06, 6.8834534e-06, 1.4960676e-06, 1.9307035e-07, 1.0058861e-05, 1.646274e-06, 2.423841e-06, 1.2812272e-06, 6.536019e-08, 1.56902e-06, 7.662522e-06, 1.6937428e-06, 1.2506719e-06, 3.169654e-07, 1.827239e-07, 5.736246e-07, 1.476168e-06, 5.8050346e-06, 2.8127104e-06, 8.41238e-07, 9.861714e-07, 3.964515e-06, 1.5863016e-06, 5.7537403e-07, 1.9392207e-06, 6.138479e-07, 1.4168915e-06, 1.0203871e-06, 1.4193434e-06, 7.2978736e-07, 2.6645528e-06, 4.362764e-06, 5.1138727e-07, 1.5418674e-06, 2.1608723e-06, 4.441137e-07, 2.1684011e-06, 5.7982095e-07, 4.208252e-06, 6.2694644e-06, 1.0910754e-07, 8.9542823e-07, 7.5162893e-07, 1.2211142e-06, 5.671848e-06, 8.001827e-05, 5.315375e-07, 1.2871044e-06, 2.5712022e-06, 1.929912e-07, 4.3394084e-07, 3.7587375e-07, 1.1067423e-06, 1.4056023e-06, 3.7882778e-06, 4.107226e-06, 8.979295e-07, 9.980064e-07, 7.4344875e-06, 8.000773e-07, 3.3249592e-06, 6.2859344e-06, 1.2670778e-05, 6.181024e-06, 5.992325e-07, 1.4047648e-06, 1.2503236e-06, 3.9425134e-07, 2.5586876e-06, 3.5965681e-06, 3.2103972e-06, 5.080649e-08, 7.5429407e-06, 1.1273129e-05, 4.050838e-07, 6.827945e-06, 6.557428e-06, 1.5494928e-06, 7.5670454e-07, 5.3732815e-06, 3.926059e-06, 6.872614e-07, 2.1881797e-06, 8.326354e-07, 4.418257e-07, 2.5343563e-06, 1.6838235e-06, 8.0051086e-07, 5.0417003e-07, 4.4274334e-06, 1.7458055e-06, 1.312581e-05, 6.8006834e-06, 6.6938344e-07, 1.9611891e-06, 4.05965e-06, 1.2272673e-05, 4.318187e-06, 2.5695033e-06, 3.420368e-06, 1.8288926e-06, 7.090443e-07, 1.1700457e-06, 1.5462392e-06, 8.471674e-07, 1.19016195e-05, 1.0063437e-07, 3.5280016e-07, 8.083196e-07, 7.831007e-07, 2.2469967e-06, 3.2198745e-06, 5.46896e-06, 2.3607876e-07, 4.5549596e-06, 1.777636e-06, 1.8209928e-06, 1.0895079e-06, 3.649106e-07, 3.4167476e-07, 3.4340349e-07, 8.9606124e-07, 1.8848374e-05, 4.4522218e-07, 1.1343252e-06, 6.218925e-06, 6.378472e-08, 6.0418674e-06, 4.010594e-06, 8.1876243e-07, 2.5506273e-05, 2.0598866e-06, 3.0352992e-06, 7.1552597e-07, 2.509204e-07, 7.4251875e-07, 1.1561078e-06, 8.450162e-07, 1.1495174e-07, 2.30015e-07, 4.216791e-07, 3.6176586e-06, 1.8345672e-07, 3.6328088e-06, 1.041257e-06, 6.1919064e-07, 1.6489703e-06, 1.23177115e-05, 3.0211654e-06, 1.7541284e-06, 1.4839601e-07, 6.1302976e-06, 2.0154073e-06, 3.6311096e-07, 7.3696737e-07, 4.370341e-07, 1.5177255e-06, 1.2590387e-07, 2.3164412e-06, 7.050975e-07, 8.3458315e-07, 4.139802e-06, 5.4616526e-06, 3.749249e-06, 1.1025905e-06, 8.433087e-07, 2.094582e-07, 3.424967e-06, 5.2668106e-06, 5.819143e-07, 1.4725024e-06, 1.2079207e-06, 3.0717872e-06, 1.0360299e-06, 2.678918e-06, 2.2673117e-05, 4.2749342e-08, 7.203822e-06, 1.2097364e-06, 3.5521066e-07, 1.5892792e-05, 7.6659603e-07, 1.5075173e-07, 1.3642651e-06, 1.4929412e-07, 2.595537e-07, 2.5446576e-07, 1.00538834e-07, 2.9553246e-07, 6.4130705e-07, 2.1728714e-07, 6.822549e-06, 7.864933e-05]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>62</td>\n",
+       "        <td>0.05564801</td>\n",
+       "        <td>4</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, [2.4545777e-06, 5.2808724e-07, 4.793985e-07, 3.0648587e-06, 1.7589542e-05, 7.423473e-06, 2.8404587e-05, 7.702516e-07, 2.9076324e-07, 4.9191232e-05, 7.6386027e-07, 1.6786764e-07, 2.8007811e-08, 1.10271536e-07, 6.7959e-08, 4.662994e-07, 1.4375345e-07, 1.0798308e-07, 3.0669946e-07, 2.0534213e-07, 7.262093e-07, 1.9336496e-06, 5.923924e-06, 2.124527e-06, 1.517234e-06, 9.527852e-05, 0.00018055105, 8.729679e-06, 1.3466038e-05, 4.9883015e-06, 0.00016520561, 8.931284e-07, 0.00010447865, 0.008126934, 0.0041637723, 0.00013488345, 0.0004189078, 1.1425285e-05, 0.0005037103, 0.0009210269, 1.1044925e-06, 0.00024138592, 9.045082e-05, 9.4167415e-05, 0.0013647893, 0.0005210496, 2.0178764e-05, 5.4065484e-05, 0.0009393721, 0.05819438, 0.027708823, 5.9237965e-07, 0.00053300196, 0.002545086, 0.037394878, 6.184113e-05, 0.000853419, 0.0009619954, 0.1408455, 0.00020672889, 0.014558754, 0.00151045, 0.055647947, 0.011832289, 0.0007671514, 0.5346089, 0.006554945, 0.041236367, 0.039578155, 1.4561356e-05, 1.6464638e-07, 3.165858e-05, 3.935167e-07, 1.0918371e-06, 5.218124e-07, 2.7307672e-07, 1.0199102e-05, 3.5511948e-06, 2.86876e-07, 4.0874023e-05, 2.6729484e-07, 1.0093462e-06, 4.629379e-06, 2.1517774e-06, 1.2261435e-05, 4.338481e-06, 9.929987e-07, 1.7831232e-07, 2.4536823e-07, 1.5457067e-07, 1.2165957e-07, 3.4199334e-07, 5.923435e-07, 2.5983104e-06, 1.6504788e-07, 7.1641075e-08, 5.894999e-07, 1.5662519e-06, 5.8751893e-06, 3.89696e-06, 4.1094467e-05, 4.955301e-06, 6.5522227e-06, 1.9406043e-05, 1.6132468e-05, 3.7659976e-07, 6.3438647e-06, 4.0902314e-06, 1.0292862e-06, 6.6630196e-06, 5.040724e-06, 8.1575585e-05, 7.456448e-05, 2.8282989e-06, 3.618538e-05, 3.8675685e-07, 7.651428e-05, 1.0225481e-06, 1.266903e-05, 4.5824258e-05, 7.288306e-05, 3.3498336e-06, 2.992845e-06, 1.8091552e-06, 1.875435e-05, 6.7368404e-05, 4.9985447e-06, 3.3620515e-07, 4.305059e-06, 1.7280902e-06, 7.6235165e-07, 5.0209233e-06, 7.799939e-06, 1.937166e-06, 9.611823e-07, 1.614425e-06, 1.8713204e-07, 2.9885357e-06, 4.8278425e-06, 2.0012436e-05, 7.2182515e-06, 4.359301e-06, 1.574922e-05, 2.238073e-06, 1.7358202e-06, 1.3882881e-06, 2.0444086e-06, 2.4902007e-05, 8.8671567e-07, 9.5118907e-07, 5.4420452e-05, 4.4048585e-07, 1.533093e-07, 2.2423917e-07, 1.2845265e-07, 5.4538754e-07, 6.9552794e-07, 3.5553444e-07, 4.2179462e-07, 1.1077553e-06, 1.831457e-06, 1.143593e-06, 5.030103e-07, 9.824084e-07, 6.9452412e-06, 1.0099182e-06, 3.9539648e-07, 8.06763e-08, 4.0702827e-07, 5.923435e-07, 5.3197714e-06, 1.4797711e-06, 2.7858605e-06, 1.0203154e-06, 1.270072e-06, 1.7932915e-06, 1.1223898e-06, 1.32488985e-05, 2.3145172e-07, 2.5678237e-06, 6.031348e-07, 7.921732e-07, 2.581308e-06, 3.6643971e-06, 7.416457e-07, 9.522029e-07, 7.175475e-07, 1.1451864e-06, 2.0917491e-06, 9.24253e-06, 3.8683064e-07, 1.0389535e-05, 7.724614e-07, 7.472543e-07, 5.071702e-07, 1.6446974e-06, 1.1704658e-06, 3.0614149e-06, 1.409079e-06, 8.466847e-07, 1.8017014e-06, 3.507826e-07, 2.1284595e-06, 8.698909e-07, 1.224563e-06, 1.7106437e-06, 5.696064e-06, 4.514067e-07, 1.1763666e-06, 3.3413244e-06, 3.4128946e-06, 5.175482e-07, 3.714022e-06, 2.2927e-07, 2.316875e-06, 3.377438e-07, 2.3052058e-07, 2.61643e-06, 6.701335e-07, 8.474925e-07, 2.7116255e-07, 6.2081126e-06, 1.5719688e-07, 1.4582722e-06, 6.9947583e-07, 1.865066e-06, 3.862484e-06, 2.6300042e-06, 3.1585807e-07, 5.6471627e-06, 2.8117404e-06, 3.3101567e-06, 4.781126e-06, 5.332083e-06, 4.262747e-06, 3.4367472e-06, 1.5752081e-06, 9.933036e-07, 4.4076637e-06, 3.7497364e-06, 1.7161192e-06, 2.5797578e-06, 1.5539875e-06, 1.019196e-06, 1.471617e-06, 2.4699254e-06, 2.445008e-06, 7.9564916e-07, 9.740301e-07, 3.635142e-06, 1.5163473e-06, 1.1429203e-06, 3.060701e-07, 2.6062207e-07, 1.1011417e-06, 1.8995628e-07, 1.8400178e-06, 2.40029e-07, 1.1530976e-06, 4.4667553e-07, 1.499923e-07, 1.0562828e-06, 2.805113e-07, 3.573091e-07, 4.562204e-06, 9.904574e-07, 4.4645708e-07, 8.6095275e-07, 3.799917e-07, 5.7280236e-06, 1.5454673e-06, 8.292788e-07, 1.09758175e-05, 1.1667296e-05, 9.930498e-07, 8.749859e-06, 5.806174e-05, 1.8263291e-06, 2.6493578e-06, 2.9941327e-06, 1.7455774e-05, 1.29098025e-05, 5.3980243e-06, 6.8297766e-08, 2.1631668e-07, 6.335388e-06, 1.089367e-06, 2.0598577e-06, 4.8624817e-05, 1.12490325e-05, 9.968333e-06, 1.8108658e-06, 3.7059235e-06, 4.596375e-05, 1.0402488e-06, 4.026173e-06, 1.0984137e-06, 2.3183823e-06, 0.00011660683, 8.382035e-06, 1.2012907e-07, 2.1115221e-07, 1.6709426e-07, 2.803805e-07, 9.1352774e-08, 8.547764e-06, 8.3231095e-07, 7.207249e-07, 4.964948e-07, 4.7260255e-07, 1.924433e-06, 5.233134e-07, 3.1484038e-07, 8.789158e-08, 3.3203023e-06, 1.5410322e-07, 7.599468e-07, 6.5865486e-08, 2.2502013e-06, 1.9028707e-06, 2.0829236e-07, 1.9414686e-07, 1.737569e-08, 4.187208e-08, 2.133833e-08, 5.217957e-08, 7.756315e-08, 0.00028948556, 3.2254661e-06, 0.00045745773, 3.6141873e-06, 3.6879846e-06, 4.3864155e-08, 1.1546421e-07, 6.098287e-06, 4.7297253e-06, 7.4544114e-06, 2.3579938e-05, 1.7185849e-07, 8.238342e-09, 6.6577663e-06, 7.1307113e-07, 6.6831553e-06, 4.188079e-06, 1.1908708e-05, 2.2311808e-06, 2.3669925e-05, 5.633239e-07, 2.5464924e-06, 3.673358e-06, 9.228042e-06, 3.7669442e-06, 2.5243994e-06, 3.923309e-06, 1.5492952e-06, 5.415315e-07, 1.2985793e-05, 7.727771e-06, 1.1638047e-05, 6.415278e-06, 0.000117049596, 1.844425e-05, 3.0543357e-05, 7.667886e-05, 4.6682158e-06, 5.8063925e-08, 3.4565298e-07, 1.3907674e-06, 3.9034413e-07, 2.3856628e-06, 1.3961561e-06, 1.0203523e-06, 9.6493195e-06, 1.916817e-06, 5.992382e-06, 1.3963438e-06, 1.6447373e-07, 1.1997806e-05, 3.522568e-06, 7.992761e-07, 2.7826318e-06, 2.9383807e-06, 1.2469625e-06, 6.400709e-06, 8.6687646e-07, 1.3604218e-05, 3.653841e-06, 3.270486e-07, 2.1591251e-07, 7.4862564e-06, 0.0022334387, 2.6425723e-06, 8.8534085e-07, 3.9918265e-07, 1.4015102e-05, 6.251236e-05, 3.7113346e-06, 4.424491e-05, 5.257468e-08, 2.3197601e-06, 8.55421e-09, 6.37598e-08, 1.7909628e-07, 8.214551e-08, 3.2871288e-08, 6.140439e-08, 1.6078678e-07, 1.8680272e-07, 5.777686e-06, 3.2538915e-07, 8.600066e-07, 2.7519786e-08, 1.1244575e-06, 4.4513232e-07, 1.3912985e-07, 2.2559327e-07, 7.5065955e-08, 2.1787962e-07, 6.5873184e-07, 1.6194141e-07, 4.2486533e-07, 9.449337e-08, 4.586137e-07, 6.8615904e-08, 3.4233057e-08, 2.3015714e-08, 8.529465e-08, 1.1009139e-06, 2.085397e-06, 1.1364241e-06, 5.969457e-08, 5.854545e-08, 1.2437502e-07, 2.8979143e-06, 3.7183227e-07, 6.1114713e-07, 1.8259102e-07, 5.007582e-06, 2.0794462e-07, 7.3661596e-08, 1.2289431e-06, 4.696466e-07, 8.236131e-08, 3.7003272e-07, 9.213571e-07, 6.144086e-07, 2.8531753e-07, 1.6841451e-06, 3.648355e-07, 3.489435e-07, 2.1981393e-07, 3.489891e-07, 6.616541e-08, 1.7107e-07, 5.8820905e-08, 2.657458e-06, 6.7280183e-07, 7.9155576e-08, 3.4055512e-07, 5.2415576e-08, 1.9475921e-05, 2.0859183e-08, 5.2399713e-07, 3.550162e-06, 6.954769e-07, 1.5623053e-07, 4.141466e-08, 7.0278865e-08, 1.1458085e-07, 1.1404557e-07, 3.500317e-07, 5.067037e-07, 2.6709915e-07, 6.325267e-07, 2.1115885e-07, 6.933021e-07, 4.481367e-08, 7.1330064e-08, 4.751686e-07, 6.4066296e-07, 2.3656271e-07, 1.1212038e-07, 5.1450616e-08, 4.898539e-07, 3.9345363e-07, 7.469027e-08, 2.8215636e-08, 1.4027972e-06, 1.5045851e-05, 5.45923e-07, 3.3606793e-07, 6.793033e-07, 3.2025406e-07, 5.567628e-08, 5.144404e-08, 4.7856094e-08, 8.7845734e-08, 2.304809e-08, 3.320628e-08, 1.531284e-07, 8.455002e-07, 4.030141e-08, 5.826353e-07, 2.0933905e-07, 2.1854659e-07, 1.8154402e-07, 8.5039017e-07, 9.850174e-07, 4.691499e-08, 2.9529717e-08, 5.921111e-06, 1.4848057e-07, 5.5719124e-07, 3.0771523e-07, 7.578906e-07, 1.2629686e-06, 4.9141647e-08, 7.4479624e-07, 1.2221409e-06, 1.6379033e-07, 3.4507277e-08, 3.4415274e-07, 1.2394273e-07, 2.48148e-06, 3.051856e-08, 7.7588567e-07, 3.814518e-08, 1.1678488e-08, 3.970682e-07, 3.907356e-07, 6.9163754e-08, 3.2372859e-07, 4.107152e-08, 1.32908e-07, 7.114948e-08, 1.3805939e-07, 4.362909e-07, 1.7327786e-06, 1.0840065e-07, 4.287437e-06, 1.3406026e-06, 2.7652288e-07, 5.110169e-07, 2.6476766e-07, 3.4128325e-06, 7.380665e-08, 2.5400274e-07, 6.9870474e-08, 5.537498e-08, 4.607658e-07, 1.6728343e-08, 1.2180828e-07, 3.1195963e-08, 3.9396355e-07, 2.7166365e-07, 1.8899802e-07, 1.434787e-07, 5.057714e-07, 1.0786199e-06, 9.368018e-08, 4.7229683e-08, 8.0803005e-07, 5.0072924e-07, 2.4026627e-07, 1.9182908e-08, 8.188763e-08, 1.274422e-07, 2.8407675e-07, 2.4712435e-07, 1.4823198e-07, 5.0134037e-07, 7.983131e-07, 1.8063096e-07, 7.675681e-06, 4.8255936e-07, 8.072598e-07, 1.6763661e-07, 1.07333484e-07, 6.337291e-08, 1.5299548e-08, 1.586752e-07, 2.2856735e-08, 1.3107238e-07, 3.1036965e-08, 4.9698727e-08, 5.08264e-07, 1.4144146e-06, 1.758415e-06, 2.6504657e-07, 9.582741e-08, 5.6582618e-08, 2.8249872e-07, 1.8841897e-08, 8.451918e-08, 1.1465327e-06, 6.435631e-07, 7.6025344e-07, 5.33686e-08, 1.4108464e-07, 4.900749e-07, 1.1835917e-05, 1.6986917e-08, 5.604835e-08, 3.662114e-07, 6.067581e-08, 2.396404e-07, 4.516629e-07, 4.7011735e-08, 3.1379034e-07, 2.5050101e-06, 3.2410483e-07, 1.0516861e-06, 1.4487472e-07, 3.085546e-08, 4.3942286e-08, 4.497369e-07, 4.5126813e-05, 5.931131e-08, 3.7003736e-07, 2.668337e-08, 8.2547594e-08, 7.860159e-07, 1.1476485e-06, 3.1438208e-06, 7.495808e-08, 2.8493167e-07, 1.9044575e-06, 1.75579e-07, 2.7747865e-07, 1.8837882e-07, 3.0251408e-07, 5.71522e-07, 3.9703924e-08, 2.5046242e-07, 7.552639e-08, 4.5776423e-07, 9.707653e-08, 1.4215377e-07, 1.4616903e-06, 1.1546075e-06, 2.3138962e-06, 1.7347833e-07, 4.9520267e-08, 3.0973612e-07, 1.7835579e-06, 3.6174768e-08, 6.2489794e-06, 2.0208286e-07, 7.262567e-08, 3.0372778e-06, 1.3853102e-07, 2.5439329e-07, 3.3290007e-07, 3.0902535e-07, 5.590861e-07, 1.06721984e-07, 6.7565156e-07, 2.1733736e-07, 3.322144e-07, 2.0757233e-07, 7.719017e-07, 8.4283094e-08, 1.0376899e-07, 1.9896996e-07, 2.2272106e-07, 7.127427e-07, 9.009337e-07, 3.2640187e-08, 2.0750068e-07, 4.8350348e-08, 7.0408504e-07, 5.6114324e-05, 7.5532836e-07, 8.887479e-08, 7.085125e-07, 1.1560844e-07, 3.8795744e-07, 3.976793e-06, 4.6256346e-07, 5.975669e-07, 3.0750516e-07, 7.345843e-08, 2.4090642e-07, 2.1353691e-07, 3.3497807e-07, 1.00545954e-07, 4.805937e-07, 8.9473104e-09, 1.5028067e-07, 2.299759e-08, 2.2111642e-07, 8.5874444e-07, 1.4600192e-07, 2.5260093e-07, 4.1094324e-08, 3.6426795e-06, 6.740626e-07, 1.0925928e-07, 1.2064076e-07, 2.6033217e-07, 2.3739936e-07, 4.02779e-06, 6.986927e-08, 4.927631e-07, 2.0377253e-07, 4.859285e-08, 6.001323e-07, 4.019476e-07, 6.5550914e-08, 3.255296e-08, 4.502512e-08, 4.5910076e-07, 1.9682864e-07, 1.5400917e-07, 2.1057043e-07, 3.4854838e-07, 2.8710346e-07, 7.8076866e-08, 3.7246292e-07, 8.849859e-08, 2.2556638e-07, 8.8687415e-08, 1.4012883e-07, 2.5905608e-08, 4.2669419e-07, 3.5269767e-07, 9.342652e-08, 1.16506385e-07, 1.8241785e-07, 2.592098e-08, 2.0602221e-07, 5.343529e-07, 4.3310727e-08, 3.1328245e-06, 3.7680095e-07, 1.6470683e-07, 1.3352549e-08, 4.713009e-07, 4.3408545e-07, 3.0829065e-07, 4.148033e-07, 3.5043252e-07, 4.1328406e-08, 1.039676e-07, 2.0944228e-07, 3.6792827e-08, 1.9913675e-06, 7.9480465e-08, 3.3763465e-07, 3.8642725e-07, 3.1329128e-07, 1.0457145e-06, 5.3874476e-07, 5.3555846e-07, 2.299623e-08, 2.9225612e-07, 1.2956369e-06, 5.7133235e-07, 1.7188988e-06, 1.951809e-07, 3.692544e-07, 3.600926e-07, 5.115637e-08, 2.873042e-07, 3.5520603e-07, 4.8817757e-08, 3.2432975e-08, 2.3311536e-07, 2.5904757e-07, 5.7130944e-07, 5.5044434e-06, 5.5146495e-07, 3.4003781e-07, 1.2421808e-07, 1.0033226e-05, 1.1899007e-06, 1.1852086e-06, 2.8190502e-07, 3.9343806e-08, 6.526603e-08, 2.8353597e-07, 3.716835e-08, 7.739528e-08, 1.2510313e-06, 1.1097918e-06, 1.4137441e-08, 5.196871e-08, 1.2651475e-07, 4.3768156e-07, 5.16784e-08, 1.8941446e-07, 3.4604793e-06, 2.1872393e-06, 1.603818e-06, 2.8407675e-07, 7.211409e-07, 4.7171773e-07, 7.0506945e-07, 2.37784e-08, 2.6139796e-07, 1.0857099e-08, 4.7737427e-05, 1.7715913e-06, 2.4736508e-07, 5.6247893e-07, 1.7013748e-06, 5.3935753e-07, 6.814604e-08, 8.114711e-07, 2.0709443e-07, 2.1679611e-08, 5.5730574e-08, 1.0388673e-07, 2.0995584e-07, 3.1774303e-07, 1.2546808e-07, 1.5703132e-07, 9.148216e-08, 1.1042813e-07, 1.16445406e-07, 2.0244965e-08, 1.4764365e-07, 9.9541595e-08, 2.9003402e-07, 5.2911406e-07, 3.6716312e-06, 1.8401056e-06, 2.6981215e-07, 2.3241279e-07, 4.6320945e-08, 6.2793663e-07, 4.0248636e-08, 7.398446e-08, 7.438862e-07, 8.786995e-08, 2.891773e-07, 7.3661136e-07, 6.0076565e-07, 2.798309e-06, 2.8826727e-07, 2.20146e-07, 1.3246057e-07, 4.587592e-06, 1.1943971e-06, 4.5323137e-07, 6.210182e-07, 7.987308e-08, 1.1633191e-06, 2.6830708e-08, 2.667916e-07, 9.157102e-08, 2.2695318e-07, 2.539181e-06, 2.993917e-07, 1.3205372e-08, 5.2766785e-07, 4.7152092e-08, 4.660542e-08, 4.905271e-07, 1.408878e-07, 4.298302e-08, 6.095104e-07, 1.6381455e-07, 6.7567737e-07, 1.3618406e-07, 2.9217654e-08, 6.0456813e-07, 3.481089e-07, 2.199539e-06, 3.1379585e-08, 4.0919085e-06, 1.3511705e-07, 1.7438792e-06, 5.164891e-07, 6.14058e-08, 1.692717e-07, 6.0094214e-07, 4.616263e-08, 1.7136415e-08, 1.8789655e-07, 1.664482e-05, 1.109561e-08, 2.0408984e-06, 5.144324e-07, 2.2324717e-07, 7.9635775e-08, 2.3219015e-07, 1.4640878e-07, 1.3904564e-07, 6.791909e-08, 5.3922327e-07, 1.7450128e-07, 2.2044287e-07, 8.2480156e-08, 7.791018e-08, 3.608704e-08, 1.4282757e-06, 4.4595026e-07, 6.1917463e-06, 1.2274731e-06, 6.541434e-08, 5.510292e-07, 6.2777127e-07, 9.852104e-08, 9.2759166e-08, 1.0801202e-07, 5.1773508e-08, 7.03263e-07, 5.48382e-08, 9.163828e-08, 1.8281544e-07, 2.2309499e-07, 1.5063874e-06, 2.9042156e-05, 8.7185555e-08, 3.4663535e-07, 2.3967124e-07, 6.1186444e-07, 2.6795408e-07, 1.7159874e-07, 2.5335256e-08, 1.0267665e-06, 1.2672062e-07, 1.19088995e-07, 9.9702916e-08, 6.4066995e-08, 1.2536097e-08, 9.928059e-08, 7.231101e-08, 2.8704923e-07, 6.1002176e-08, 2.986067e-07, 1.2906129e-06, 5.925127e-08, 1.8925866e-07, 9.22468e-08, 1.4960415e-07, 1.06911564e-07, 4.2838074e-08, 3.6908082e-07, 1.1071727e-07, 3.8998283e-07, 1.568034e-07, 3.122595e-07, 8.165866e-08, 1.6952727e-07, 1.9333584e-08, 1.3010535e-07, 3.7023185e-07, 3.297176e-08, 6.786729e-08, 2.6440307e-07, 4.7650342e-08, 2.6313728e-07, 1.0631267e-06, 7.3527224e-07, 1.0764516e-06, 7.899638e-08, 4.3475617e-07, 8.123929e-08, 9.337006e-08, 5.917117e-07, 8.175583e-08, 2.3680897e-07, 1.224908e-07, 1.1772941e-07, 7.237772e-08, 1.7921716e-08, 2.1354629e-07, 1.7915333e-07, 4.6141595e-06, 1.3726662e-06, 4.41399e-06, 1.4019968e-05, 5.0816493e-06, 3.158545e-05, 1.0377246e-05, 0.00013469988, 0.00012541312, 8.943293e-07, 3.5171972e-06, 4.143929e-07, 5.997899e-08, 3.7551363e-06, 2.5072768e-07, 4.117451e-08, 1.9050432e-07, 3.9115857e-06, 2.6173373e-07, 2.9716453e-08, 1.8971113e-07, 2.3804073e-07, 5.234724e-08, 1.01332226e-07, 4.7450158e-07, 1.5748033e-07, 6.902779e-07, 8.266525e-07, 3.983048e-06, 1.5279669e-07]),\n",
-       " (2, [1.5398843e-09, 2.3107729e-08, 7.636333e-08, 2.2277517e-07, 1.7589974e-07, 5.438902e-08, 9.2527934e-08, 4.70354e-08, 9.018498e-09, 1.8840204e-08, 2.2168626e-07, 5.591516e-09, 3.5177464e-08, 4.6703323e-07, 4.6959094e-09, 4.3828187e-08, 1.6602337e-08, 2.8010957e-08, 1.4341178e-07, 8.532091e-08, 5.8298728e-08, 8.00204e-09, 3.6414684e-07, 3.851048e-08, 2.0718534e-08, 2.6480208e-08, 3.3010747e-09, 4.47217e-08, 2.8583589e-08, 6.513382e-10, 1.9336234e-08, 5.272263e-10, 2.404317e-09, 1.12124745e-07, 7.488657e-07, 6.5691674e-09, 4.623265e-09, 1.6595015e-09, 1.9597215e-08, 1.6531517e-07, 1.6838877e-08, 8.48814e-09, 2.9826325e-08, 4.543374e-09, 2.3641775e-08, 4.0592163e-08, 6.912111e-09, 3.3884773e-09, 1.042833e-08, 7.361764e-09, 4.2130747e-08, 1.6772022e-07, 1.4776109e-09, 5.525266e-09, 4.0264826e-08, 1.278795e-09, 1.4832867e-07, 4.2117554e-09, 1.3611935e-07, 3.0520868e-09, 6.4132884e-08, 1.4925305e-08, 5.7810297e-08, 6.520122e-09, 2.525428e-09, 2.0901005e-07, 3.504386e-08, 2.659847e-07, 1.3491556e-08, 8.361713e-08, 7.3479924e-08, 1.3090515e-08, 4.685739e-08, 1.2734573e-07, 1.3352158e-07, 9.6114135e-08, 3.8392837e-08, 1.2469758e-07, 5.4070338e-08, 1.2920589e-07, 3.2127724e-07, 1.414701e-05, 3.858608e-07, 1.1320818e-08, 1.5107693e-08, 3.15158e-08, 3.0302337e-07, 3.696147e-09, 2.5316362e-08, 1.6199753e-08, 5.834453e-09, 6.6545938e-09, 7.8418395e-08, 2.9896134e-09, 9.421624e-09, 2.3791766e-09, 2.7823246e-09, 1.8130814e-09, 4.316991e-09, 1.6660833e-08, 1.0815284e-08, 1.2120864e-08, 7.508208e-09, 2.4426359e-09, 7.537742e-08, 2.1063304e-09, 3.549428e-09, 4.384449e-08, 7.2657627e-09, 3.1592776e-08, 2.4405764e-10, 1.6091322e-08, 1.8533458e-06, 2.4308275e-08, 3.7633074e-09, 1.6087233e-09, 2.277431e-08, 5.8490266e-09, 4.0977223e-08, 3.8039954e-07, 1.3494928e-08, 1.781187e-07, 6.407897e-08, 5.389317e-07, 8.723511e-08, 7.2745024e-08, 2.6316968e-08, 6.543285e-08, 7.232058e-08, 4.530396e-08, 1.2370523e-07, 1.0784221e-08, 4.778658e-08, 8.2433225e-09, 1.152689e-07, 1.4541708e-08, 4.6979163e-09, 1.9269741e-08, 6.921267e-09, 2.708216e-07, 5.5321866e-08, 1.6940814e-07, 2.0328073e-08, 2.275105e-07, 7.400611e-08, 4.040531e-06, 5.9436662e-08, 3.5894548e-08, 5.200469e-08, 1.9099544e-09, 2.3085869e-07, 6.950096e-08, 9.922675e-09, 8.168692e-08, 7.0257973e-09, 8.1655614e-08, 1.0280881e-06, 3.198189e-08, 1.8011564e-08, 1.1670971e-06, 4.824007e-08, 4.8371714e-07, 2.3133298e-07, 9.200232e-07, 2.2442546e-07, 4.7174932e-08, 1.1280227e-07, 2.7898892e-07, 8.8787215e-07, 9.2161355e-07, 2.3470897e-05, 1.7707903e-06, 6.7424407e-06, 6.0599414e-06, 2.8161035e-06, 9.434914e-09, 1.0188343e-06, 5.5756454e-06, 3.1946593e-06, 8.136942e-07, 1.1003609e-07, 4.576751e-07, 3.3645716e-07, 2.740537e-07, 5.4528084e-07, 5.777307e-07, 2.9695158e-07, 7.171372e-08, 2.6257868e-07, 1.6330781e-06, 9.9922396e-08, 6.695125e-07, 8.737203e-07, 8.1306325e-08, 5.515203e-08, 6.864878e-07, 7.5751146e-08, 1.1799731e-06, 1.4831099e-07, 2.772437e-07, 1.7763999e-07, 2.098404e-08, 1.940811e-07, 2.6700523e-06, 1.0012253e-07, 6.0266035e-07, 4.6589884e-07, 6.262852e-07, 3.776922e-06, 7.038604e-06, 2.2661327e-06, 1.1063678e-06, 6.118894e-07, 2.5951251e-06, 2.1583949e-06, 2.2275087e-06, 5.9048972e-08, 9.353487e-07, 8.8109886e-07, 1.6752422e-07, 4.7095458e-08, 1.1280829e-07, 6.4681115e-07, 1.4628699e-06, 1.5081841e-06, 6.317585e-07, 1.1813028e-06, 1.900376e-07, 2.4231375e-07, 2.6553482e-07, 4.894391e-07, 2.6518939e-07, 1.5399695e-07, 8.8166956e-07, 6.533642e-07, 4.457954e-07, 1.8340435e-06, 1.855212e-07, 4.893554e-06, 2.3288433e-06, 2.3774019e-06, 5.201625e-06, 7.6095256e-07, 2.3237685e-07, 1.4151934e-07, 8.257309e-08, 2.1411304e-06, 2.2388014e-05, 1.3785373e-05, 5.831647e-06, 1.3944214e-05, 2.2903537e-06, 4.6498332e-08, 4.6375638e-07, 6.242959e-07, 2.3912223e-06, 1.4558304e-06, 9.471192e-07, 5.5140313e-06, 9.166841e-08, 1.2893312e-07, 3.9749816e-07, 4.1223927e-08, 3.76367e-07, 1.4717683e-06, 9.8032444e-08, 3.420696e-07, 1.1348545e-06, 1.233211e-07, 6.2267026e-07, 1.1291587e-06, 6.029464e-08, 4.1942053e-06, 3.126346e-07, 2.5256027e-08, 3.411787e-08, 1.6709652e-08, 1.0040704e-06, 2.5781976e-08, 9.700623e-07, 1.6046155e-07, 2.0606766e-08, 2.4433362e-08, 4.4592547e-09, 1.1156811e-08, 1.8641177e-08, 1.579223e-07, 2.0955612e-07, 2.9641933e-09, 4.2151328e-08, 8.4548657e-10, 1.2786364e-09, 5.8412592e-08, 7.3222175e-09, 3.4796508e-07, 6.028762e-08, 2.8341196e-06, 2.5817788e-09, 1.6543543e-08, 5.1597104e-09, 6.515199e-09, 2.4591106e-08, 1.10343e-08, 2.3506432e-08, 2.5722677e-09, 9.193776e-09, 7.1656943e-09, 6.2450964e-09, 4.8909826e-08, 2.9583264e-08, 1.0357064e-07, 7.1164735e-08, 3.6447915e-08, 3.097284e-07, 4.2578133e-08, 1.8602746e-08, 4.852659e-09, 4.6380855e-09, 8.3475065e-08, 7.4244093e-07, 2.558261e-08, 3.2909315e-07, 7.988803e-09, 2.3116634e-08, 3.85773e-08, 1.5388956e-08, 7.1112463e-09, 1.4074487e-07, 2.9982766e-07, 1.564242e-08, 1.0789998e-07, 1.299596e-07, 1.7822981e-09, 2.1977655e-09, 3.8496357e-09, 1.3551873e-09, 5.3080055e-07, 5.1470135e-08, 8.4123347e-10, 7.115103e-08, 1.0199323e-07, 8.621156e-08, 3.209869e-07, 1.0228442e-08, 3.5695646e-09, 1.6592921e-06, 5.754166e-08, 4.5394786e-06, 6.6713767e-07, 8.642847e-06, 8.179076e-06, 8.936807e-08, 7.0527335e-08, 9.755931e-08, 1.8077302e-06, 2.6266648e-06, 1.8360647e-06, 1.18492515e-07, 1.0602841e-08, 2.8182551e-08, 8.855424e-09, 3.9218904e-08, 9.4692405e-09, 1.8187903e-08, 6.0960176e-10, 2.8660767e-09, 2.7049174e-09, 2.9135108e-09, 2.0202557e-09, 3.7000687e-09, 1.3453749e-09, 7.608665e-08, 1.4827498e-08, 1.8008379e-07, 3.214444e-08, 3.3369876e-09, 1.1487082e-08, 1.0620547e-09, 1.0122127e-08, 2.7668134e-09, 1.38777265e-08, 5.459645e-09, 9.779465e-09, 1.4373716e-08, 1.4275604e-08, 3.1167882e-08, 1.6579142e-08, 1.6735798e-09, 1.7655769e-09, 2.4233465e-08, 7.761856e-08, 8.390994e-07, 8.398905e-09, 1.0605148e-08, 3.585211e-07, 5.846406e-07, 2.773881e-07, 9.707507e-09, 1.7990827e-08, 7.335421e-07, 5.715663e-08, 1.6425967e-06, 2.6860542e-07, 1.945019e-07, 4.4494698e-08, 2.3012471e-07, 1.0821924e-07, 2.522256e-07, 5.9017445e-08, 4.4775834e-07, 2.4033554e-06, 5.852322e-08, 3.763297e-07, 1.2767528e-05, 3.413865e-07, 2.4368111e-08, 1.2132007e-07, 2.718393e-07, 4.8032852e-08, 4.3237666e-08, 3.820392e-07, 2.2197873e-06, 3.518223e-08, 6.4883015e-09, 1.7396843e-08, 1.4981359e-05, 9.289176e-08, 5.7502575e-07, 2.5261088e-06, 7.218663e-08, 1.6187707e-08, 2.5262677e-08, 1.4110595e-06, 2.7774984e-06, 5.1647742e-08, 1.7309242e-07, 6.657365e-08, 1.1532635e-06, 2.5521492e-08, 1.2916955e-07, 1.5800223e-06, 5.573535e-08, 6.0709255e-08, 2.8454885e-08, 2.6240545e-07, 2.2590486e-06, 6.349486e-08, 2.5054753e-06, 1.0332632e-06, 7.5764866e-08, 3.0934818e-05, 1.0285893e-06, 4.9956363e-08, 3.806668e-08, 1.12557945e-08, 4.212406e-09, 9.062275e-06, 2.1683526e-07, 7.8610384e-08, 3.9823655e-07, 1.2365699e-05, 2.6495582e-07, 7.8097855e-06, 1.8755473e-07, 4.612106e-09, 1.1201466e-07, 1.1676837e-08, 3.508029e-09, 9.1218254e-08, 7.643896e-08, 1.5362502e-08, 9.381413e-07, 2.6301302e-07, 6.57294e-09, 7.180635e-07, 3.8983737e-07, 1.554282e-08, 8.0090764e-08, 8.545088e-08, 1.569008e-08, 5.355029e-08, 2.2874363e-07, 3.753023e-08, 3.225784e-07, 1.6325798e-06, 3.007842e-09, 3.2840123e-07, 3.130718e-08, 5.363401e-08, 9.742059e-08, 3.938637e-08, 1.09314815e-05, 2.7909737e-08, 1.9837347e-07, 1.0354215e-06, 5.9552523e-08, 1.6291214e-07, 2.0342968e-06, 2.5287791e-08, 1.59485e-07, 9.795091e-07, 3.1564498e-06, 1.7559394e-08, 1.6565266e-08, 2.620732e-08, 4.9752394e-08, 1.6515578e-08, 1.9081748e-08, 7.422872e-09, 3.3019376e-09, 1.7074969e-07, 1.0950456e-08, 8.516746e-09, 1.1135265e-06, 1.636078e-07, 1.3219143e-06, 3.5221102e-08, 4.5833468e-07, 1.7809934e-07, 1.052475e-07, 2.4009454e-08, 4.471895e-09, 3.8112885e-06, 4.0083058e-05, 1.1635215e-07, 5.101486e-07, 3.6760483e-08, 1.9992733e-08, 9.947765e-09, 3.0854395e-08, 1.118227e-08, 4.7650698e-08, 8.499971e-08, 2.4238595e-08, 1.4947384e-08, 3.6674674e-09, 6.124752e-08, 0.00038468122, 1.8884897e-07, 2.5177487e-08, 2.9864592e-07, 1.9823315e-07, 1.1138956e-07, 3.4749004e-08, 4.807366e-07, 1.1343858e-08, 1.24109e-07, 3.708061e-08, 1.3761401e-07, 7.507371e-07, 8.474337e-10, 3.2129975e-08, 1.6138574e-07, 4.289849e-08, 4.1769333e-08, 1.524812e-07, 4.4421853e-08, 3.3816161e-06, 1.883187e-06, 8.6855124e-07, 3.4589572e-08, 1.10152946e-07, 2.6198538e-07, 1.5651674e-08, 2.0048878e-07, 1.0421765e-07, 4.6393686e-07, 7.667737e-09, 3.3911301e-06, 5.303072e-07, 6.010618e-07, 9.7195084e-08, 4.687357e-08, 1.2324756e-08, 3.2322134e-07, 7.846987e-08, 2.5114367e-08, 7.899244e-08, 2.5696616e-07, 1.01712125e-07, 5.3800395e-08, 4.404471e-09, 7.0128237e-09, 4.1187302e-08, 2.6257606e-08, 7.664451e-08, 3.842652e-07, 6.999354e-07, 5.2077125e-09, 1.8243146e-08, 8.38386e-09, 1.0335663e-07, 6.9752186e-09, 5.2016794e-08, 8.570752e-07, 1.0925754e-08, 3.7993168e-06, 2.1593397e-08, 8.062468e-08, 1.6209674e-08, 9.4739295e-07, 3.8672835e-07, 2.2282576e-07, 4.2491993e-07, 4.789252e-08, 5.8676232e-08, 5.8623435e-08, 1.3501982e-08, 2.2437293e-06, 1.702915e-06, 9.943773e-07, 3.649515e-08, 1.6232762e-07, 3.140646e-08, 1.11932536e-07, 3.590689e-07, 1.3766297e-07, 5.5616647e-07, 5.2407668e-08, 2.748883e-08, 9.189626e-08, 2.5330624e-07, 6.336275e-08, 4.12668e-08, 6.258344e-09, 1.3503933e-07, 1.733054e-08, 1.9494284e-08, 1.6185105e-07, 1.3785838e-08, 6.109794e-08, 1.8560323e-08, 1.6609394e-07, 2.476262e-08, 2.6778312e-07, 4.351084e-08, 3.084329e-07, 7.817878e-06, 1.8975626e-06, 2.0993969e-06, 2.6453353e-08, 2.2118513e-07, 8.731006e-07, 1.6439921e-07, 2.3696006e-07, 1.787288e-06, 4.8213653e-05, 8.37574e-09, 6.81651e-09, 2.8432564e-06, 2.704404e-07, 4.226339e-08, 9.407418e-06, 9.6293405e-08, 3.725218e-07, 1.2643505e-06, 9.604207e-07, 7.47385e-06, 3.566186e-07, 9.538723e-09, 1.6844483e-06, 7.3710655e-09, 5.2484666e-09, 8.958981e-07, 7.355466e-08, 3.6778154e-08, 6.467584e-08, 1.0149527e-07, 1.1401684e-07, 2.0010434e-08, 2.130884e-08, 3.8332364e-06, 0.0007202051, 8.997154e-10, 3.1479754e-08, 8.319596e-08, 2.7916498e-08, 1.4024812e-06, 8.000587e-08, 6.105344e-08, 1.6910072e-08, 2.397463e-08, 2.5698992e-07, 8.2904137e-07, 2.7703791e-08, 2.4609814e-09, 8.351855e-10, 5.907249e-09, 2.3557195e-08, 5.1269083e-08, 3.1052042e-07, 1.9230353e-07, 1.3536194e-07, 5.51488e-07, 1.9878282e-08, 7.9125144e-08, 8.0264836e-05, 2.3167297e-07, 9.360291e-08, 3.483506e-07, 1.8976078e-06, 9.991526e-06, 7.9052325e-07, 2.5110057e-06, 1.2902883e-05, 1.06492195e-07, 1.8583303e-07, 5.769002e-08, 3.6822023e-08, 1.5638037e-08, 1.6243138e-07, 1.0981206e-07, 1.0313105e-09, 2.2036936e-08, 1.6936184e-08, 5.209431e-07, 1.066118e-05, 3.8097987e-08, 6.077448e-08, 8.576721e-09, 2.7099158e-09, 6.393335e-07, 6.024069e-09, 8.597185e-07, 2.4906703e-07, 1.7457806e-08, 9.4648165e-09, 2.0813505e-07, 1.3174564e-06, 4.096353e-09, 4.0667996e-06, 8.2589827e-07, 3.04197e-08, 2.339224e-05, 3.6062332e-08, 1.1635309e-06, 4.037927e-08, 6.19253e-08, 3.770228e-08, 6.161791e-08, 1.5994248e-06, 6.009784e-08, 8.941896e-08, 1.1777902e-07, 2.4193057e-06, 9.981634e-09, 3.2275516e-06, 5.3249114e-08, 1.5546792e-08, 6.834216e-07, 3.9778675e-07, 4.532384e-08, 6.9061976e-08, 1.1572694e-08, 5.0055938e-08, 6.2338563e-07, 4.9324466e-08, 5.308013e-06, 3.0234658e-06, 1.6129864e-07, 7.341118e-07, 4.529463e-08, 4.721031e-08, 2.7191814e-07, 9.214177e-05, 3.4954944e-08, 5.892889e-09, 6.9181067e-07, 3.0443786e-08, 9.5250334e-07, 6.399774e-08, 1.8667293e-08, 4.4535962e-08, 7.128982e-09, 6.305315e-08, 1.3619449e-06, 8.321957e-07, 6.1739435e-08, 7.1391058e-09, 3.2976266e-07, 4.1574063e-07, 9.305059e-09, 1.4348497e-07, 1.12088614e-07, 1.717341e-07, 9.155937e-10, 8.49131e-08, 2.274656e-07, 1.31738735e-08, 6.4238044e-08, 2.5300033e-09, 4.735305e-07, 0.0016679094, 4.3191326e-07, 1.3948901e-08, 0.6965568, 0.00032454787, 3.5461414e-06, 3.661261e-09, 1.7207987e-07, 9.268941e-09, 2.3562737e-07, 0.0002525007, 8.555244e-05, 1.0181198e-09, 6.2870043e-07, 1.4091459e-06, 1.3009806e-06, 2.7303082e-07, 1.4669624e-09, 8.454194e-09, 1.8131272e-08, 2.4682942e-07, 1.1727215e-06, 1.1580163e-07, 4.3070994e-08, 1.063989e-07, 1.1100011e-08, 9.354254e-07, 1.5596758e-07, 1.1565727e-07, 1.0455736e-08, 1.5751957e-06, 7.423669e-08, 2.7763226e-06, 6.379263e-06, 8.358341e-08, 1.1284831e-07, 8.936478e-09, 2.7141138e-07, 1.1885099e-06, 3.5644707e-08, 4.211571e-05, 8.188094e-07, 4.756142e-07, 4.3325363e-07, 3.3440047e-06, 3.8567996e-06, 2.567217e-07, 2.7330253e-07, 5.7382164e-07, 1.7412797e-06, 1.52012235e-05, 3.6163758e-06, 4.464074e-08, 1.5914673e-06, 2.5722297e-08, 5.8252516e-07, 5.265234e-08, 8.234005e-09, 6.593523e-08, 7.2670247e-07, 6.157772e-08, 1.9472304e-06, 1.6877687e-08, 5.4864344e-08, 1.2159968e-07, 8.8625045e-09, 3.85879e-08, 1.18826236e-07, 5.029152e-09, 7.548831e-09, 4.8796755e-06, 3.368214e-06, 3.206473e-07, 2.0191665e-08, 7.773727e-07, 8.836705e-07, 2.781339e-08, 8.5779556e-07, 6.021054e-07, 5.5811405e-08, 0.00017171177, 1.3041937e-07, 1.03372e-07, 9.105134e-07, 1.9368134e-07, 3.4401072e-08, 6.993172e-10, 1.4681606e-05, 2.6645605e-06, 5.3564694e-08, 1.8430373e-07, 3.574854e-08, 4.3808715e-08, 1.1790208e-07, 2.903986e-08, 1.7527881e-07, 9.018778e-08, 5.909041e-07, 1.3226456e-06, 9.100276e-10, 9.4933505e-08, 1.7600302e-08, 1.237418e-07, 2.4791518e-06, 1.6265204e-08, 5.6816635e-08, 3.0899054e-07, 2.259528e-07, 1.2160329e-07, 1.7874806e-08, 1.1018447e-07, 8.6053426e-08, 1.6846097e-09, 1.3612078e-09, 4.0714268e-09, 3.1117708e-07, 1.8836668e-06, 2.4274023e-09, 1.6711957e-07, 1.2489967e-07, 5.7767593e-06, 0.00023884398, 4.883025e-07, 0.00018770229, 6.8687876e-07, 3.7221625e-08, 1.396456e-07, 9.718689e-07, 9.019608e-07, 3.1364755e-07, 1.7217104e-08, 4.8390746e-08, 7.264543e-09, 7.605233e-10, 1.654826e-10, 6.4277764e-08, 1.371566e-07, 9.566331e-08, 6.1089866e-09, 1.1865948e-08, 9.200144e-09, 2.860801e-09, 3.0422314e-08, 1.2621048e-08, 5.286336e-08, 6.646337e-09, 1.1934101e-09, 1.2263828e-09, 1.2506999e-09, 1.0561177e-09, 1.5004105e-09, 4.2410333e-09, 1.4444183e-08, 2.3039358e-10, 7.3044473e-09, 7.0201445e-09, 4.5222894e-08, 6.5248993e-09, 3.0367296e-08, 1.61907e-08, 2.812724e-08, 7.16595e-10, 2.4030102e-09, 1.4037422e-09, 2.8542007e-09, 6.8244588e-09, 7.394124e-07, 8.272793e-09, 9.1326186e-08, 3.4254477e-08, 3.938575e-09, 1.2116357e-08, 2.4269255e-09, 2.9024413e-08, 1.6277409e-07, 4.0866994e-09, 4.3306834e-08, 7.559003e-09, 0.29820144, 6.001986e-07, 4.3510576e-05, 6.434583e-08, 4.367675e-05, 6.187613e-06, 5.1900697e-06, 4.6378314e-06, 8.057671e-06, 5.7155186e-05, 1.4133632e-05, 1.1964084e-07, 1.1058091e-07, 4.345451e-07, 3.3152878e-07, 8.424061e-09, 8.0378465e-10, 4.2880637e-09, 4.369939e-08, 6.1343945e-07, 2.029015e-08, 3.3226485e-08, 7.760297e-09, 3.8018118e-09, 3.5106462e-09, 1.7808583e-08, 1.4098259e-08, 3.8490683e-10, 3.2085192e-09, 3.8055336e-07]),\n",
-       " (3, [1.6689529e-07, 2.2206162e-07, 2.820838e-07, 9.411482e-08, 9.196814e-08, 6.835522e-08, 1.4712062e-07, 9.119155e-06, 6.7199594e-06, 1.9530382e-06, 2.4907507e-07, 6.704823e-07, 1.3618245e-07, 3.1312987e-07, 1.2618708e-07, 8.8433814e-07, 1.3651416e-07, 1.0374823e-06, 9.697097e-07, 3.1258924e-07, 1.154241e-07, 2.7880057e-07, 7.071258e-07, 1.1773246e-06, 2.7102183e-07, 8.7961396e-08, 5.8193404e-08, 2.5870187e-07, 3.1527037e-08, 2.715556e-07, 1.865584e-07, 3.0306205e-07, 1.0248689e-07, 2.2406402e-07, 2.4086475e-07, 8.182266e-08, 3.4661014e-07, 2.965118e-07, 1.560052e-07, 2.3101217e-07, 5.0157405e-07, 1.6106436e-07, 1.7701154e-07, 7.382814e-07, 4.017762e-07, 8.348868e-08, 4.505219e-07, 3.507288e-08, 1.9216787e-07, 2.1005312e-07, 1.7100543e-06, 1.2874328e-07, 1.7951021e-07, 1.1528065e-07, 3.0493317e-07, 8.817166e-07, 7.344486e-07, 8.2197954e-07, 4.4888705e-07, 6.063366e-07, 9.589398e-07, 3.6966567e-06, 1.7984804e-06, 3.5922747e-07, 4.3303217e-07, 1.4106764e-07, 3.4898633e-07, 2.1168786e-07, 2.1905065e-07, 7.523292e-08, 1.2124268e-07, 1.6527275e-07, 6.333906e-08, 5.592894e-08, 9.339264e-08, 3.3048057e-08, 2.849944e-07, 5.0003926e-08, 3.2996897e-07, 1.093866e-06, 4.7521535e-08, 6.467596e-08, 6.746868e-07, 7.208058e-07, 1.3252958e-06, 4.4775916e-07, 1.3629414e-06, 2.6028246e-07, 1.2213138e-07, 2.378058e-07, 4.0746293e-08, 4.4012336e-07, 1.5162593e-07, 1.3352037e-06, 1.0124106e-06, 1.385228e-07, 2.0494727e-07, 1.7858578e-05, 1.1512349e-06, 8.851452e-06, 2.1538575e-07, 6.265657e-08, 5.9420086e-07, 2.688158e-07, 6.4805367e-06, 5.182306e-07, 2.372954e-07, 2.2233793e-07, 3.245263e-07, 5.0860205e-08, 1.017551e-07, 8.684927e-08, 3.1345842e-06, 2.1760503e-07, 2.1266662e-07, 5.1490655e-08, 5.8833677e-08, 7.994336e-07, 1.437624e-06, 1.8312319e-07, 4.1118618e-08, 6.079955e-07, 7.317862e-07, 1.2565258e-07, 8.145708e-07, 7.439697e-07, 4.4777835e-07, 8.953791e-08, 2.082923e-07, 3.7194494e-07, 6.495325e-08, 1.15024555e-07, 4.6843113e-07, 1.9805561e-06, 1.128121e-06, 3.502328e-08, 7.75236e-07, 1.0817615e-06, 2.0329721e-06, 3.4939458e-07, 1.3838962e-06, 5.9606386e-08, 1.0386679e-07, 2.7677422e-07, 2.562633e-07, 3.75767e-07, 2.257235e-06, 1.7437878e-07, 3.344044e-07, 1.4814579e-08, 1.4589527e-07, 9.747049e-06, 4.343081e-05, 2.4861931e-06, 4.7536546e-06, 1.7077704e-05, 4.1258518e-05, 0.00033958646, 2.7045458e-05, 2.2274935e-06, 0.0007474787, 7.4541317e-06, 3.46901e-06, 1.7526618e-06, 5.131311e-06, 5.9422626e-07, 5.283553e-06, 2.3466607e-06, 1.1319079e-06, 0.0075451825, 6.501963e-06, 1.8894696e-05, 4.274101e-05, 8.023169e-05, 4.3800146e-06, 5.5521894e-05, 7.4542e-05, 5.1395902e-05, 3.269665e-07, 6.566881e-07, 1.1947602e-06, 3.175389e-06, 4.53225e-06, 2.0213977e-06, 1.9833658e-05, 7.5548055e-06, 7.107016e-05, 5.446052e-05, 0.0003789736, 2.3369696e-05, 6.262723e-06, 8.743196e-05, 1.7344008e-05, 0.00054024416, 5.6735547e-07, 1.3520279e-06, 9.357407e-06, 1.2883928e-06, 4.2506967e-06, 2.1557997e-05, 2.9111889e-05, 6.968902e-05, 4.0829773e-06, 6.0506145e-06, 1.7851306e-05, 2.1046308e-06, 9.482371e-07, 1.9215779e-05, 1.5350582e-06, 9.981025e-07, 1.2606618e-07, 5.10712e-06, 2.7865839e-05, 7.178262e-06, 4.581452e-06, 1.8116694e-05, 5.820323e-06, 3.7669934e-06, 7.9357415e-05, 2.4837062e-05, 1.822985e-05, 1.283606e-06, 1.2288719e-05, 2.9043683e-06, 0.00011244261, 4.338252e-06, 0.00021625363, 2.9391324e-05, 1.0695196e-06, 0.00011266577, 0.40733615, 0.5772368, 0.0004146664, 1.229108e-06, 1.202781e-06, 2.706326e-05, 9.573294e-06, 1.6624028e-06, 1.3531604e-06, 4.1547428e-05, 1.3941313e-05, 3.45452e-06, 3.975819e-07, 1.14479995e-07, 3.2602754e-06, 2.4812724e-07, 5.9290517e-07, 9.359942e-06, 5.2608295e-05, 1.6942557e-05, 3.36582e-05, 3.7529944e-06, 1.7631246e-06, 6.8221685e-05, 1.913694e-07, 2.6620355e-06, 2.7133906e-06, 2.9902525e-05, 3.281977e-05, 0.00021295837, 1.4895779e-05, 1.5925854e-05, 7.54719e-07, 0.00016248274, 8.674957e-05, 7.4369905e-06, 1.7487591e-05, 5.6154302e-05, 1.0220183e-06, 2.6891967e-05, 1.2903312e-05, 1.98491e-05, 1.0393447e-05, 3.2990965e-06, 4.3320383e-06, 6.4613107e-07, 5.837787e-07, 9.864287e-06, 1.605011e-06, 5.953469e-06, 3.730937e-06, 7.4432987e-06, 1.6610296e-05, 2.930948e-05, 3.3447233e-07, 4.6493938e-06, 6.9082525e-08, 3.058961e-07, 1.7166974e-07, 1.0861472e-07, 1.1060474e-07, 9.991572e-06, 2.624814e-06, 7.4486564e-07, 1.1626346e-06, 8.506138e-07, 3.9435324e-07, 5.3783315e-06, 1.02206464e-07, 3.4676552e-07, 1.2598566e-07, 2.1253848e-07, 1.1014853e-07, 3.873366e-07, 5.1221065e-07, 7.8767215e-08, 3.3245198e-07, 1.7352278e-07, 1.7126436e-07, 7.1782176e-07, 5.609307e-07, 1.8716644e-07, 2.7722834e-07, 2.3728228e-07, 1.4343879e-06, 1.6317398e-07, 1.8679945e-07, 9.642633e-07, 6.046637e-07, 2.5942106e-07, 6.012982e-08, 3.1809796e-07, 3.3224913e-07, 2.943848e-07, 4.0296842e-07, 1.1191497e-06, 1.4413408e-07, 2.769044e-07, 1.8496877e-07, 1.05810884e-07, 5.328658e-07, 4.866973e-06, 3.224421e-05, 1.1619223e-05, 2.464877e-06, 1.8399638e-05, 1.6188493e-06, 2.0739626e-06, 9.169329e-05, 2.8408182e-05, 1.0441167e-06, 2.2457004e-06, 4.574065e-06, 6.362242e-07, 9.629592e-07, 1.0002079e-05, 7.1745495e-07, 2.1475851e-07, 1.01941005e-05, 8.618323e-07, 1.869045e-06, 6.2070296e-07, 1.1434444e-06, 2.3597759e-06, 6.7796793e-07, 1.271199e-05, 1.1577484e-06, 2.368491e-07, 4.55484e-07, 2.5140366e-06, 5.6595123e-08, 7.3302494e-06, 4.584962e-06, 2.463876e-06, 1.1013761e-07, 7.970608e-07, 1.06286215e-07, 6.5447483e-07, 5.9785117e-07, 3.151479e-07, 1.0185223e-06, 2.0698292e-06, 2.019361e-06, 1.1943068e-06, 9.928024e-07, 8.1185874e-07, 1.9383758e-06, 8.319345e-07, 6.315681e-07, 1.5005149e-07, 1.4024852e-06, 2.58234e-07, 4.5330773e-07, 1.0390844e-06, 6.014614e-07, 5.0667715e-08, 4.292828e-08, 2.428166e-07, 2.1167232e-07, 5.6699145e-07, 3.6647265e-07, 7.7877735e-07, 9.033721e-08, 7.109228e-08, 1.13489925e-07, 5.4377375e-07, 1.7701846e-07, 7.7141095e-08, 9.243051e-07, 2.0634916e-07, 7.603061e-07, 2.1217143e-06, 1.2784554e-06, 6.703036e-08, 2.8089295e-07, 8.370749e-07, 3.334441e-06, 4.4463496e-07, 2.1578214e-07, 8.6750146e-07, 2.0263879e-07, 1.757333e-06, 4.232752e-06, 5.2864135e-07, 1.0017834e-06, 8.292726e-06, 2.0218168e-07, 5.6843703e-07, 3.1687039e-06, 2.3628252e-06, 1.3313359e-06, 2.1216838e-06, 3.529718e-07, 1.0109056e-06, 5.4811755e-07, 1.5179745e-06, 1.1439428e-06, 2.7279775e-06, 2.491207e-05, 2.4989247e-06, 1.0711284e-06, 3.4363297e-06, 1.795127e-06, 5.6359966e-08, 4.6255496e-05, 7.617995e-06, 1.7480146e-06, 1.513277e-06, 4.223011e-06, 2.5502782e-06, 4.8256497e-06, 6.389756e-07, 2.050033e-06, 1.9788192e-06, 2.5552567e-06, 6.402927e-07, 1.5162955e-05, 1.9254494e-06, 1.4773743e-05, 1.5308382e-07, 6.756578e-07, 3.368628e-06, 3.2261296e-06, 1.3053974e-06, 8.031118e-06, 8.357667e-07, 4.2610545e-06, 5.840485e-06, 7.83309e-07, 6.467494e-07, 4.065039e-06, 1.2906764e-06, 3.6102936e-06, 1.5432053e-05, 1.8839935e-06, 9.1145074e-07, 9.640519e-07, 1.5100665e-06, 1.49469e-06, 3.234839e-06, 1.8960048e-06, 9.3880084e-07, 1.1120671e-06, 1.266507e-06, 3.204753e-06, 2.2967995e-06, 8.827923e-06, 1.5669655e-06, 2.128402e-06, 4.6287373e-06, 3.5791315e-06, 1.1039351e-06, 7.966436e-07, 2.8899622e-06, 1.6511663e-07, 2.5859703e-07, 5.687974e-06, 7.1050804e-06, 4.2829834e-07, 1.4763658e-05, 5.886087e-07, 3.8952072e-07, 1.2212666e-06, 4.2225375e-07, 2.9476307e-06, 2.9590444e-07, 1.647012e-06, 1.138658e-05, 6.443352e-06, 4.116174e-06, 2.3373326e-07, 4.594675e-06, 5.326156e-06, 2.7369208e-06, 9.157579e-06, 1.6969457e-06, 1.5630312e-06, 7.475492e-07, 3.4837499e-06, 4.043013e-06, 3.866793e-07, 1.3447072e-06, 2.7079177e-06, 7.07651e-06, 3.3592798e-06, 2.4041381e-05, 1.5609503e-06, 1.4794115e-07, 1.8450921e-06, 3.6126664e-06, 8.430876e-07, 1.6879924e-06, 1.49956795e-05, 8.848961e-06, 7.616669e-07, 8.442579e-06, 5.06263e-07, 4.8507803e-07, 9.1500846e-07, 2.4074225e-06, 6.2053016e-07, 9.895185e-07, 2.1231817e-06, 5.107417e-06, 1.9196445e-06, 2.279443e-06, 1.78816e-07, 2.918832e-06, 1.6303065e-06, 1.3995557e-05, 3.7271278e-08, 7.159881e-07, 1.059618e-06, 2.258917e-06, 2.0854193e-07, 2.4586356e-07, 5.275983e-07, 2.4461443e-07, 7.5761e-07, 4.2390033e-07, 1.6908271e-07, 1.8666652e-06, 1.8524983e-05, 1.4771988e-06, 2.6837728e-07, 1.7947718e-07, 1.140592e-06, 1.8138328e-06, 6.742733e-05, 2.4207802e-06, 7.482425e-07, 4.8928086e-07, 4.0176797e-06, 1.5053209e-05, 2.5682698e-07, 6.180497e-07, 1.2896313e-05, 1.0683698e-06, 7.219537e-06, 2.5994248e-06, 7.657017e-07, 1.0884103e-06, 4.019638e-06, 1.1041446e-06, 8.6559413e-07, 3.2376015e-06, 5.8260262e-08, 3.7094105e-07, 1.7066193e-05, 9.563972e-07, 2.7943852e-06, 8.446875e-07, 8.798296e-06, 2.0743909e-07, 3.720597e-06, 9.2031805e-05, 3.2299022e-07, 1.3909248e-06, 1.5150531e-06, 1.1316872e-05, 3.735218e-07, 8.270013e-06, 9.53729e-08, 5.2934156e-05, 1.0523074e-05, 2.0331552e-07, 1.072588e-06, 2.2581287e-06, 1.7145777e-06, 1.3304353e-07, 7.8983436e-07, 8.3505965e-06, 4.7793077e-07, 8.633999e-06, 5.063731e-07, 2.9272896e-06, 1.6326154e-06, 1.6821863e-06, 1.6723036e-05, 2.907346e-07, 1.0632824e-06, 1.8857632e-05, 8.1562877e-07, 3.4525522e-07, 2.9374132e-06, 1.6777803e-06, 2.093815e-07, 5.092932e-06, 2.2783825e-06, 3.2003124e-06, 3.72425e-06, 1.1175212e-06, 7.551085e-07, 1.2608814e-06, 7.110252e-06, 6.5194e-07, 1.294883e-06, 1.4719675e-06, 6.0391164e-07, 2.758968e-06, 1.3804836e-06, 1.03495595e-05, 1.0754078e-06, 4.651161e-07, 8.321808e-08, 3.883249e-07, 4.3750847e-06, 6.9287e-06, 1.0790991e-06, 2.0175928e-07, 1.1477083e-06, 9.2724866e-07, 4.4966427e-07, 3.768524e-06, 8.53336e-08, 7.5422184e-07, 5.943853e-06, 5.7822704e-06, 1.1200253e-06, 2.2967261e-07, 1.7970591e-06, 5.6860836e-07, 1.3928349e-06, 6.2377126e-06, 5.0388206e-07, 6.703836e-06, 2.8018142e-06, 3.1146221e-06, 5.6211627e-07, 2.3552186e-06, 7.2731456e-07, 8.2250574e-07, 1.7007797e-07, 1.4904311e-06, 2.3674602e-06, 8.284086e-06, 1.5256389e-06, 5.753343e-06, 1.6530263e-06, 4.4300623e-07, 2.975805e-06, 1.5939414e-06, 1.2028959e-06, 1.9596916e-06, 5.4057625e-07, 2.5539276e-07, 3.354089e-05, 4.7010667e-07, 7.318403e-06, 6.808285e-07, 1.2269537e-05, 2.980676e-06, 1.2634037e-07, 5.5363403e-06, 3.1773146e-05, 9.6223175e-08, 1.5475484e-07, 1.4305355e-06, 3.206239e-08, 5.6593562e-06, 2.2849756e-06, 4.1018943e-06, 4.2290035e-06, 7.9598516e-07, 8.535069e-08, 3.1764587e-06, 2.3981077e-06, 2.4379176e-06, 2.924787e-06, 1.9348952e-05, 3.043286e-05, 3.9040322e-07, 1.9553707e-07, 3.6785837e-06, 9.770004e-07, 2.1725493e-06, 9.120881e-07, 2.3135665e-06, 1.628987e-06, 2.6829575e-06, 5.118893e-07, 6.0893008e-06, 2.598494e-07, 2.110724e-07, 3.142682e-07, 8.9087973e-07, 1.6903034e-05, 1.8139677e-06, 4.9642364e-07, 9.3815464e-07, 1.1011582e-06, 8.299229e-06, 4.316495e-06, 1.5535351e-06, 1.2686715e-07, 7.4317227e-06, 2.2307408e-07, 7.130532e-07, 1.6027021e-05, 2.522636e-07, 2.934066e-07, 1.3851732e-06, 5.2406995e-07, 3.4384148e-06, 1.7058935e-07, 2.2353183e-06, 1.1527202e-06, 2.0424222e-06, 9.0871504e-07, 9.279175e-07, 1.2784419e-06, 1.0543832e-06, 1.288475e-06, 7.744535e-07, 6.339913e-06, 1.9381142e-07, 3.6516923e-07, 5.14587e-06, 1.8609968e-06, 2.1099022e-06, 6.7389306e-06, 1.0700466e-05, 6.8114905e-06, 2.9642656e-06, 7.136022e-07, 7.744875e-07, 3.7833279e-06, 3.0161364e-06, 6.936075e-07, 4.3780747e-07, 1.0460443e-06, 8.8778995e-07, 2.3039381e-06, 1.7693857e-06, 1.115564e-06, 1.661298e-06, 2.6530446e-07, 4.3556693e-07, 3.4118489e-06, 1.5530655e-06, 7.466016e-07, 5.063683e-07, 1.3009085e-06, 1.5598796e-05, 1.0366763e-06, 1.1196889e-06, 3.0060828e-06, 1.356155e-06, 9.820625e-07, 2.1989595e-06, 1.6922332e-06, 1.3272423e-06, 1.9030645e-06, 2.1997091e-07, 8.5709223e-07, 3.8253297e-06, 3.4569968e-07, 2.6077578e-06, 3.483567e-06, 3.6281364e-07, 1.7578661e-06, 1.9342892e-06, 1.7658742e-06, 3.907155e-06, 8.981448e-06, 8.9915403e-07, 2.0014852e-07, 4.210974e-06, 4.8389336e-07, 2.2567508e-06, 8.9751427e-07, 6.308779e-08, 5.069776e-07, 4.775052e-07, 8.122239e-06, 5.8180678e-05, 1.3861193e-06, 3.4600296e-06, 6.8834534e-06, 1.4960676e-06, 1.9307035e-07, 1.0058861e-05, 1.646274e-06, 2.423841e-06, 1.2812272e-06, 6.536019e-08, 1.56902e-06, 7.662522e-06, 1.6937428e-06, 1.2506719e-06, 3.169654e-07, 1.827239e-07, 5.736246e-07, 1.476168e-06, 5.8050346e-06, 2.8127104e-06, 8.41238e-07, 9.861714e-07, 3.964515e-06, 1.5863016e-06, 5.7537403e-07, 1.9392207e-06, 6.138479e-07, 1.4168915e-06, 1.0203871e-06, 1.4193434e-06, 7.2978736e-07, 2.6645528e-06, 4.362764e-06, 5.1138727e-07, 1.5418674e-06, 2.1608723e-06, 4.441137e-07, 2.1684011e-06, 5.7982095e-07, 4.208252e-06, 6.2694644e-06, 1.0910754e-07, 8.9542823e-07, 7.5162893e-07, 1.2211142e-06, 5.671848e-06, 8.001827e-05, 5.315375e-07, 1.2871044e-06, 2.5712022e-06, 1.929912e-07, 4.3394084e-07, 3.7587375e-07, 1.1067423e-06, 1.4056023e-06, 3.7882778e-06, 4.107226e-06, 8.979295e-07, 9.980064e-07, 7.4344875e-06, 8.000773e-07, 3.3249592e-06, 6.2859344e-06, 1.2670778e-05, 6.181024e-06, 5.992325e-07, 1.4047648e-06, 1.2503236e-06, 3.9425134e-07, 2.5586876e-06, 3.5965681e-06, 3.2103972e-06, 5.080649e-08, 7.5429407e-06, 1.1273129e-05, 4.050838e-07, 6.827945e-06, 6.557428e-06, 1.5494928e-06, 7.5670454e-07, 5.3732815e-06, 3.926059e-06, 6.872614e-07, 2.1881797e-06, 8.326354e-07, 4.418257e-07, 2.5343563e-06, 1.6838235e-06, 8.0051086e-07, 5.0417003e-07, 4.4274334e-06, 1.7458055e-06, 1.312581e-05, 6.8006834e-06, 6.6938344e-07, 1.9611891e-06, 4.05965e-06, 1.2272673e-05, 4.318187e-06, 2.5695033e-06, 3.420368e-06, 1.8288926e-06, 7.090443e-07, 1.1700457e-06, 1.5462392e-06, 8.471674e-07, 1.19016195e-05, 1.0063437e-07, 3.5280016e-07, 8.083196e-07, 7.831007e-07, 2.2469967e-06, 3.2198745e-06, 5.46896e-06, 2.3607876e-07, 4.5549596e-06, 1.777636e-06, 1.8209928e-06, 1.0895079e-06, 3.649106e-07, 3.4167476e-07, 3.4340349e-07, 8.9606124e-07, 1.8848374e-05, 4.4522218e-07, 1.1343252e-06, 6.218925e-06, 6.378472e-08, 6.0418674e-06, 4.010594e-06, 8.1876243e-07, 2.5506273e-05, 2.0598866e-06, 3.0352992e-06, 7.1552597e-07, 2.509204e-07, 7.4251875e-07, 1.1561078e-06, 8.450162e-07, 1.1495174e-07, 2.30015e-07, 4.216791e-07, 3.6176586e-06, 1.8345672e-07, 3.6328088e-06, 1.041257e-06, 6.1919064e-07, 1.6489703e-06, 1.23177115e-05, 3.0211654e-06, 1.7541284e-06, 1.4839601e-07, 6.1302976e-06, 2.0154073e-06, 3.6311096e-07, 7.3696737e-07, 4.370341e-07, 1.5177255e-06, 1.2590387e-07, 2.3164412e-06, 7.050975e-07, 8.3458315e-07, 4.139802e-06, 5.4616526e-06, 3.749249e-06, 1.1025905e-06, 8.433087e-07, 2.094582e-07, 3.424967e-06, 5.2668106e-06, 5.819143e-07, 1.4725024e-06, 1.2079207e-06, 3.0717872e-06, 1.0360299e-06, 2.678918e-06, 2.2673117e-05, 4.2749342e-08, 7.203822e-06, 1.2097364e-06, 3.5521066e-07, 1.5892792e-05, 7.6659603e-07, 1.5075173e-07, 1.3642651e-06, 1.4929412e-07, 2.595537e-07, 2.5446576e-07, 1.00538834e-07, 2.9553246e-07, 6.4130705e-07, 2.1728714e-07, 6.822549e-06, 7.864933e-05])]"
+       "[(1, u'dependent_var', u'58', 0.14084539, 2),\n",
+       " (1, u'dependent_var', u'49', 0.05819455, 3),\n",
+       " (1, u'dependent_var', u'62', 0.05564801, 4)]"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4849,15 +4845,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Using TensorFlow backend.\n"
+     ]
+    },
+    {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "10 rows affected.\n",
-      "(10, 1, 1000)\n"
+      "10000 rows affected.\n",
+      "(10000, 1)\n"
      ]
     }
    ],
@@ -4865,14 +4868,14 @@
     "from keras.applications.vgg16 import decode_predictions\n",
     "import numpy as np\n",
     "\n",
-    "prob_vector = %sql select prob from imagenet_predict_vgg16_prob order by id;\n",
+    "prob_vector = %sql select prob from imagenet_predict_vgg16_prob order by id, rank;\n",
     "print np.array(prob_vector).shape\n",
     "label = decode_predictions(np.array(prob_vector).reshape(10,1000))"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -4882,7 +4885,7 @@
        "<IPython.core.display.Image object>"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4894,20 +4897,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "[(u'n01751748', u'sea_snake', 0.5346089),\n",
-       " (u'n01737021', u'water_snake', 0.1408455),\n",
-       " (u'n01697457', u'African_crocodile', 0.05819438),\n",
-       " (u'n01744401', u'rock_python', 0.055647947),\n",
-       " (u'n01755581', u'diamondback', 0.041236367)]"
+       "[(u'n01440764', u'tench', 0.5346085),\n",
+       " (u'n01443537', u'goldfish', 0.14084539),\n",
+       " (u'n01484850', u'great_white_shark', 0.05819455),\n",
+       " (u'n01491361', u'tiger_shark', 0.05564801),\n",
+       " (u'n01494475', u'hammerhead', 0.0412363)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 17,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4918,7 +4921,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 49,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -4928,7 +4931,7 @@
        "<IPython.core.display.Image object>"
       ]
      },
-     "execution_count": 49,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4939,20 +4942,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "[(u'n04228054', u'ski', 0.6965568),\n",
-       " (u'n09193705', u'alp', 0.29820144),\n",
-       " (u'n04208210', u'shovel', 0.0016679094),\n",
-       " (u'n03792972', u'mountain_tent', 0.0007202051),\n",
-       " (u'n03218198', u'dogsled', 0.00038468122)]"
+       "[(u'n01440764', u'tench', 0.6965566),\n",
+       " (u'n01443537', u'goldfish', 0.29820165),\n",
+       " (u'n01484850', u'great_white_shark', 0.0016679137),\n",
+       " (u'n01491361', u'tiger_shark', 0.0007202063),\n",
+       " (u'n01494475', u'hammerhead', 0.00038468183)]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -4984,20 +4987,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "[(u'n02106030', u'collie', 0.5772368),\n",
-       " (u'n02105855', u'Shetland_sheepdog', 0.40733615),\n",
-       " (u'n02090622', u'borzoi', 0.0075451825),\n",
-       " (u'n02088094', u'Afghan_hound', 0.0007474787),\n",
-       " (u'n02096294', u'Australian_terrier', 0.00054024416)]"
+       "[(u'n01440764', u'tench', 0.57723767),\n",
+       " (u'n01443537', u'goldfish', 0.40733525),\n",
+       " (u'n01484850', u'great_white_shark', 0.007545187),\n",
+       " (u'n01491361', u'tiger_shark', 0.00074747804),\n",
+       " (u'n01494475', u'hammerhead', 0.000540244)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -5076,7 +5079,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -5102,7 +5105,7 @@
        "[(15867L,)]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -5122,7 +5125,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -5148,7 +5151,7 @@
        "[(Decimal('68.27'),)]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -5179,7 +5182,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb
new file mode 100644
index 0000000..55085b9
--- /dev/null
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb
@@ -0,0 +1,6276 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Model Selection for Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP for different hyperparameters and model architectures.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples please refer to the deep learning notebooks at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#def_mst\">4. Define and load model selection tuples</a>\n",
+    "\n",
+    "* <a href=\"#train\">5. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">6. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">7. Predict</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',        -- Dependent variable\n",
+    "                                       'attributes'         -- Independent variable\n",
+    "                                        ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_2\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_6 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_7 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_8 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_9 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_99030268_1614985897_73934030__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_69765081_1614985897_31307059__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_99030268_1614985897_73934030__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_69765081_1614985897_31307059__')]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"def_mst\"></a>\n",
+    "# 4.  Define and load model selection tuples"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Generate model configurations using grid search. The output table for grid search contains the unique combinations of model architectures, compile and fit parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8')]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'],\n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam'], 'lr': [0.001, 0.01, 0.1]} ],\n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid\n",
+    "                                         $$\n",
+    "                                         { 'batch_size': [4, 8],\n",
+    "                                           'epochs': [1]\n",
+    "                                         }\n",
+    "                                         $$,                  -- fit_param_grid\n",
+    "                                         'grid'               -- search_type\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "This is the name of the model architecture table that corresponds to the model selection table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>object_table</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'model_arch_library', None)]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mst_table_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 5.  Train\n",
+    "Train multiple models:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                              10,                     -- num_iterations\n",
+    "                                              FALSE                   -- use gpus\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>10</td>\n",
+       "        <td>False</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2021-03-05 23:17:53.015997</td>\n",
+       "        <td>2021-03-05 23:19:25.828328</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', None, u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 10, False, None, None, datetime.datetime(2021, 3, 5, 23, 17, 53, 15997), datetime.datetime(2021, 3, 5, 23, 19, 25, 828328), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [10])]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View results for each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[90.4152021408081]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.983333349228</td>\n",
+       "        <td>0.0784567892551</td>\n",
+       "        <td>[0.983333349227905]</td>\n",
+       "        <td>[0.0784567892551422]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.9267370700836]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.370112359524</td>\n",
+       "        <td>[0.949999988079071]</td>\n",
+       "        <td>[0.370112359523773]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[90.6731050014496]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.120034113526</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.120034113526344]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[91.596951007843]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.221316426992</td>\n",
+       "        <td>[0.908333361148834]</td>\n",
+       "        <td>[0.221316426992416]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[92.810093164444]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.256317943335</td>\n",
+       "        <td>[0.866666674613953]</td>\n",
+       "        <td>[0.256317943334579]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[92.3147950172424]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.774999976158</td>\n",
+       "        <td>0.937343239784</td>\n",
+       "        <td>[0.774999976158142]</td>\n",
+       "        <td>[0.937343239784241]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.1556451320648]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.725000023842</td>\n",
+       "        <td>0.670977592468</td>\n",
+       "        <td>[0.725000023841858]</td>\n",
+       "        <td>[0.670977592468262]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[91.1536350250244]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.679427325726</td>\n",
+       "        <td>[0.691666662693024]</td>\n",
+       "        <td>[0.679427325725555]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[92.044242143631]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.818258941174</td>\n",
+       "        <td>[0.691666662693024]</td>\n",
+       "        <td>[0.818258941173553]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[90.9328460693359]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.462306410074</td>\n",
+       "        <td>[0.641666650772095]</td>\n",
+       "        <td>[0.462306410074234]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[92.5436642169952]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.441666662693</td>\n",
+       "        <td>1.47737956047</td>\n",
+       "        <td>[0.441666662693024]</td>\n",
+       "        <td>[1.47737956047058]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[91.3729450702667]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.358333319426</td>\n",
+       "        <td>1.09699964523</td>\n",
+       "        <td>[0.358333319425583]</td>\n",
+       "        <td>[1.09699964523315]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [90.4152021408081], [u'accuracy'], u'categorical_crossentropy', 0.983333349227905, 0.0784567892551422, [0.983333349227905], [0.0784567892551422], None, None, None, None),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [89.9267370700836], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.370112359523773, [0.949999988079071], [0.370112359523773], None, None, None, None),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [90.6731050014496], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.120034113526344, [0.933333337306976], [0.120034113526344], None, None, None, None),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [91.596951007843], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.221316426992416, [0.908333361148834], [0.221316426992416], None, None, None, None),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [92.810093164444], [u'accuracy'], u'categorical_crossentropy', 0.866666674613953, 0.256317943334579, [0.866666674613953], [0.256317943334579], None, None, None, None),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [92.3147950172424], [u'accuracy'], u'categorical_crossentropy', 0.774999976158142, 0.937343239784241, [0.774999976158142], [0.937343239784241], None, None, None, None),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [90.1556451320648], [u'accuracy'], u'categorical_crossentropy', 0.725000023841858, 0.670977592468262, [0.725000023841858], [0.670977592468262], None, None, None, None),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [91.1536350250244], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.679427325725555, [0.691666662693024], [0.679427325725555], None, None, None, None),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [92.044242143631], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.818258941173553, [0.691666662693024], [0.818258941173553], None, None, None, None),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [90.9328460693359], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.462306410074234, [0.641666650772095], [0.462306410074234], None, None, None, None),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [92.5436642169952], [u'accuracy'], u'categorical_crossentropy', 0.441666662693024, 1.47737956047058, [0.441666662693024], [1.47737956047058], None, None, None, None),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [91.3729450702667], [u'accuracy'], u'categorical_crossentropy', 0.358333319425583, 1.09699964523315, [0.358333319425583], [1.09699964523315], None, None, None, None)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY training_metrics_final DESC, training_loss_final;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 6. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.143714919686</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.143714919686317, 0.966666638851166, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_multi_model',  -- model\n",
+    "                                    'iris_test_packed',  -- test table\n",
+    "                                    'iris_validate',     -- output table\n",
+    "                                     NULL,               -- use gpus\n",
+    "                                     9                   -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 7. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99811894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9342552</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.81576407</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8137554</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9515729</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.68559366</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9376807</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9403642</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.70344603</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9156011</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.92681235</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.59969354</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.90776694</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8773563</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.92992663</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.97188693</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9858701</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.749179</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5419714</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.907297</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9711316</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (5, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (7, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (13, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (23, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (24, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (27, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (32, u'class_text', u'Iris-setosa', 0.99811894),\n",
+       " (52, u'class_text', u'Iris-versicolor', 0.9342552),\n",
+       " (57, u'class_text', u'Iris-versicolor', 0.81576407),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.8137554),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.9515729),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.68559366),\n",
+       " (68, u'class_text', u'Iris-versicolor', 0.9376807),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9403642),\n",
+       " (71, u'class_text', u'Iris-virginica', 0.70344603),\n",
+       " (74, u'class_text', u'Iris-versicolor', 0.9156011),\n",
+       " (80, u'class_text', u'Iris-versicolor', 0.92681235),\n",
+       " (85, u'class_text', u'Iris-versicolor', 0.59969354),\n",
+       " (90, u'class_text', u'Iris-versicolor', 0.90776694),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.8773563),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.92992663),\n",
+       " (108, u'class_text', u'Iris-virginica', 0.97188693),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.9858701),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.749179),\n",
+       " (134, u'class_text', u'Iris-virginica', 0.5419714),\n",
+       " (138, u'class_text', u'Iris-virginica', 0.907297),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.9711316)]"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'response',        -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    9                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1L,)]"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
+    "WHERE iris_predict.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96.67</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('96.67'),)]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               10,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               3,                     -- metrics compute frequency\n",
+    "                                               FALSE,                 -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Model selection for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>3</td>\n",
+       "        <td>False</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Model selection for iris dataset</td>\n",
+       "        <td>2021-03-05 23:30:29.361525</td>\n",
+       "        <td>2021-03-05 23:32:25.242549</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3, 6, 9, 10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 3, False, u'Sophie L.', u'Model selection for iris dataset', datetime.datetime(2021, 3, 5, 23, 30, 29, 361525), datetime.datetime(2021, 3, 5, 23, 32, 25, 242549), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [3, 6, 9, 10])]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[30.6736240386963, 63.8817899227142, 97.0417211055756, 113.172317028046]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.0857621207833</td>\n",
+       "        <td>[0.866666674613953, 0.908333361148834, 0.824999988079071, 0.975000023841858]</td>\n",
+       "        <td>[0.283501744270325, 0.201569080352783, 0.365902632474899, 0.085762120783329]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.122390650213</td>\n",
+       "        <td>[0.733333349227905, 0.933333337306976, 0.866666674613953, 0.933333337306976]</td>\n",
+       "        <td>[0.402765065431595, 0.179033249616623, 0.302312880754471, 0.122390650212765]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[33.3402421474457, 66.678878068924, 100.063696146011, 115.878378152847]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.122639112175</td>\n",
+       "        <td>[0.841666638851166, 0.866666674613953, 0.983333349227905, 0.966666638851166]</td>\n",
+       "        <td>[0.927325308322906, 0.235888451337814, 0.152433648705482, 0.122639112174511]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.213843882084</td>\n",
+       "        <td>[0.800000011920929, 0.766666650772095, 0.966666638851166, 0.933333337306976]</td>\n",
+       "        <td>[1.31817901134491, 0.403295516967773, 0.225061357021332, 0.213843882083893]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[32.3545279502869, 65.5994129180908, 98.8639390468597, 114.628155946732]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.340993762016</td>\n",
+       "        <td>[0.725000023841858, 0.975000023841858, 0.966666638851166, 0.949999988079071]</td>\n",
+       "        <td>[0.634531021118164, 0.48712894320488, 0.342138230800629, 0.340993762016296]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.375507682562</td>\n",
+       "        <td>[0.633333325386047, 0.933333337306976, 0.966666638851166, 0.933333337306976]</td>\n",
+       "        <td>[0.697710037231445, 0.519804179668427, 0.398834854364395, 0.375507682561874]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[31.1844570636749, 64.4128880500793, 97.6602430343628, 113.686207056046]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.0938184261322</td>\n",
+       "        <td>[0.975000023841858, 0.949999988079071, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.107082977890968, 0.102665595710278, 0.0681213364005089, 0.0938184261322021]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.166130110621</td>\n",
+       "        <td>[0.966666638851166, 0.933333337306976, 0.933333337306976, 0.933333337306976]</td>\n",
+       "        <td>[0.141592919826508, 0.121055454015732, 0.0925953686237335, 0.166130110621452]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[32.1151111125946, 65.3588180541992, 98.6281480789185, 114.400741100311]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.875</td>\n",
+       "        <td>0.260402351618</td>\n",
+       "        <td>[0.975000023841858, 0.649999976158142, 0.774999976158142, 0.875]</td>\n",
+       "        <td>[0.350311905145645, 0.55135190486908, 0.319230705499649, 0.260402351617813]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.267347544432</td>\n",
+       "        <td>[0.966666638851166, 0.466666668653488, 0.666666686534882, 0.866666674613953]</td>\n",
+       "        <td>[0.401203900575638, 0.844793558120728, 0.492979735136032, 0.267347544431686]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.9298729896545, 64.1563010215759, 97.3999631404877, 113.427273988724]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.262101709843</td>\n",
+       "        <td>[0.725000023841858, 0.958333313465118, 0.916666686534882, 0.908333361148834]</td>\n",
+       "        <td>[0.42991915345192, 0.225951835513115, 0.209349796175957, 0.262101709842682]</td>\n",
+       "        <td>0.800000011921</td>\n",
+       "        <td>0.303691267967</td>\n",
+       "        <td>[0.633333325386047, 1.0, 0.966666638851166, 0.800000011920929]</td>\n",
+       "        <td>[0.514671266078949, 0.251676499843597, 0.234429702162743, 0.303691267967224]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.4536979198456, 63.6586000919342, 96.8189079761505, 112.950505018234]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.441878378391</td>\n",
+       "        <td>[0.474999994039536, 0.691666662693024, 0.741666674613953, 0.866666674613953]</td>\n",
+       "        <td>[0.957030355930328, 0.640025198459625, 0.472760319709778, 0.441878378391266]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.470352619886</td>\n",
+       "        <td>[0.433333337306976, 0.566666662693024, 0.600000023841858, 0.766666650772095]</td>\n",
+       "        <td>[0.983189880847931, 0.697314381599426, 0.513611257076263, 0.470352619886398]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[32.8489799499512, 66.1956899166107, 99.4372820854187, 115.379984140396]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.850000023842</td>\n",
+       "        <td>0.454301446676</td>\n",
+       "        <td>[0.691666662693024, 0.691666662693024, 0.725000023841858, 0.850000023841858]</td>\n",
+       "        <td>[0.845666646957397, 0.635031342506409, 0.49227574467659, 0.454301446676254]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.534793019295</td>\n",
+       "        <td>[0.566666662693024, 0.566666662693024, 0.633333325386047, 0.766666650772095]</td>\n",
+       "        <td>[0.97626668214798, 0.749890267848969, 0.588431000709534, 0.534793019294739]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[33.0761120319366, 66.4210600852966, 99.6609480381012, 115.608960151672]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.850000023842</td>\n",
+       "        <td>0.456756323576</td>\n",
+       "        <td>[0.966666638851166, 0.958333313465118, 0.566666662693024, 0.850000023841858]</td>\n",
+       "        <td>[0.138208195567131, 0.242085874080658, 2.31771349906921, 0.456756323575974]</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.720676660538</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.666666686534882, 0.733333349227905]</td>\n",
+       "        <td>[0.188635662198067, 0.311398893594742, 2.20467662811279, 0.72067666053772]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[31.4386551380157, 64.6823661327362, 97.9228360652924, 113.945574998856]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.461679339409</td>\n",
+       "        <td>[0.858333349227905, 0.691666662693024, 0.641666650772095, 0.691666662693024]</td>\n",
+       "        <td>[0.436321765184402, 0.492918580770493, 0.463972359895706, 0.461679339408875]</td>\n",
+       "        <td>0.566666662693</td>\n",
+       "        <td>0.466376572847</td>\n",
+       "        <td>[0.800000011920929, 0.566666662693024, 0.766666650772095, 0.566666662693024]</td>\n",
+       "        <td>[0.436118185520172, 0.50031191110611, 0.46391037106514, 0.466376572847366]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.660609960556, 64.9007411003113, 98.1513090133667, 114.166445016861]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.612414062023</td>\n",
+       "        <td>[0.358333319425583, 0.691666662693024, 0.691666662693024, 0.699999988079071]</td>\n",
+       "        <td>[1.08384656906128, 0.789247930049896, 0.642031610012054, 0.612414062023163]</td>\n",
+       "        <td>0.566666662693</td>\n",
+       "        <td>0.721881330013</td>\n",
+       "        <td>[0.233333334326744, 0.566666662693024, 0.566666662693024, 0.566666662693024]</td>\n",
+       "        <td>[1.24377524852753, 0.895631670951843, 0.770445883274078, 0.721881330013275]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[32.5858130455017, 65.8329451084137, 99.097393989563, 115.102792024612]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.865168988705</td>\n",
+       "        <td>[0.358333319425583, 0.541666686534882, 0.641666650772095, 0.641666650772095]</td>\n",
+       "        <td>[0.977362334728241, 0.920270144939423, 0.881129205226898, 0.865168988704681]</td>\n",
+       "        <td>0.533333361149</td>\n",
+       "        <td>0.939725458622</td>\n",
+       "        <td>[0.233333334326744, 0.466666668653488, 0.533333361148834, 0.533333361148834]</td>\n",
+       "        <td>[1.08130764961243, 0.966315567493439, 0.950002133846283, 0.939725458621979]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [30.6736240386963, 63.8817899227142, 97.0417211055756, 113.172317028046], [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.085762120783329, [0.866666674613953, 0.908333361148834, 0.824999988079071, 0.975000023841858], [0.283501744270325, 0.201569080352783, 0.365902632474899, 0.085762120783329], 0.933333337306976, 0.122390650212765, [0.733333349227905, 0.933333337306976, 0.866666674613953, 0.933333337306976], [0.402765065431595, 0.179033249616623, 0.302312880754471, 0.122390650212765]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [33.3402421474457, 66.678878068924, 100.063696146011, 115.878378152847], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.122639112174511, [0.841666638851166, 0.866666674613953, 0.983333349227905, 0.966666638851166], [0.927325308322906, 0.235888451337814, 0.152433648705482, 0.122639112174511], 0.933333337306976, 0.213843882083893, [0.800000011920929, 0.766666650772095, 0.966666638851166, 0.933333337306976], [1.31817901134491, 0.403295516967773, 0.225061357021332, 0.213843882083893]),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [32.3545279502869, 65.5994129180908, 98.8639390468597, 114.628155946732], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.340993762016296, [0.725000023841858, 0.975000023841858, 0.966666638851166, 0.949999988079071], [0.634531021118164, 0.48712894320488, 0.342138230800629, 0.340993762016296], 0.933333337306976, 0.375507682561874, [0.633333325386047, 0.933333337306976, 0.966666638851166, 0.933333337306976], [0.697710037231445, 0.519804179668427, 0.398834854364395, 0.375507682561874]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [31.1844570636749, 64.4128880500793, 97.6602430343628, 113.686207056046], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.0938184261322021, [0.975000023841858, 0.949999988079071, 0.966666638851166, 0.966666638851166], [0.107082977890968, 0.102665595710278, 0.0681213364005089, 0.0938184261322021], 0.933333337306976, 0.166130110621452, [0.966666638851166, 0.933333337306976, 0.933333337306976, 0.933333337306976], [0.141592919826508, 0.121055454015732, 0.0925953686237335, 0.166130110621452]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [32.1151111125946, 65.3588180541992, 98.6281480789185, 114.400741100311], [u'accuracy'], u'categorical_crossentropy', 0.875, 0.260402351617813, [0.975000023841858, 0.649999976158142, 0.774999976158142, 0.875], [0.350311905145645, 0.55135190486908, 0.319230705499649, 0.260402351617813], 0.866666674613953, 0.267347544431686, [0.966666638851166, 0.466666668653488, 0.666666686534882, 0.866666674613953], [0.401203900575638, 0.844793558120728, 0.492979735136032, 0.267347544431686]),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [30.9298729896545, 64.1563010215759, 97.3999631404877, 113.427273988724], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.262101709842682, [0.725000023841858, 0.958333313465118, 0.916666686534882, 0.908333361148834], [0.42991915345192, 0.225951835513115, 0.209349796175957, 0.262101709842682], 0.800000011920929, 0.303691267967224, [0.633333325386047, 1.0, 0.966666638851166, 0.800000011920929], [0.514671266078949, 0.251676499843597, 0.234429702162743, 0.303691267967224]),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [30.4536979198456, 63.6586000919342, 96.8189079761505, 112.950505018234], [u'accuracy'], u'categorical_crossentropy', 0.866666674613953, 0.441878378391266, [0.474999994039536, 0.691666662693024, 0.741666674613953, 0.866666674613953], [0.957030355930328, 0.640025198459625, 0.472760319709778, 0.441878378391266], 0.766666650772095, 0.470352619886398, [0.433333337306976, 0.566666662693024, 0.600000023841858, 0.766666650772095], [0.983189880847931, 0.697314381599426, 0.513611257076263, 0.470352619886398]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [32.8489799499512, 66.1956899166107, 99.4372820854187, 115.379984140396], [u'accuracy'], u'categorical_crossentropy', 0.850000023841858, 0.454301446676254, [0.691666662693024, 0.691666662693024, 0.725000023841858, 0.850000023841858], [0.845666646957397, 0.635031342506409, 0.49227574467659, 0.454301446676254], 0.766666650772095, 0.534793019294739, [0.566666662693024, 0.566666662693024, 0.633333325386047, 0.766666650772095], [0.97626668214798, 0.749890267848969, 0.588431000709534, 0.534793019294739]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [33.0761120319366, 66.4210600852966, 99.6609480381012, 115.608960151672], [u'accuracy'], u'categorical_crossentropy', 0.850000023841858, 0.456756323575974, [0.966666638851166, 0.958333313465118, 0.566666662693024, 0.850000023841858], [0.138208195567131, 0.242085874080658, 2.31771349906921, 0.456756323575974], 0.733333349227905, 0.72067666053772, [0.966666638851166, 0.966666638851166, 0.666666686534882, 0.733333349227905], [0.188635662198067, 0.311398893594742, 2.20467662811279, 0.72067666053772]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [31.4386551380157, 64.6823661327362, 97.9228360652924, 113.945574998856], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.461679339408875, [0.858333349227905, 0.691666662693024, 0.641666650772095, 0.691666662693024], [0.436321765184402, 0.492918580770493, 0.463972359895706, 0.461679339408875], 0.566666662693024, 0.466376572847366, [0.800000011920929, 0.566666662693024, 0.766666650772095, 0.566666662693024], [0.436118185520172, 0.50031191110611, 0.46391037106514, 0.466376572847366]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [31.660609960556, 64.9007411003113, 98.1513090133667, 114.166445016861], [u'accuracy'], u'categorical_crossentropy', 0.699999988079071, 0.612414062023163, [0.358333319425583, 0.691666662693024, 0.691666662693024, 0.699999988079071], [1.08384656906128, 0.789247930049896, 0.642031610012054, 0.612414062023163], 0.566666662693024, 0.721881330013275, [0.233333334326744, 0.566666662693024, 0.566666662693024, 0.566666662693024], [1.24377524852753, 0.895631670951843, 0.770445883274078, 0.721881330013275]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [32.5858130455017, 65.8329451084137, 99.097393989563, 115.102792024612], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.865168988704681, [0.358333319425583, 0.541666686534882, 0.641666650772095, 0.641666650772095], [0.977362334728241, 0.920270144939423, 0.881129205226898, 0.865168988704681], 0.533333361148834, 0.939725458621979, [0.233333334326744, 0.466666668653488, 0.533333361148834, 0.533333361148834], [1.08130764961243, 0.966315567493439, 0.950002133846283, 0.939725458621979])]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "from matplotlib.ticker import MaxNLocator\n",
+    "from collections import defaultdict\n",
+    "import pandas as pd\n",
+    "import seaborn as sns\n",
+    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
+    "plt.rcParams.update({'font.size': 12})\n",
+    "pd.set_option('display.max_colwidth', -1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2.  Predict probabilities\n",
+    "\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998863</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00011367707</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.2402717e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999517</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>4.8225505e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>9.1029716e-14</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998826</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00011736089</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.3640493e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998809</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.0001190398</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.4304882e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999548</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>4.5139022e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>7.4557155e-14</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998492</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00015075288</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>2.8751205e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998938</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.000106220104</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>9.999105e-13</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998385</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00016145893</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>3.608496e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9998399</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00016005547</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>3.511208e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999478</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>5.218504e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.1477291e-13</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9810807</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.018912822</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.402063e-06</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.92223966</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.07775978</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.209471e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.77119005</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.22880979</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.5663863e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.99599</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0039465656</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.3496285e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.64926726</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.35073274</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>9.930102e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9886833</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.011225804</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>9.090092e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9772394</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.022695182</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.550627e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.64295816</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.35704187</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.5136303e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.84566176</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.15433785</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.1220466e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9888799</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.010267593</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00085249124</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.50881517</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49118474</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.561445e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.88514596</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.11484939</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.6489695e-06</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.89321506</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.1067843</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.6432494e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.98068523</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.019314792</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.12604604e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9925465</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.00745355</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.7306818e-15</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.97831887</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.021681104</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.130188e-13</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.74438953</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2556105</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.6590068e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7506184</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.24938157</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0018011e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.958408</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.041591965</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>2.9998048e-12</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.98765844</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.01234158</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.268986e-13</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, u'class_text', u'Iris-setosa', 0.9998863, 1),\n",
+       " (2, u'class_text', u'Iris-versicolor', 0.00011367707, 2),\n",
+       " (2, u'class_text', u'Iris-virginica', 1.2402717e-12, 3),\n",
+       " (5, u'class_text', u'Iris-setosa', 0.9999517, 1),\n",
+       " (5, u'class_text', u'Iris-versicolor', 4.8225505e-05, 2),\n",
+       " (5, u'class_text', u'Iris-virginica', 9.1029716e-14, 3),\n",
+       " (7, u'class_text', u'Iris-setosa', 0.9998826, 1),\n",
+       " (7, u'class_text', u'Iris-versicolor', 0.00011736089, 2),\n",
+       " (7, u'class_text', u'Iris-virginica', 1.3640493e-12, 3),\n",
+       " (13, u'class_text', u'Iris-setosa', 0.9998809, 1),\n",
+       " (13, u'class_text', u'Iris-versicolor', 0.0001190398, 2),\n",
+       " (13, u'class_text', u'Iris-virginica', 1.4304882e-12, 3),\n",
+       " (23, u'class_text', u'Iris-setosa', 0.9999548, 1),\n",
+       " (23, u'class_text', u'Iris-versicolor', 4.5139022e-05, 2),\n",
+       " (23, u'class_text', u'Iris-virginica', 7.4557155e-14, 3),\n",
+       " (24, u'class_text', u'Iris-setosa', 0.9998492, 1),\n",
+       " (24, u'class_text', u'Iris-versicolor', 0.00015075288, 2),\n",
+       " (24, u'class_text', u'Iris-virginica', 2.8751205e-12, 3),\n",
+       " (27, u'class_text', u'Iris-setosa', 0.9998938, 1),\n",
+       " (27, u'class_text', u'Iris-versicolor', 0.000106220104, 2),\n",
+       " (27, u'class_text', u'Iris-virginica', 9.999105e-13, 3),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.9998385, 1),\n",
+       " (30, u'class_text', u'Iris-versicolor', 0.00016145893, 2),\n",
+       " (30, u'class_text', u'Iris-virginica', 3.608496e-12, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.9998399, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 0.00016005547, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 3.511208e-12, 3),\n",
+       " (32, u'class_text', u'Iris-setosa', 0.9999478, 1),\n",
+       " (32, u'class_text', u'Iris-versicolor', 5.218504e-05, 2),\n",
+       " (32, u'class_text', u'Iris-virginica', 1.1477291e-13, 3),\n",
+       " (52, u'class_text', u'Iris-versicolor', 0.9810807, 1),\n",
+       " (52, u'class_text', u'Iris-virginica', 0.018912822, 2),\n",
+       " (52, u'class_text', u'Iris-setosa', 6.402063e-06, 3),\n",
+       " (57, u'class_text', u'Iris-versicolor', 0.92223966, 1),\n",
+       " (57, u'class_text', u'Iris-virginica', 0.07775978, 2),\n",
+       " (57, u'class_text', u'Iris-setosa', 5.209471e-07, 3),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.77119005, 1),\n",
+       " (64, u'class_text', u'Iris-virginica', 0.22880979, 2),\n",
+       " (64, u'class_text', u'Iris-setosa', 1.5663863e-07, 3),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.99599, 1),\n",
+       " (66, u'class_text', u'Iris-virginica', 0.0039465656, 2),\n",
+       " (66, u'class_text', u'Iris-setosa', 6.3496285e-05, 3),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.64926726, 1),\n",
+       " (67, u'class_text', u'Iris-virginica', 0.35073274, 2),\n",
+       " (67, u'class_text', u'Iris-setosa', 9.930102e-08, 3),\n",
+       " (68, u'class_text', u'Iris-versicolor', 0.9886833, 1),\n",
+       " (68, u'class_text', u'Iris-virginica', 0.011225804, 2),\n",
+       " (68, u'class_text', u'Iris-setosa', 9.090092e-05, 3),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9772394, 1),\n",
+       " (70, u'class_text', u'Iris-virginica', 0.022695182, 2),\n",
+       " (70, u'class_text', u'Iris-setosa', 6.550627e-05, 3),\n",
+       " (71, u'class_text', u'Iris-virginica', 0.64295816, 1),\n",
+       " (71, u'class_text', u'Iris-versicolor', 0.35704187, 2),\n",
+       " (71, u'class_text', u'Iris-setosa', 3.5136303e-09, 3),\n",
+       " (74, u'class_text', u'Iris-versicolor', 0.84566176, 1),\n",
+       " (74, u'class_text', u'Iris-virginica', 0.15433785, 2),\n",
+       " (74, u'class_text', u'Iris-setosa', 4.1220466e-07, 3),\n",
+       " (80, u'class_text', u'Iris-versicolor', 0.9888799, 1),\n",
+       " (80, u'class_text', u'Iris-setosa', 0.010267593, 2),\n",
+       " (80, u'class_text', u'Iris-virginica', 0.00085249124, 3),\n",
+       " (85, u'class_text', u'Iris-virginica', 0.50881517, 1),\n",
+       " (85, u'class_text', u'Iris-versicolor', 0.49118474, 2),\n",
+       " (85, u'class_text', u'Iris-setosa', 3.561445e-08, 3),\n",
+       " (90, u'class_text', u'Iris-versicolor', 0.88514596, 1),\n",
+       " (90, u'class_text', u'Iris-virginica', 0.11484939, 2),\n",
+       " (90, u'class_text', u'Iris-setosa', 4.6489695e-06, 3),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.89321506, 1),\n",
+       " (92, u'class_text', u'Iris-virginica', 0.1067843, 2),\n",
+       " (92, u'class_text', u'Iris-setosa', 6.6432494e-07, 3),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.98068523, 1),\n",
+       " (107, u'class_text', u'Iris-versicolor', 0.019314792, 2),\n",
+       " (107, u'class_text', u'Iris-setosa', 1.12604604e-11, 3),\n",
+       " (108, u'class_text', u'Iris-virginica', 0.9925465, 1),\n",
+       " (108, u'class_text', u'Iris-versicolor', 0.00745355, 2),\n",
+       " (108, u'class_text', u'Iris-setosa', 6.7306818e-15, 3),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.97831887, 1),\n",
+       " (116, u'class_text', u'Iris-versicolor', 0.021681104, 2),\n",
+       " (116, u'class_text', u'Iris-setosa', 6.130188e-13, 3),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.74438953, 1),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.2556105, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 1.6590068e-09, 3),\n",
+       " (134, u'class_text', u'Iris-virginica', 0.7506184, 1),\n",
+       " (134, u'class_text', u'Iris-versicolor', 0.24938157, 2),\n",
+       " (134, u'class_text', u'Iris-setosa', 1.0018011e-09, 3),\n",
+       " (138, u'class_text', u'Iris-virginica', 0.958408, 1),\n",
+       " (138, u'class_text', u'Iris-versicolor', 0.041591965, 2),\n",
+       " (138, u'class_text', u'Iris-setosa', 2.9998048e-12, 3),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.98765844, 1),\n",
+       " (143, u'class_text', u'Iris-versicolor', 0.01234158, 2),\n",
+       " (143, u'class_text', u'Iris-setosa', 5.268986e-13, 3)]"
+      ]
+     },
+     "execution_count": 38,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'prob',            -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    3                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3.  Warm start\n",
+    "\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               3,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               1,                     -- metrics compute frequency\n",
+    "                                               TRUE,                  -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Simple MLP for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>True</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>2021-03-05 23:33:49.889172</td>\n",
+       "        <td>2021-03-05 23:34:35.696218</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[1, 2, 3]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 3, 1, True, u'Sophie L.', u'Simple MLP for iris dataset', datetime.datetime(2021, 3, 5, 23, 33, 49, 889172), datetime.datetime(2021, 3, 5, 23, 34, 35, 696218), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [1, 2, 3])]"
+      ]
+     },
+     "execution_count": 40,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 41,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.4149520397186, 27.5328221321106, 42.8307020664215]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.925000011921</td>\n",
+       "        <td>0.378388017416</td>\n",
+       "        <td>[0.866666674613953, 0.883333325386047, 0.925000011920929]</td>\n",
+       "        <td>[0.418134957551956, 0.397540986537933, 0.378388017416]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.401163935661</td>\n",
+       "        <td>[0.766666650772095, 0.800000011920929, 0.933333337306976]</td>\n",
+       "        <td>[0.450369209051132, 0.430310726165771, 0.401163935661316]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.1818931102753, 28.5486171245575, 43.8156039714813]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.0919722244143</td>\n",
+       "        <td>[0.966666638851166, 0.841666638851166, 0.975000023841858]</td>\n",
+       "        <td>[0.0829650238156319, 0.478152126073837, 0.0919722244143486]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.181837588549</td>\n",
+       "        <td>[0.966666638851166, 0.733333349227905, 0.933333337306976]</td>\n",
+       "        <td>[0.108266495168209, 0.985528528690338, 0.18183758854866]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.8922369480133, 29.253427028656, 44.6270771026611]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.163653150201</td>\n",
+       "        <td>[0.891666650772095, 0.491666674613953, 0.933333337306976]</td>\n",
+       "        <td>[0.223677828907967, 1.31514668464661, 0.163653150200844]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.214205592871</td>\n",
+       "        <td>[0.766666650772095, 0.600000023841858, 0.899999976158142]</td>\n",
+       "        <td>[0.346942394971848, 1.53849768638611, 0.214205592870712]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[15.0511469841003, 30.1774880886078, 45.5478649139404]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.159554898739</td>\n",
+       "        <td>[0.75, 0.941666662693024, 0.933333337306976]</td>\n",
+       "        <td>[0.376825720071793, 0.160363256931305, 0.159554898738861]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.249670743942</td>\n",
+       "        <td>[0.666666686534882, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[0.572766482830048, 0.20397062599659, 0.249670743942261]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[14.5801939964294, 29.9574360847473, 45.324392080307]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.941666662693</td>\n",
+       "        <td>0.370102822781</td>\n",
+       "        <td>[0.891666650772095, 0.916666686534882, 0.941666662693024]</td>\n",
+       "        <td>[0.420222342014313, 0.39033767580986, 0.370102822780609]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.429161161184</td>\n",
+       "        <td>[0.800000011920929, 0.833333313465118, 0.866666674613953]</td>\n",
+       "        <td>[0.495854884386063, 0.458509385585785, 0.429161161184311]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.4523401260376, 28.810662984848, 44.1752660274506]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.462273716927</td>\n",
+       "        <td>[0.691666662693024, 0.691666662693024, 0.641666650772095]</td>\n",
+       "        <td>[0.461356490850449, 0.460641026496887, 0.462273716926575]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.461440712214</td>\n",
+       "        <td>[0.566666662693024, 0.566666662693024, 0.766666650772095]</td>\n",
+       "        <td>[0.494220763444901, 0.470757216215134, 0.461440712213516]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[15.3230481147766, 30.4359600543976, 45.8051240444183]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.465268939734</td>\n",
+       "        <td>[0.691666662693024, 0.691666662693024, 0.641666650772095]</td>\n",
+       "        <td>[0.468634635210037, 0.460501492023468, 0.465268939733505]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.453260302544</td>\n",
+       "        <td>[0.566666662693024, 0.566666662693024, 0.766666650772095]</td>\n",
+       "        <td>[0.527487695217133, 0.486553341150284, 0.45326030254364]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.9218399524689, 28.2852990627289, 43.3031449317932]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.282380491495</td>\n",
+       "        <td>[0.975000023841858, 0.916666686534882, 0.908333361148834]</td>\n",
+       "        <td>[0.133402094244957, 0.194111600518227, 0.282380491495132]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.321279972792</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.766666650772095]</td>\n",
+       "        <td>[0.14349028468132, 0.207735612988472, 0.321279972791672]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.6596629619598, 28.0149381160736, 43.0508260726929]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.841666638851</td>\n",
+       "        <td>0.374685227871</td>\n",
+       "        <td>[0.933333337306976, 0.899999976158142, 0.841666638851166]</td>\n",
+       "        <td>[0.162063658237457, 0.223208039999008, 0.374685227870941]</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.698961436749</td>\n",
+       "        <td>[0.866666674613953, 0.733333349227905, 0.733333349227905]</td>\n",
+       "        <td>[0.297752887010574, 0.422860831022263, 0.698961436748505]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.1109259128571, 29.4764680862427, 44.847892999649]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.858333349228</td>\n",
+       "        <td>0.323420703411</td>\n",
+       "        <td>[0.975000023841858, 0.975000023841858, 0.858333349227905]</td>\n",
+       "        <td>[0.260769069194794, 0.237523972988129, 0.323420703411102]</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.45600476861</td>\n",
+       "        <td>[0.933333337306976, 0.933333337306976, 0.699999988079071]</td>\n",
+       "        <td>[0.302719950675964, 0.286018937826157, 0.456004768610001]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.6740920543671, 29.0340840816498, 44.4022340774536]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.52513474226</td>\n",
+       "        <td>[0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
+       "        <td>[0.579447448253632, 0.552316129207611, 0.525134742259979]</td>\n",
+       "        <td>0.566666662693</td>\n",
+       "        <td>0.634039282799</td>\n",
+       "        <td>[0.566666662693024, 0.566666662693024, 0.566666662693024]</td>\n",
+       "        <td>[0.681210398674011, 0.654673635959625, 0.634039282798767]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.3272860050201, 29.6978969573975, 45.0662181377411]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.550000011921</td>\n",
+       "        <td>0.824133753777</td>\n",
+       "        <td>[0.600000023841858, 0.600000023841858, 0.550000011920929]</td>\n",
+       "        <td>[0.849512219429016, 0.836838126182556, 0.82413375377655]</td>\n",
+       "        <td>0.433333337307</td>\n",
+       "        <td>0.862674951553</td>\n",
+       "        <td>[0.533333361148834, 0.533333361148834, 0.433333337306976]</td>\n",
+       "        <td>[0.907541394233704, 0.897742569446564, 0.862674951553345]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.4149520397186, 27.5328221321106, 42.8307020664215], [u'accuracy'], u'categorical_crossentropy', 0.925000011920929, 0.378388017416, [0.866666674613953, 0.883333325386047, 0.925000011920929], [0.418134957551956, 0.397540986537933, 0.378388017416], 0.933333337306976, 0.401163935661316, [0.766666650772095, 0.800000011920929, 0.933333337306976], [0.450369209051132, 0.430310726165771, 0.401163935661316]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.1818931102753, 28.5486171245575, 43.8156039714813], [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.0919722244143486, [0.966666638851166, 0.841666638851166, 0.975000023841858], [0.0829650238156319, 0.478152126073837, 0.0919722244143486], 0.933333337306976, 0.18183758854866, [0.966666638851166, 0.733333349227905, 0.933333337306976], [0.108266495168209, 0.985528528690338, 0.18183758854866]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.8922369480133, 29.253427028656, 44.6270771026611], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.163653150200844, [0.891666650772095, 0.491666674613953, 0.933333337306976], [0.223677828907967, 1.31514668464661, 0.163653150200844], 0.899999976158142, 0.214205592870712, [0.766666650772095, 0.600000023841858, 0.899999976158142], [0.346942394971848, 1.53849768638611, 0.214205592870712]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [15.0511469841003, 30.1774880886078, 45.5478649139404], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.159554898738861, [0.75, 0.941666662693024, 0.933333337306976], [0.376825720071793, 0.160363256931305, 0.159554898738861], 0.899999976158142, 0.249670743942261, [0.666666686534882, 0.899999976158142, 0.899999976158142], [0.572766482830048, 0.20397062599659, 0.249670743942261]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [14.5801939964294, 29.9574360847473, 45.324392080307], [u'accuracy'], u'categorical_crossentropy', 0.941666662693024, 0.370102822780609, [0.891666650772095, 0.916666686534882, 0.941666662693024], [0.420222342014313, 0.39033767580986, 0.370102822780609], 0.866666674613953, 0.429161161184311, [0.800000011920929, 0.833333313465118, 0.866666674613953], [0.495854884386063, 0.458509385585785, 0.429161161184311]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.4523401260376, 28.810662984848, 44.1752660274506], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.462273716926575, [0.691666662693024, 0.691666662693024, 0.641666650772095], [0.461356490850449, 0.460641026496887, 0.462273716926575], 0.766666650772095, 0.461440712213516, [0.566666662693024, 0.566666662693024, 0.766666650772095], [0.494220763444901, 0.470757216215134, 0.461440712213516]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [15.3230481147766, 30.4359600543976, 45.8051240444183], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.465268939733505, [0.691666662693024, 0.691666662693024, 0.641666650772095], [0.468634635210037, 0.460501492023468, 0.465268939733505], 0.766666650772095, 0.45326030254364, [0.566666662693024, 0.566666662693024, 0.766666650772095], [0.527487695217133, 0.486553341150284, 0.45326030254364]),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.9218399524689, 28.2852990627289, 43.3031449317932], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.282380491495132, [0.975000023841858, 0.916666686534882, 0.908333361148834], [0.133402094244957, 0.194111600518227, 0.282380491495132], 0.766666650772095, 0.321279972791672, [0.966666638851166, 0.966666638851166, 0.766666650772095], [0.14349028468132, 0.207735612988472, 0.321279972791672]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [12.6596629619598, 28.0149381160736, 43.0508260726929], [u'accuracy'], u'categorical_crossentropy', 0.841666638851166, 0.374685227870941, [0.933333337306976, 0.899999976158142, 0.841666638851166], [0.162063658237457, 0.223208039999008, 0.374685227870941], 0.733333349227905, 0.698961436748505, [0.866666674613953, 0.733333349227905, 0.733333349227905], [0.297752887010574, 0.422860831022263, 0.698961436748505]),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [14.1109259128571, 29.4764680862427, 44.847892999649], [u'accuracy'], u'categorical_crossentropy', 0.858333349227905, 0.323420703411102, [0.975000023841858, 0.975000023841858, 0.858333349227905], [0.260769069194794, 0.237523972988129, 0.323420703411102], 0.699999988079071, 0.456004768610001, [0.933333337306976, 0.933333337306976, 0.699999988079071], [0.302719950675964, 0.286018937826157, 0.456004768610001]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.6740920543671, 29.0340840816498, 44.4022340774536], [u'accuracy'], u'categorical_crossentropy', 0.699999988079071, 0.525134742259979, [0.699999988079071, 0.699999988079071, 0.699999988079071], [0.579447448253632, 0.552316129207611, 0.525134742259979], 0.566666662693024, 0.634039282798767, [0.566666662693024, 0.566666662693024, 0.566666662693024], [0.681210398674011, 0.654673635959625, 0.634039282798767]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [14.3272860050201, 29.6978969573975, 45.0662181377411], [u'accuracy'], u'categorical_crossentropy', 0.550000011920929, 0.82413375377655, [0.600000023841858, 0.600000023841858, 0.550000011920929], [0.849512219429016, 0.836838126182556, 0.82413375377655], 0.433333337306976, 0.862674951553345, [0.533333361148834, 0.533333361148834, 0.433333337306976], [0.907541394233704, 0.897742569446564, 0.862674951553345])]"
+      ]
+     },
+     "execution_count": 41,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
similarity index 98%
rename from community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
rename to community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
index b457303..0ae2b4c 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
@@ -1198,7 +1198,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1465,7 +1465,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1657,7 +1657,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1805,7 +1805,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1938,7 +1938,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
    ]
   }
  ],
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb b/community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
similarity index 60%
copy from community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
copy to community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
index cb76d1e..3f74a2e 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
+++ b/community-artifacts/Deep-learning/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
@@ -39,42 +39,17 @@
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 3,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -84,7 +59,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -102,15 +77,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -132,7 +107,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -153,271 +128,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]]</td>\n",
+       "        <td>[[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]]</td>\n",
+       "        <td>[[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]]</td>\n",
+       "        <td>[[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]]</td>\n",
+       "        <td>[[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]]</td>\n",
+       "        <td>[[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]]</td>\n",
+       "        <td>[[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]]</td>\n",
+       "        <td>[[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]]</td>\n",
+       "        <td>[[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]]</td>\n",
+       "        <td>[[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]]</td>\n",
+       "        <td>[[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]]</td>\n",
+       "        <td>[[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]]</td>\n",
+       "        <td>[[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]]</td>\n",
+       "        <td>[[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]]</td>\n",
+       "        <td>[[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]]</td>\n",
+       "        <td>[[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]]</td>\n",
+       "        <td>[[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]]</td>\n",
+       "        <td>[[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]]</td>\n",
+       "        <td>[[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]]</td>\n",
+       "        <td>[[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]]</td>\n",
+       "        <td>[[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]], u'cat'),\n",
-       " ([[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]], u'cat'),\n",
-       " ([[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]], u'cat'),\n",
-       " ([[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]], u'bird'),\n",
-       " ([[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]], u'bird'),\n",
-       " ([[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]], u'dog'),\n",
-       " ([[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]], u'bird'),\n",
-       " ([[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]], u'bird'),\n",
-       " ([[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]], u'dog'),\n",
-       " ([[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]], u'bird'),\n",
-       " ([[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]], u'cat'),\n",
-       " ([[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]], u'dog'),\n",
-       " ([[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]], u'bird'),\n",
-       " ([[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]], u'bird'),\n",
-       " ([[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]], u'dog'),\n",
-       " ([[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]], u'bird'),\n",
-       " ([[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]], u'bird'),\n",
-       " ([[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]], u'dog'),\n",
-       " ([[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]], u'bird'),\n",
-       " ([[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]], u'bird'),\n",
-       " ([[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]], u'cat'),\n",
-       " ([[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]], u'bird'),\n",
-       " ([[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]], u'bird'),\n",
-       " ([[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]], u'bird'),\n",
-       " ([[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]], u'bird'),\n",
-       " ([[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]], u'dog'),\n",
-       " ([[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]], u'bird'),\n",
-       " ([[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]], u'bird'),\n",
-       " ([[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]], u'dog'),\n",
-       " ([[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]], u'bird'),\n",
-       " ([[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]], u'bird'),\n",
-       " ([[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]], u'dog'),\n",
-       " ([[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]], u'cat'),\n",
-       " ([[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]], u'bird'),\n",
-       " ([[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]], u'cat'),\n",
-       " ([[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]], u'cat'),\n",
-       " ([[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]], u'cat'),\n",
-       " ([[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]], u'dog'),\n",
-       " ([[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]], u'bird'),\n",
-       " ([[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]], u'bird'),\n",
-       " ([[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]], u'bird'),\n",
-       " ([[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]], u'bird'),\n",
-       " ([[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]], u'bird'),\n",
-       " ([[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]], u'cat'),\n",
-       " ([[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]], u'dog'),\n",
-       " ([[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]], u'dog'),\n",
-       " ([[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]], u'bird'),\n",
-       " ([[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]], u'dog'),\n",
-       " ([[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]], u'bird'),\n",
-       " ([[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]], u'cat'),\n",
-       " ([[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]], u'bird'),\n",
-       " ([[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]], u'bird')]"
+       "[([[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]], u'bird'),\n",
+       " ([[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]], u'cat'),\n",
+       " ([[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]], u'bird'),\n",
+       " ([[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]], u'dog'),\n",
+       " ([[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]], u'dog'),\n",
+       " ([[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]], u'bird'),\n",
+       " ([[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]], u'bird'),\n",
+       " ([[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]], u'dog'),\n",
+       " ([[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]], u'dog'),\n",
+       " ([[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]], u'cat'),\n",
+       " ([[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]], u'cat'),\n",
+       " ([[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]], u'dog'),\n",
+       " ([[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]], u'bird'),\n",
+       " ([[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]], u'bird'),\n",
+       " ([[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]], u'dog'),\n",
+       " ([[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]], u'cat'),\n",
+       " ([[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]], u'cat'),\n",
+       " ([[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]], u'dog'),\n",
+       " ([[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]], u'bird'),\n",
+       " ([[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]], u'cat'),\n",
+       " ([[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]], u'dog'),\n",
+       " ([[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]], u'bird'),\n",
+       " ([[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]], u'bird'),\n",
+       " ([[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]], u'bird'),\n",
+       " ([[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]], u'cat'),\n",
+       " ([[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]], u'cat'),\n",
+       " ([[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]], u'cat'),\n",
+       " ([[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]], u'cat'),\n",
+       " ([[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]], u'dog'),\n",
+       " ([[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]], u'cat'),\n",
+       " ([[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]], u'cat'),\n",
+       " ([[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]], u'bird'),\n",
+       " ([[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]], u'bird'),\n",
+       " ([[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]], u'cat'),\n",
+       " ([[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]], u'dog'),\n",
+       " ([[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]], u'cat'),\n",
+       " ([[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]], u'dog'),\n",
+       " ([[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]], u'cat'),\n",
+       " ([[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]], u'bird'),\n",
+       " ([[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]], u'bird'),\n",
+       " ([[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]], u'dog'),\n",
+       " ([[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]], u'dog'),\n",
+       " ([[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]], u'bird'),\n",
+       " ([[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]], u'dog'),\n",
+       " ([[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]], u'bird'),\n",
+       " ([[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]], u'bird'),\n",
+       " ([[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]], u'bird'),\n",
+       " ([[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]], u'dog'),\n",
+       " ([[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]], u'bird'),\n",
+       " ([[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]], u'dog'),\n",
+       " ([[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]], u'cat'),\n",
+       " ([[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]], u'bird')]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -463,7 +438,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -480,8 +455,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -500,7 +475,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -517,7 +492,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -531,7 +506,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -551,7 +526,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -561,23 +536,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -599,7 +574,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -616,8 +591,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -636,7 +611,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -644,6 +619,7 @@
    "source": [
     "%%sql\n",
     "DROP TABLE IF EXISTS val_image_data_packed, val_image_data_packed_summary;\n",
+    "\n",
     "SELECT madlib.validation_preprocessor_dl(\n",
     "      'image_data',             -- Source table\n",
     "      'val_image_data_packed',  -- Output table\n",
@@ -652,7 +628,8 @@
     "      'image_data_packed',      -- From training preprocessor step\n",
     "      NULL                      -- Buffer size\n",
     "      ); \n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "\n",
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -664,7 +641,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -684,7 +661,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -694,23 +671,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>val_image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'val_image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'val_image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -731,7 +708,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -752,271 +729,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188]</td>\n",
+       "        <td>[168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200]</td>\n",
+       "        <td>[24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165]</td>\n",
+       "        <td>[14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170]</td>\n",
+       "        <td>[131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35]</td>\n",
+       "        <td>[211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184]</td>\n",
+       "        <td>[26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208]</td>\n",
+       "        <td>[18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208]</td>\n",
+       "        <td>[56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188]</td>\n",
+       "        <td>[17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215]</td>\n",
-       "        <td>cat</td>\n",
+       "        <td>[186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254]</td>\n",
+       "        <td>[53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54]</td>\n",
+       "        <td>[222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213]</td>\n",
+       "        <td>[64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1]</td>\n",
+       "        <td>[96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153]</td>\n",
+       "        <td>[88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163]</td>\n",
+       "        <td>[105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161]</td>\n",
+       "        <td>[230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86]</td>\n",
+       "        <td>[247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126]</td>\n",
+       "        <td>[110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90]</td>\n",
+       "        <td>[63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3]</td>\n",
-       "        <td>bird</td>\n",
+       "        <td>[94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121]</td>\n",
+       "        <td>[246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0]</td>\n",
+       "        <td>[106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205]</td>\n",
+       "        <td>[1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1]</td>\n",
+       "        <td>[81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114]</td>\n",
+       "        <td>[126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47]</td>\n",
+       "        <td>[10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188], u'cat'),\n",
-       " ([49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78], u'dog'),\n",
-       " ([203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200], u'bird'),\n",
-       " ([157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187], u'dog'),\n",
-       " ([248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165], u'bird'),\n",
-       " ([201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170], u'cat'),\n",
-       " ([29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35], u'dog'),\n",
-       " ([187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170], u'dog'),\n",
-       " ([9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153], u'dog'),\n",
-       " ([78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168], u'dog'),\n",
-       " ([105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25], u'cat'),\n",
-       " ([93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184], u'bird'),\n",
-       " ([12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208], u'bird'),\n",
-       " ([133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208], u'bird'),\n",
-       " ([143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76], u'dog'),\n",
-       " ([91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100], u'dog'),\n",
-       " ([136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203], u'dog'),\n",
-       " ([126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188], u'bird'),\n",
-       " ([198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215], u'cat'),\n",
-       " ([151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254], u'bird'),\n",
-       " ([246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54], u'cat'),\n",
-       " ([156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16], u'dog'),\n",
-       " ([152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194], u'dog'),\n",
-       " ([169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213], u'bird'),\n",
-       " ([67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153], u'cat'),\n",
-       " ([172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113], u'cat'),\n",
-       " ([225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1], u'dog'),\n",
-       " ([137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206], u'dog'),\n",
-       " ([166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153], u'cat'),\n",
-       " ([249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78], u'dog'),\n",
-       " ([45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126], u'dog'),\n",
-       " ([190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127], u'cat'),\n",
-       " ([56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225], u'dog'),\n",
-       " ([6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223], u'cat'),\n",
-       " ([245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48], u'cat'),\n",
-       " ([82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163], u'bird'),\n",
-       " ([21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161], u'cat'),\n",
-       " ([35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30], u'dog'),\n",
-       " ([144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86], u'cat'),\n",
-       " ([126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126], u'bird'),\n",
-       " ([168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90], u'bird'),\n",
-       " ([170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3], u'bird'),\n",
-       " ([43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121], u'cat'),\n",
-       " ([95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70], u'dog'),\n",
-       " ([96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232], u'bird'),\n",
-       " ([104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14], u'dog'),\n",
-       " ([33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27], u'dog'),\n",
-       " ([176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0], u'cat'),\n",
-       " ([249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205], u'bird'),\n",
-       " ([25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1], u'bird'),\n",
-       " ([142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114], u'dog'),\n",
-       " ([204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47], u'dog')]"
+       "[([168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99], u'dog'),\n",
+       " ([20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140], u'dog'),\n",
+       " ([125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95], u'cat'),\n",
+       " ([24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104], u'bird'),\n",
+       " ([14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191], u'bird'),\n",
+       " ([131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248], u'cat'),\n",
+       " ([211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28], u'dog'),\n",
+       " ([26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45], u'bird'),\n",
+       " ([18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126], u'bird'),\n",
+       " ([56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218], u'bird'),\n",
+       " ([17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227], u'bird'),\n",
+       " ([186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25], u'dog'),\n",
+       " ([53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126], u'dog'),\n",
+       " ([255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227], u'dog'),\n",
+       " ([144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222], u'bird'),\n",
+       " ([222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128], u'cat'),\n",
+       " ([64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213], u'bird'),\n",
+       " ([96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67], u'dog'),\n",
+       " ([88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242], u'cat'),\n",
+       " ([105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231], u'bird'),\n",
+       " ([230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188], u'dog'),\n",
+       " ([127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69], u'dog'),\n",
+       " ([162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174], u'cat'),\n",
+       " ([247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98], u'cat'),\n",
+       " ([110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244], u'bird'),\n",
+       " ([63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28], u'bird'),\n",
+       " ([94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131], u'dog'),\n",
+       " ([246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63], u'dog'),\n",
+       " ([46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204], u'cat'),\n",
+       " ([106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137], u'cat'),\n",
+       " ([1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100], u'bird'),\n",
+       " ([81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160], u'cat'),\n",
+       " ([202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177], u'dog'),\n",
+       " ([61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201], u'bird'),\n",
+       " ([126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220], u'dog'),\n",
+       " ([10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42], u'dog'),\n",
+       " ([98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245], u'dog'),\n",
+       " ([7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251], u'bird'),\n",
+       " ([78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252], u'bird'),\n",
+       " ([82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255], u'bird'),\n",
+       " ([106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132], u'bird'),\n",
+       " ([24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10], u'bird'),\n",
+       " ([168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188], u'cat'),\n",
+       " ([205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74], u'dog'),\n",
+       " ([149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179], u'dog'),\n",
+       " ([15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250], u'dog'),\n",
+       " ([113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229], u'dog'),\n",
+       " ([81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18], u'cat'),\n",
+       " ([84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44], u'dog'),\n",
+       " ([71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16], u'cat'),\n",
+       " ([62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28], u'cat'),\n",
+       " ([65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143], u'cat')]"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1058,7 +1035,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -1075,8 +1052,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1095,7 +1072,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1112,7 +1089,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1127,7 +1104,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -1144,8 +1121,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1164,7 +1141,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1182,7 +1159,7 @@
     "    NULL                      -- Buffer size\n",
     "    );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1197,7 +1174,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -1214,13 +1191,13 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[9, 12]</td>\n",
+       "        <td>[9, 3]</td>\n",
        "        <td>0</td>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1244,22 +1221,22 @@
        "        <td>4</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[7, 12]</td>\n",
+       "        <td>[7, 3]</td>\n",
        "        <td>5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([8, 12], [8, 3], 0),\n",
+       "[([9, 12], [9, 3], 0),\n",
        " ([9, 12], [9, 3], 1),\n",
        " ([9, 12], [9, 3], 2),\n",
        " ([9, 12], [9, 3], 3),\n",
        " ([9, 12], [9, 3], 4),\n",
-       " ([8, 12], [8, 3], 5)]"
+       " ([7, 12], [7, 3], 5)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1276,7 +1253,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1288,7 +1265,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -1308,7 +1285,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1318,23 +1295,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
-       "        <td>10</td>\n",
+       "        <td>9</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 10, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 9, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1356,7 +1333,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -1373,8 +1350,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1393,7 +1370,7 @@
        "[([26, 12], [26, 5], 0), ([26, 12], [26, 5], 1)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1408,15 +1385,15 @@
     "                                        'rgb',                -- Independent variable\n",
     "                                        NULL,                 -- Buffer size\n",
     "                                        255,                  -- Normalizing constant\n",
-    "                                        5                     -- Number of desired class values\n",
+    "                                        ARRAY[5]              -- Number of desired class values\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
@@ -1436,7 +1413,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1446,23 +1423,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog', None, None]</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
+       "        <td>[5]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog', None, None], 26, 255.0, 5, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog', None, None], 26, 255.0, [5], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 15,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1513,7 +1490,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -1538,7 +1515,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1548,23 +1525,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>[2, 3]</td>\n",
        "        <td>[0, 1]</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, [2, 3], [0, 1])]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], [2, 3], [0, 1])]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1610,7 +1587,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Load-model-selection-table-v1.ipynb b/community-artifacts/Deep-learning/Load-model-selection-table-v1.ipynb
deleted file mode 100644
index 778d988..0000000
--- a/community-artifacts/Deep-learning/Load-model-selection-table-v1.ipynb
+++ /dev/null
@@ -1,955 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Load model selection table\n",
-    "This utility function generates model selection tuples (model architecture, compile parameters, fit parameters) for both hyper-parameter search and model architecture search.  The model selection table and associated summary table are used by the multiple model fit feature of MADlib.  \n",
-    "\n",
-    "This utility was added in MADlib 1.17.\n",
-    "\n",
-    "## Table of contents\n",
-    "\n",
-    "<a href=\"#define_model_arch\">1. Define model architecture table</a>\n",
-    "\n",
-    "<a href=\"#load_model_arch\">2. Load model architecture</a>\n",
-    "\n",
-    "<a href=\"#load_model_selection\">3. Load model selection table</a>\n",
-    "\n",
-    "<a href=\"#load_model_selection_manual\">4. Create model selection table manually</a>\n",
-    "\n",
-    "<a href=\"#load_model_selection_auto\">5. Generate hyperparameters automatically</a>"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "        \n",
-    "# PostgreSQL local\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
-      ]
-     },
-     "execution_count": 17,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"define_model_arch\"></a>\n",
-    "# 1. Define model architecture table\n",
-    "The model selection loader works in conjunction with the model architecture table, so we first create a model architecture table with two different models.  See http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html for more details on the model architecture table.\n",
-    "\n",
-    "Import Keras libraries"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define model architecture with 1 hidden layer:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_8 (Dense)              (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_9 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_10 (Dense)             (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 193\n",
-      "Trainable params: 193\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model1 = Sequential()\n",
-    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
-    "model1.add(Dense(10, activation='relu'))\n",
-    "model1.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model1.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_8\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_9\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_10\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model1.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 2, \"batch_input_shape\": [null, 3], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"new_dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'\n",
-    "        "
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define model architecture with 2 hidden layers:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_11 (Dense)             (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_12 (Dense)             (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_13 (Dense)             (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_14 (Dense)             (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 303\n",
-      "Trainable params: 303\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model2 = Sequential()\n",
-    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
-    "model2.add(Dense(10, activation='relu'))\n",
-    "model2.add(Dense(10, activation='relu'))\n",
-    "model2.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model2.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_11\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_12\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_13\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_14\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 22,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model2.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_model_arch\"></a>\n",
-    "# 2. Load model architecture\n",
-    "\n",
-    "Load both into model architecture table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 23,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>model_arch</th>\n",
-       "        <th>model_weights</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>__internal_madlib_id__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>None</td>\n",
-       "        <td>Sophie</td>\n",
-       "        <td>MLP with 1 hidden layer</td>\n",
-       "        <td>__madlib_temp_80732521_1576707528_41018934__</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>None</td>\n",
-       "        <td>Maria</td>\n",
-       "        <td>MLP with 2 hidden layers</td>\n",
-       "        <td>__madlib_temp_54900499_1576707528_11190984__</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_80732521_1576707528_41018934__'),\n",
-       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_54900499_1576707528_11190984__')]"
-      ]
-     },
-     "execution_count": 23,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS model_arch_library;\n",
-    "\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
-    "                               \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Sophie',              -- Name\n",
-    "                               'MLP with 1 hidden layer'       -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
-    "                               \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Maria',               -- Name\n",
-    "                               'MLP with 2 hidden layers'       -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT * FROM model_arch_library ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_model_selection\"></a>\n",
-    "# 3.  Load model selection table\n",
-    "\n",
-    "Select the model(s) from the model architecture table that you want to run, along with the compile and fit parameters.  Unique combinations will be created for the set of model selection parameters:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 24,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
-      ]
-     },
-     "execution_count": 24,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
-    "\n",
-    "SELECT madlib.load_model_selection_table('model_arch_library', -- model architecture table\n",
-    "                                         'mst_table',          -- model selection table output\n",
-    "                                          ARRAY[1,2],              -- model ids from model architecture table\n",
-    "                                          ARRAY[                   -- compile params\n",
-    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$,\n",
-    "                                              $$loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']$$,\n",
-    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$\n",
-    "                                          ],\n",
-    "                                          ARRAY[                    -- fit params\n",
-    "                                              $$batch_size=4,epochs=1$$,\n",
-    "                                              $$batch_size=8,epochs=1$$\n",
-    "                                          ]\n",
-    "                                         );\n",
-    "                                  \n",
-    "SELECT * FROM mst_table ORDER BY mst_key;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "The name of the model architecture table is stored in the summary table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_arch_table</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>model_arch_library</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'model_arch_library',)]"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM mst_table_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_model_selection_manual\"></a>\n",
-    "# 4.  Create model selection table manually\n",
-    "\n",
-    "If you would like to have more control over the set of model selection parameters to run, you can manually create the model selection table and the associated summary table.  Both must be created since they are needed by the multiple model fit module.\n",
-    "\n",
-    "For example, let's say we don't want all combinations but only want batch_size=4 for model_id=1 and batch_size=8 for model_id=2:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "6 rows affected.\n",
-      "6 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_arch_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (3, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (4, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (5, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (6, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mst_table_manual;\n",
-    "\n",
-    "CREATE TABLE mst_table_manual(\n",
-    "    mst_key serial,\n",
-    "    model_arch_id integer,\n",
-    "    compile_params varchar,\n",
-    "    fit_params varchar\n",
-    ");\n",
-    "\n",
-    "INSERT INTO mst_table_manual(model_arch_id, compile_params, fit_params) VALUES\n",
-    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
-    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
-    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
-    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
-    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
-    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=8,epochs=1');\n",
-    "\n",
-    "SELECT * FROM mst_table_manual ORDER BY mst_key; "
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Create the summary table which must be named with the model selection output table appended by \"_summary\":"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_arch_table</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>model_arch_library</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'model_arch_library',)]"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mst_table_manual_summary;\n",
-    "\n",
-    "CREATE TABLE mst_table_manual_summary (\n",
-    "    model_arch_table varchar\n",
-    ");\n",
-    "\n",
-    "INSERT INTO mst_table_manual_summary(model_arch_table) VALUES\n",
-    "('model_arch_library');\n",
-    "\n",
-    "SELECT * FROM mst_table_manual_summary; "
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_model_selection_auto\"></a>\n",
-    "# 5. Generate hyperparameters automatically\n",
-    "\n",
-    "You can use other libraries or methods to generate hyperparameters according to the tests that you want to run.  For example, let's randomly generate batch size from powers of 2 and learning rate on a log scale.\n",
-    "\n",
-    "We use psycopg which is a PostgreSQL database adapter for the Python programming language."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 28,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=32,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=64,epochs=1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=64,epochs=1'),\n",
-       " (3, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (4, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=64,epochs=1'),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=64,epochs=1'),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=64,epochs=1'),\n",
-       " (9, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (10, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=64,epochs=1'),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=32,epochs=1'),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=64,epochs=1')]"
-      ]
-     },
-     "execution_count": 28,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "import numpy as np\n",
-    "import psycopg2 as p2\n",
-    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
-    "#conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
-    "cur = conn.cursor()\n",
-    "\n",
-    "%sql DROP TABLE IF EXISTS mst_table_auto, mst_table_auto_summary;\n",
-    "\n",
-    "#compile params\n",
-    "learning_rate = np.random.permutation([0.1,0.01,0.001,0.0001])[:3]\n",
-    "compile_param1 = \"loss='categorical_crossentropy',optimizer='Adam(lr=\" + str(learning_rate[0]) + \")',metrics=['accuracy']\"\n",
-    "compile_param2 = \"loss='categorical_crossentropy',optimizer='Adam(lr=\" + str(learning_rate[1]) + \")',metrics=['accuracy']\"\n",
-    "compile_param3 = \"loss='categorical_crossentropy',optimizer='Adam(lr=\" + str(learning_rate[2]) + \")',metrics=['accuracy']\"\n",
-    "compile_params = [compile_param1,compile_param2,compile_param3]\n",
-    "\n",
-    "#fit params\n",
-    "batch_size = np.random.permutation([4,8,16,32,64])[:2]\n",
-    "fit_param1 = \"batch_size=\" + str(batch_size[0]) + \",epochs=1\"\n",
-    "fit_param2 = \"batch_size=\" + str(batch_size[1]) + \",epochs=1\"\n",
-    "fit_params = [fit_param1,fit_param2]\n",
-    "\n",
-    "query = \"SELECT madlib.load_model_selection_table('model_arch_library', 'mst_table_auto', ARRAY[1,2], %s, %s);\"\n",
-    "\n",
-    "cur.execute(query,[compile_params, fit_params])\n",
-    "conn.commit()\n",
-    "\n",
-    "#review model selection table\n",
-    "%sql SELECT * FROM mst_table_auto ORDER BY mst_key;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "The name of the model architecture table is stored in the summary table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_arch_table</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>model_arch_library</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'model_arch_library',)]"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM mst_table_auto_summary;"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.10"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-MLP-v2.ipynb b/community-artifacts/Deep-learning/MADlib-Keras-MLP-v2.ipynb
deleted file mode 100644
index c86fb75..0000000
--- a/community-artifacts/Deep-learning/MADlib-Keras-MLP-v2.ipynb
+++ /dev/null
@@ -1,4057 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Multilayer Perceptron Using Keras and MADlib\n",
-    "\n",
-    "E2E classification example using MADlib calling a Keras MLP.\n",
-    "\n",
-    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
-    "\n",
-    "For more realistic examples with images please refer to the deep learning notebooks at\n",
-    "https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
-    "\n",
-    "## Table of contents\n",
-    "\n",
-    "<a href=\"#class\">Classification</a>\n",
-    "\n",
-    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
-    "\n",
-    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
-    "\n",
-    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
-    "\n",
-    "* <a href=\"#train\">4. Train</a>\n",
-    "\n",
-    "* <a href=\"#eval\">5. Evaluate</a>\n",
-    "\n",
-    "* <a href=\"#pred\">6. Predict</a>\n",
-    "\n",
-    "* <a href=\"#pred_byom\">7. Predict BYOM</a>\n",
-    "\n",
-    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
-    "\n",
-    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
-    "\n",
-    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
-    "\n",
-    "* <a href=\"#warm_start\">3. Warm start</a>\n",
-    "\n",
-    "<a href=\"#transfer_learn\">Transfer learning</a>\n",
-    "\n",
-    "* <a href=\"#load2\">1. Define and load model architecture with some layers frozen</a>\n",
-    "\n",
-    "* <a href=\"#train2\">2. Train transfer model</a>"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "        \n",
-    "# PostgreSQL local\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"class\"></a>\n",
-    "# Classification\n",
-    "\n",
-    "<a id=\"create_input_data\"></a>\n",
-    "# 1.  Create input data\n",
-    "\n",
-    "Load iris data set."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "150 rows affected.\n",
-      "150 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>attributes</th>\n",
-       "        <th>class_text</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>13</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>14</td>\n",
-       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>15</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>16</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>17</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>18</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>19</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>20</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>21</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>22</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>23</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>24</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>25</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>26</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>27</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>29</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>30</td>\n",
-       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>31</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>32</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>33</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>34</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>35</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>36</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>37</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>38</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>39</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>40</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>41</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>42</td>\n",
-       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>43</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>45</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>46</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>47</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>48</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>49</td>\n",
-       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>50</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>51</td>\n",
-       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>52</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>53</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>54</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>55</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>56</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>57</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>58</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>59</td>\n",
-       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>60</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>61</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>62</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>63</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>64</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>65</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>66</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>67</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>68</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>70</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>71</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>72</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>73</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>74</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>75</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>76</td>\n",
-       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>77</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>78</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>79</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>81</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>82</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>83</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>84</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>85</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>86</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>87</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>88</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>89</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>91</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>92</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>93</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>94</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>95</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>96</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>98</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>99</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>100</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>101</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>102</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>103</td>\n",
-       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>104</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>105</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>106</td>\n",
-       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>107</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>108</td>\n",
-       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>109</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>110</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>111</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>112</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>113</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>114</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>115</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>116</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>117</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>118</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>119</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>121</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>122</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>123</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>124</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>125</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>126</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>127</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>128</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>129</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>130</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>131</td>\n",
-       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>133</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>134</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>135</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>136</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>137</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>138</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>139</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>140</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>141</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>142</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>143</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>144</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>145</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>146</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>147</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>148</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>149</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>150</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
-       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
-       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
-       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
-       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
-       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
-       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
-       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
-       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
-       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql \n",
-    "DROP TABLE IF EXISTS iris_data;\n",
-    "\n",
-    "CREATE TABLE iris_data(\n",
-    "    id serial,\n",
-    "    attributes numeric[],\n",
-    "    class_text varchar\n",
-    ");\n",
-    "\n",
-    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
-    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
-    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
-    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
-    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
-    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
-    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
-    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
-    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
-    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
-    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
-    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
-    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
-    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
-    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
-    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
-    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
-    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
-    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
-    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
-    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
-    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
-    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
-    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
-    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
-    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
-    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
-    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
-    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
-    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
-    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
-    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
-    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
-    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
-    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
-    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
-    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
-    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
-    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
-    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
-    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
-    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
-    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
-    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
-    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
-    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
-    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
-    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
-    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
-    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
-    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
-    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
-    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
-    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
-    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
-    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
-    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
-    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
-    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
-    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
-    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
-    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
-    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
-    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
-    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
-    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
-    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
-    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
-    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
-    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
-    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
-    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
-    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
-    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
-    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
-    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
-    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
-    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
-    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
-    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
-    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
-    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
-    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
-    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
-    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
-    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
-    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
-    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
-    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
-    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
-    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
-    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
-    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
-    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
-    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
-    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
-    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
-    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
-    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
-    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
-    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
-    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
-    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
-    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
-    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
-    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
-    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
-    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
-    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
-    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
-    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
-    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
-    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
-    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
-    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
-    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
-    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
-    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
-    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
-    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
-    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
-    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
-    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
-    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
-    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
-    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
-    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
-    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
-    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
-    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
-    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
-    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
-    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
-    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
-    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
-    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
-    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
-    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
-    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
-    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
-    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
-    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
-    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
-    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
-    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
-    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
-    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
-    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
-    "\n",
-    "SELECT * FROM iris_data ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Create a test/validation dataset from the training data"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(120L,)]"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
-    "\n",
-    "-- Set seed so results are reproducible\n",
-    "SELECT setseed(0);\n",
-    "\n",
-    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
-    "                               'iris',          -- Output table root name\n",
-    "                                0.8,            -- Train proportion\n",
-    "                                NULL,           -- Test proportion (0.2)\n",
-    "                                NULL,           -- Strata definition\n",
-    "                                NULL,           -- Output all columns\n",
-    "                                NULL,           -- Sample without replacement\n",
-    "                                TRUE            -- Separate output tables\n",
-    "                              );\n",
-    "\n",
-    "SELECT COUNT(*) FROM iris_train;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pp\"></a>\n",
-    "# 2. Call preprocessor for deep learning\n",
-    "Training dataset (uses training preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[60, 4]</td>\n",
-       "        <td>[60, 3]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[60, 4]</td>\n",
-       "        <td>[60, 3]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
-    "\n",
-    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
-    "                                       'iris_train_packed',  -- Output table\n",
-    "                                       'class_text',        -- Dependent variable\n",
-    "                                       'attributes'         -- Independent variable\n",
-    "                                        ); \n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train</td>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>60</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>3</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train', u'iris_train_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, 3, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_train_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Validation dataset (uses validation preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[15, 4]</td>\n",
-       "        <td>[15, 3]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[15, 4]</td>\n",
-       "        <td>[15, 3]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
-    "\n",
-    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
-    "                                         'iris_test_packed',   -- Output table\n",
-    "                                         'class_text',         -- Dependent variable\n",
-    "                                         'attributes',         -- Independent variable\n",
-    "                                         'iris_train_packed'   -- From training preprocessor step\n",
-    "                                          ); \n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_test</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>15</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>3</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_test', u'iris_test_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, 3, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_test_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load\"></a>\n",
-    "# 3. Define and load model architecture\n",
-    "Import Keras libraries"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
-   "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define model architecture"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_1 (Dense)              (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 193\n",
-      "Trainable params: 193\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model_simple = Sequential()\n",
-    "model_simple.add(Dense(10, activation='relu', input_shape=(4,)))\n",
-    "model_simple.add(Dense(10, activation='relu'))\n",
-    "model_simple.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model_simple.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model_simple.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load into model architecture table"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>model_arch</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>Sophie</td>\n",
-       "        <td>A simple model</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model')]"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS model_arch_library;\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
-    "                               \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Sophie',              -- Name\n",
-    "                               'A simple model'       -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"train\"></a>\n",
-    "# 4.  Train\n",
-    "Train the model:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
-    "                               'iris_model',          -- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                1,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
-    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
-    "                                10                    -- num_iterations\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_model</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>1</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
-       "        <td> batch_size=5, epochs=3 </td>\n",
-       "        <td>10</td>\n",
-       "        <td>None</td>\n",
-       "        <td>10</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>2019-12-18 18:09:06.678020</td>\n",
-       "        <td>2019-12-18 18:09:09.703493</td>\n",
-       "        <td>[3.02539992332458]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.958333313465</td>\n",
-       "        <td>0.619696557522</td>\n",
-       "        <td>[0.958333313465118]</td>\n",
-       "        <td>[0.61969655752182]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>[10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_model', u'class_text', u'attributes', u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, None, 10, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2019, 12, 18, 18, 9, 6, 678020), datetime.datetime(2019, 12, 18, 18, 9, 9, 703493), [3.02539992332458], u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [u'accuracy'], 0.958333313465, 0.619696557522, [0.958333313465118], [0.61969655752182], None, None, None, None, [10])]"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"eval\"></a>\n",
-    "# 5. Evaluate\n",
-    "\n",
-    "Now run evaluate using model we built above:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>loss</th>\n",
-       "        <th>metric</th>\n",
-       "        <th>metrics_type</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0.627631247044</td>\n",
-       "        <td>0.899999976158</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0.62763124704361, 0.899999976158142, [u'accuracy'])]"
-      ]
-     },
-     "execution_count": 16,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_validate;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_evaluate('iris_model',       -- model\n",
-    "                                   'iris_test_packed',  -- test table\n",
-    "                                   'iris_validate'      -- output table\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_validate;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pred\"></a>\n",
-    "# 6. Predict\n",
-    "\n",
-    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "30 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>estimated_class_text</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>14</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>18</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>48</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>54</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>56</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>83</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>85</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>88</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>89</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>94</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>103</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>105</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>111</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>128</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>131</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>133</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>136</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>138</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>149</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(7, u'Iris-setosa'),\n",
-       " (8, u'Iris-setosa'),\n",
-       " (9, u'Iris-setosa'),\n",
-       " (14, u'Iris-setosa'),\n",
-       " (18, u'Iris-setosa'),\n",
-       " (28, u'Iris-setosa'),\n",
-       " (44, u'Iris-setosa'),\n",
-       " (48, u'Iris-setosa'),\n",
-       " (54, u'Iris-virginica'),\n",
-       " (56, u'Iris-versicolor'),\n",
-       " (69, u'Iris-virginica'),\n",
-       " (80, u'Iris-versicolor'),\n",
-       " (83, u'Iris-versicolor'),\n",
-       " (85, u'Iris-versicolor'),\n",
-       " (88, u'Iris-virginica'),\n",
-       " (89, u'Iris-versicolor'),\n",
-       " (90, u'Iris-versicolor'),\n",
-       " (94, u'Iris-versicolor'),\n",
-       " (97, u'Iris-versicolor'),\n",
-       " (103, u'Iris-virginica'),\n",
-       " (105, u'Iris-virginica'),\n",
-       " (111, u'Iris-virginica'),\n",
-       " (120, u'Iris-virginica'),\n",
-       " (128, u'Iris-virginica'),\n",
-       " (131, u'Iris-virginica'),\n",
-       " (132, u'Iris-virginica'),\n",
-       " (133, u'Iris-virginica'),\n",
-       " (136, u'Iris-virginica'),\n",
-       " (138, u'Iris-virginica'),\n",
-       " (149, u'Iris-virginica')]"
-      ]
-     },
-     "execution_count": 17,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_predict;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict('iris_model', -- model\n",
-    "                                   'iris_test',  -- test_table\n",
-    "                                   'id',  -- id column\n",
-    "                                   'attributes', -- independent var\n",
-    "                                   'iris_predict'  -- output table\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_predict ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Count missclassifications"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(3L,)]"
-      ]
-     },
-     "execution_count": 18,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
-    "WHERE iris_predict.estimated_class_text != iris_test.class_text;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Percent missclassifications"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>test_accuracy_percent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90.00</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(Decimal('90.00'),)]"
-      ]
-     },
-     "execution_count": 19,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
-    "    (select iris_test.class_text as actual, iris_predict.estimated_class_text as estimated\n",
-    "     from iris_predict inner join iris_test\n",
-    "     on iris_test.id=iris_predict.id) q\n",
-    "WHERE q.actual=q.estimated;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pred_byom\"></a>\n",
-    "# 7. Predict BYOM\n",
-    "The predict BYOM function allows you to do inference on models that have not been trained on MADlib, but rather imported from elsewhere.  \n",
-    "\n",
-    "We will use the validation dataset for prediction as well, which is not usual but serves to show the syntax.\n",
-    "\n",
-    "See load_keras_model()\n",
-    "http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html\n",
-    "for details on how to load the model architecture and weights.  In this example we will use weights we already have:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "UPDATE model_arch_library \n",
-    "SET model_weights = iris_model.model_weights \n",
-    "FROM iris_model \n",
-    "WHERE model_arch_library.model_id = 1;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Now train using a model from the model architecture table directly without referencing the model table from the MADlib training.  \n",
-    "\n",
-    "Note that if you specify the class values parameter as we do below, it must reflect how the dependent variable was 1-hot encoded for training.  In this example the 'training_preprocessor_dl()' in Step 2 above encoded in the order {'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'} so this is the order we pass in the parameter.  If we accidently picked another order that did not match the 1-hot encoding, the predictions would be wrong."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "30 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>estimated_dependent_var</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>14</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>18</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>48</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>54</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>56</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>83</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>85</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>88</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>89</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>94</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>103</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>105</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>111</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>128</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>131</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>133</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>136</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>138</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>149</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(7, u'Iris-setosa'),\n",
-       " (8, u'Iris-setosa'),\n",
-       " (9, u'Iris-setosa'),\n",
-       " (14, u'Iris-setosa'),\n",
-       " (18, u'Iris-setosa'),\n",
-       " (28, u'Iris-setosa'),\n",
-       " (44, u'Iris-setosa'),\n",
-       " (48, u'Iris-setosa'),\n",
-       " (54, u'Iris-virginica'),\n",
-       " (56, u'Iris-versicolor'),\n",
-       " (69, u'Iris-virginica'),\n",
-       " (80, u'Iris-versicolor'),\n",
-       " (83, u'Iris-versicolor'),\n",
-       " (85, u'Iris-versicolor'),\n",
-       " (88, u'Iris-virginica'),\n",
-       " (89, u'Iris-versicolor'),\n",
-       " (90, u'Iris-versicolor'),\n",
-       " (94, u'Iris-versicolor'),\n",
-       " (97, u'Iris-versicolor'),\n",
-       " (103, u'Iris-virginica'),\n",
-       " (105, u'Iris-virginica'),\n",
-       " (111, u'Iris-virginica'),\n",
-       " (120, u'Iris-virginica'),\n",
-       " (128, u'Iris-virginica'),\n",
-       " (131, u'Iris-virginica'),\n",
-       " (132, u'Iris-virginica'),\n",
-       " (133, u'Iris-virginica'),\n",
-       " (136, u'Iris-virginica'),\n",
-       " (138, u'Iris-virginica'),\n",
-       " (149, u'Iris-virginica')]"
-      ]
-     },
-     "execution_count": 21,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_predict_byom;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict_byom('model_arch_library',  -- model arch table\n",
-    "                                         1,                    -- model arch id\n",
-    "                                        'iris_test',           -- test_table\n",
-    "                                        'id',                  -- id column\n",
-    "                                        'attributes',          -- independent var\n",
-    "                                        'iris_predict_byom',   -- output table\n",
-    "                                        'response',            -- prediction type\n",
-    "                                         FALSE,                -- use GPUs\n",
-    "                                         ARRAY['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], -- class values\n",
-    "                                         1.0                   -- normalizing const\n",
-    "                                   );\n",
-    "SELECT * FROM iris_predict_byom ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Count missclassifications:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(3L,)]"
-      ]
-     },
-     "execution_count": 22,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT COUNT(*) FROM iris_predict_byom JOIN iris_test USING (id)\n",
-    "WHERE iris_predict_byom.estimated_dependent_var != iris_test.class_text;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Percent missclassifications:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 23,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>test_accuracy_percent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90.00</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(Decimal('90.00'),)]"
-      ]
-     },
-     "execution_count": 23,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
-    "    (select iris_test.class_text as actual, iris_predict_byom.estimated_dependent_var as estimated\n",
-    "     from iris_predict_byom inner join iris_test\n",
-    "     on iris_test.id=iris_predict_byom.id) q\n",
-    "WHERE q.actual=q.estimated;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"class2\"></a>\n",
-    "# Classification with Other Parameters\n",
-    "\n",
-    "<a id=\"val_dataset\"></a>\n",
-    "# 1.  Validation dataset\n",
-    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 24,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 24,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
-    "                               'iris_model',          -- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                1,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
-    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
-    "                                10,                   -- num_iterations\n",
-    "                                FALSE,                -- use GPUs\n",
-    "                                'iris_test_packed',   -- validation dataset\n",
-    "                                2,                    -- metrics compute frequency\n",
-    "                                FALSE,                -- warm start\n",
-    "                               'Sophie L.',           -- name\n",
-    "                               'Simple MLP for iris dataset'  -- description\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_model</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>1</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
-       "        <td> batch_size=5, epochs=3 </td>\n",
-       "        <td>10</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>2</td>\n",
-       "        <td>Sophie L.</td>\n",
-       "        <td>Simple MLP for iris dataset</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>2019-12-18 18:09:19.330964</td>\n",
-       "        <td>2019-12-18 18:09:21.010635</td>\n",
-       "        <td>[0.915475130081177, 1.10240316390991, 1.24091100692749, 1.37801814079285, 1.67959213256836]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.983333349228</td>\n",
-       "        <td>0.308444350958</td>\n",
-       "        <td>[0.949999988079071, 0.975000023841858, 0.975000023841858, 0.983333349227905, 0.983333349227905]</td>\n",
-       "        <td>[0.5235316157341, 0.450434356927872, 0.391158282756805, 0.344655215740204, 0.30844435095787]</td>\n",
-       "        <td>0.933333337307</td>\n",
-       "        <td>0.363271415234</td>\n",
-       "        <td>[0.866666674613953, 0.933333337306976, 0.933333337306976, 0.933333337306976, 0.933333337306976]</td>\n",
-       "        <td>[0.549321353435516, 0.490176409482956, 0.438665509223938, 0.397390514612198, 0.363271415233612]</td>\n",
-       "        <td>[2, 4, 6, 8, 10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_model', u'class_text', u'attributes', u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2019, 12, 18, 18, 9, 19, 330964), datetime.datetime(2019, 12, 18, 18, 9, 21, 10635), [0.915475130081177, 1.10240316390991, 1.24091100692749, 1.37801814079285, 1.67959213256836], u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [u'accuracy'], 0.983333349228, 0.308444350958, [0.949999988079071, 0.975000023841858, 0.975000023841858, 0.983333349227905, 0.983333349227905], [0.5235316157341, 0.450434356927872, 0.391158282756805, 0.344655215740204, 0.30844435095787], 0.933333337307, 0.363271415234, [0.866666674613953, 0.933333337306976, 0.933333337306976, 0.933333337306976, 0.933333337306976], [0.549321353435516, 0.490176409482956, 0.438665509223938, 0.397390514612198, 0.363271415233612], [2, 4, 6, 8, 10])]"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Accuracy by iteration"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12c58eb50>"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "import pandas as pd\n",
-    "import numpy as np\n",
-    "import sys\n",
-    "import os\n",
-    "from matplotlib import pyplot as plt\n",
-    "\n",
-    "# get accuracy and iteration number\n",
-    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
-    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
-    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
-    "\n",
-    "# get number of points\n",
-    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
-    "num_points = num_points_proxy[0]\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "iters = np.array(iters_proxy).reshape(num_points)\n",
-    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
-    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation accuracy by iteration')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Accuracy')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Loss by iteration"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f1b1c10>"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# get loss\n",
-    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
-    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
-    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation loss by iteration')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Loss')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Accuracy by time"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 28,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f24bbd0>"
-      ]
-     },
-     "execution_count": 28,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd8FHX+x/HXh0DoRUA5KQKC5bBSRKOnBlAPznZnuVNPPAtiOSwo1p8ioqdiL3AqKthQ7O0ORQRijQoIoiIoIAiIjR6kJp/fHzPh1phkF5LJZJP38/HYR2ZnvjP73t3sfna+08zdERERKU2NuAOIiEjlp2IhIiJJqViIiEhSKhYiIpKUioWIiCSlYiEiIkmpWMivmNnfzezNCny8dmbmZlYzvP+6mf0jlbbb8FhXm9nDZclbnZlZtpktjnD5X5hZdlTLl7IxHWdRvZjZAqCfu78VdxYICgDwDVDL3TeXY9ts4El3b10eOaV8X1MzexRY7O7XlHVZUjG0ZiFbbOsvdomX3jepCCoW1ZiZnW5m75vZXWa2DBgSjnsvnG7htB/NbLWZfWZmexaznL+Z2dQi4waa2avh8JFmNj1cxiIzG1JKphwz6xcOZ5jZ7Wb2s5nNB44s0vYMM/vSzNaY2XwzOyccXx94HWhpZnnhraWZDTGzJxPmPybs+lgZPu7vE6YtMLNBZjbTzFaZ2TNmVqeEzB3MbJKZLQuzjjGzJgnT25jZi2b2U9hmeMK0sxOewywz6xKOdzPrmNDuUTO7MRzONrPFZnaFmX0PjDaz7czsP+FjrAiHWyfM39TMRpvZd+H0l8Pxn5vZ0QntaoXPoXMp79HVYZsFZvb3cNx+ZvaDmWUktDvOzD4tZv7+wN+By8P35rWE1/ywcHiImT1nZk+Gr81nZrarmV0V/j8uMrMjEpbZ2MweMbOlZrbEzG5MzCJlp2Ih+wPzgRbAv4pMOwI4BNgVaAz8FVhWzDJeA3Yzs10Sxp0CPBUOrwVOA5oQfOGfZ2Z/TiHb2cBRQGegG3BCkek/htMbAWcAd5lZF3dfC/QBvnP3BuHtu8QZzWxX4GngYmB7YBzwmpllJjT7K9AbaA/sDZxeQk4DbgZaAr8H2gBDwsfJAP4DLATaAa2AseG0E8N2p4XP4RiKf32L8zugKdAW6E/wWR4d3t8JWAcMT2j/BFAP2APYAbgrHP84cGpCuz8BS919eimP2zx8Hv8ARprZbu4+Jcx+RELbvuHyf8XdRwJjgFvD9+boom1CR4e5twOmA+PD59kKGAo8mND2UWAz0JHg/+UIoF8Jy5Vt4e66VaMbsAA4LBw+Hfi2yPTTgffC4Z7AV8ABQI0ky30SGBwO7wKsAeqV0PZu4K5wuB3gQM3wfg7BNhWAScC5CfMdkdi2mOW+DFwUDmcT9IknTh9C0OcOcC3wbMK0GsASIDvhdTo1YfqtwAMpvsZ/BqaHw1nAT8VlJvjyu6iEZTjQMeH+o8CNCc9tI1CnlAz7AivC4R2BAmC7Ytq1DN+rRuH954HLS1hmNsEXcv2Ecc8C14bDVwBjwuGmwC/AjiUsa8vzKeF/cwgwIWHa0UAekBHebxi+Rk0IfuhsAOomtD8ZmBz3560q3bRmIYtKmuDukwh+nY4AfjSzkWbWqITmTxF8QCFYq3jZ3X8BMLP9zWxy2EWyCjiX4NdpMi2L5FuYONHM+pjZh2a23MxWEvwqTmW5hcvesjx3Lwgfq1VCm+8Thn8BGhS3IDNrYWZjw+6P1QSFszBHG2ChF79Bvg0wL8W8Rf3k7usTMtQzswfNbGGY4R2gSbhm0wZY7u4rii7EgzWu94Hjw66zPgS/+kuywoM1t0ILCV5LCJ730WE34F+Bd9196TY+P4AfEobXAT+7e37CfQjek7ZALWBp2KW4kmCtY4cyPLYUoWIhpe4O5+73untXoBNBd9RlJTSdAGxvZvsSFI2nEqY9BbwKtHH3xsADBF03ySwl+KIrtFPhgJnVBl4AbgdauHsTgq6kwuUm283vO4IvmcLlWfhYS1LIVdRN4ePt5e6NCLp1CnMsAnay4jdCLwI6lLDMXwi6jQr9rsj0os/vUmA3YP8wwyHheAsfp2nidpQiHgsznwjkuntpr8F2YTEotBPBa0k4Xy5wHEEX1BOlLKc8d8NcRLBm0dzdm4S3Ru6+Rzk+RrWnYiElCjda7m9mtQi2O6wn6M74DXffBDwH3EbQBTEhYXJDgl+2682sO8GaRyqeBS40s9Zmth1wZcK0TKA2QRfPZjPrw6/7y38AmplZ41KWfaSZ9Qqf36UEXzgfpJgtUUOCLpJVZtaKXxfUjwmK3i1mVt/M6pjZQeG0h4FBZtbVAh3NrLCAzQBOsWAjf2/g0BQyrANWmllT4LrCCeGv+9eBf4cbwmuZ2SEJ874MdAEuophtDMW43swyzexggm1GzyVMexy4HNgLeLGUZfwA7JzCYyUVPr83gTvMrJGZ1bBgp4Nkr5lsBRULKU0j4CFgBUF3wzKCYlCSp4DDgOeKdLucDww1szXAYIIv6lQ8RNCv/ynwCQlfPu6+BrgwXNYKggL0asL02QQbsOeHXRMtE5aLu88h+DV9H/AzQZ/40e6+McVsia4n+LJdBfy3SM78cNkdgW+BxcDfwmnPEexU8BTBdoOXCQotBF/cRwMrCfYcejlJhruBuuFz+RB4o8j0vsAmYDbBjgEXJ2RcR7CW1p7Sv+Ah6JpbQbA2MYZgm9LshOkvEayxvVTYDVmCR4BO4XuT7Lml4jSCHxCzwnzPE2yrkXKig/JEBDMbDOzq7qcmbZx8WfOAc7ySHPgp5UMH84hUc2G31VkEax9lXdbxBNsjJpV1WVK5qBtKpBozs7MJNhC/7u7vlHFZOcD9wD/DvcukClE3lIiIJKU1CxERSarKbLNo3ry5t2vXLtYMa9eupX79+skbVlLKHy/lj086Z4ey5Z82bdrP7r59snZVpli0a9eOqVOnJm8YoZycHLKzs2PNUBbKHy/lj086Z4ey5TezhclbqRtKRERSoGIhIiJJqViIiEhSKhYiIpKUioWIiCSlYiEiIkmpWIhUcbmLcrn53ZvJXZQbdxSJQO6iXMZ8Oyby97fKHGchIr/m7oz5bAxnvnImmws2k1Ejg75796V1o9aRPN6CBQuY5Ol5/sB0zb549WKemPkE+QX5jFk0homnTSSrTVYkj6ViIVJFuDvzV8xn0jeTmLRgEpO+mcSPa3/cMn1zwWZGzxiNpXSRwm30bXSLjlwaZveECw5uzN9IzoIcFQsR+a0lq5cwecFkJn4zkUnfTOLbVcE33o4NduSIDkewU6OduPPDO9mUv4nMjMxIf3mm81HQ6Zo9d1EuvR7vxYbNG8jMyCS7XXZkj6ViIZJGlv2yjMkLJgdrD99MYs6yOQA0rduUHu16cMVBV9CzfU92a7YbwWXF4ahdjyJnQQ7Z7bIjKxQSj6w2WUw8bSKjJo/izB5nRvr+RloswmsH3wNkAA+7+y1FprcFRgHbA8uBU919cTjtVuBIgo3wE4CLXOdTl2pm9YbVvLvw3S1dSzO+nwFAg8wGHNL2EM7ucja9du7F3i32poYVv79KVpssFYkqLKtNFht22hD5exxZsTCzDGAEcDjBdYenmNmr7j4rodntwOPu/piZ9QRuBvqa2YHAQcDeYbv3CC5YnxNVXpHKYN2mdeQuzt2y5vDxko/J93xqZ9TmwDYHcmOPG+nZvifdWnajVkatuONKNRLlmkV3YK67zwcws7HAsQQXVC/UCbgkHJ7M/y5K70AdgguwG1AL+CHCrCKx2JS/ianfTWXiNxN58dMXmfXeLDbkbyDDMujeqjtX/uFKerbvSVbrLOrWqht3XKnGIrtSnpmdAPR2937h/b7A/u4+IKHNU8BH7n6PmR0HvAA0d/dlZnY70I+gWAx39/8r5jH6A/0BWrRo0XXs2LGRPJdU5eXl0aBBg1gzlIXyR6/AC5iXN4/pK6fzycpPmLlqJuvy1wGwc92d6dqsK52bdGbvxntTv2Z6XV8hHV7/kqRzdihb/h49ekxz927J2sW9gXsQMNzMTgfeAZYA+WbWEfg9ULhD+AQzO9jd302c2d1HAiMBunXr5nHvzZCue1QUUv7y5+7MWTZnS7fS5AWTWb5uOQC7NduN0zufTs/2Pclul83nH39e6fJvjcr4+qcqnbNDxeSPslgsAdok3G8djtvC3b8DjgMwswbA8e6+MryI/IfunhdOex3IAn5VLEQqo4UrFzLpm0lbdmddmrcUgDaN2nDMbsfQq30verTrQatGrWJOKpK6KIvFFGAXM2tPUCROAk5JbGBmzYHl7l4AXEWwZxQEh8ecbWY3E3RDHQrcHWFWkW32Q94PW9YcJi2YxPwV8wHYof4O9Gzfk57tetKzfU923m7nLbuziqSbyIqFu282swHAeIJdZ0e5+xdmNhSY6u6vAtnAzWbmBN1Q/wxnfx7oCXxGsLH7DXd/LaqsIltjxboVvL3w7S0F4oufvgCgce3GZLfL5qL9L6Jn+57ssf0eKg5SZUS6zcLdxwHjiowbnDD8PEFhKDpfPnBOlNlEUrV241re+/a9LWsOnyz9hAIvoG7Nuhzc9mD67t2Xnu170mXHLmTUyIg7rkgk4t7ALWkkd1FulT0SOPG5ddmxCx8t+WjLdoePFn/EpoJN1KpRiwNaH8DgQwbTs31PurfqTu2ateOOLlIhVCwkJbmLcun5eE82bN5AzRo1GZQ1iA5NO8Qd61dmL53NvE/mbfV885bP4/bc29lcsBkzo2aNmmzM30gNq0HXHbtySdYl9Gzfk4PaHET9zPTanVWkvKhYSFI///IzA8cPZP3m9QBsKtjEze/fHHOqEnxVttndna47duWKg67g0HaH0qROk/LJJZLmVCykRBvzNzLi4xFc//b1rNmwhppWE8eplVGLp497mq4tu8Yd8Vdyc3PJytr67rFp303j5BdP3nJm1juOuKPKdbOJlJWKhfyGu/PaV68x6M1BfL38a47ocAR3HnEnqzesrtTbLObVmUebxm2SNyyiTeM2TDptUqV+biJxU7GQX5n5w0wuGX8JE7+ZyO7Nd+e/p/yXPh37bNkFtKp+kerMrCKlU7EQAH5c+yN3fHUH494ZR+Pajbm3972c2+1cndlURAAVi2pvw+YN3PvRvdz47o2s3biWC7pfwOBDB9O0btO4o4lIJaJiUU25Oy/NfonLJlzG/BXzOWrXozix8Ymc1vu0uKOJSCVU/KW1pEqbvnQ6PR7rwfHPHk/dmnUZf+p4Xjv5NXaqt1Pc0USkktKaRTWydM1Srpl0DaNnjKZZvWbcf+T99OvSj5o19G8gIqXTt0Q1sG7TOu768C5ufu9mNmzewCVZl3DNIdfogDMRSZmKRRXm7jz7xbNc8dYVLFy1kD/v/mduO/w2OjbtGHc0EUkzKhZV1JQlUxg4fiDvL3qffVrsw+hjR9OjfY+4Y4lImlKxqGKWrF7CVROv4omZT7BD/R146OiHOGPfM3TqbBEpExWLKuKXTb9w+we3M+z9YWwu2MyVB13JVQdfRaPajeKOJiJVgIpFmivwAp7+7GmunHgli1cv5sROJzLssGG036593NFEpApRsUhjuYtyGTh+IB8t+YguO3bhqeOe4uC2B8cdS0SqIBWLNPTtqm+58q0refrzp9mxwY48euyj9N2nLzVMx1iKSDRULNJI3sY8hr03jNtzbwfgmoOv4Yo/XEGDzAYxJxORqk7FIg0UeAGPf/o4V0+8mqV5Szl5z5O55bBb2KmxTs8hIhVDxaKSe3fhuwwcP5BpS6exf6v9eeGvL+i6CyJS4VQsKqlvVnzD5W9dzvOznqd1o9Y8+ZcnOXmvk7VdQkRioWJRyazesJqb3r2Juz68i5o1anJ99vUMOnAQ9WrVizuaiFRjKhaVRH5BPqNnjOb/Jv0fP679kdP2OY2bet5Eq0at4o4mIhLt9SzMrLeZzTGzuWZ2ZTHT25rZRDObaWY5ZtY6YdpOZvammX1pZrPMrF2UWeM0+ZvJdB3ZlbNfO5uOTTvycb+PeezPj6lQiEilEVmxMLMMYATQB+gEnGxmnYo0ux143N33BoYCNydMexy4zd1/D3QHfowqa1zmLp/LX575Cz0f78nK9St55oRneO+M99iv1X5xRxMR+ZUou6G6A3PdfT6AmY0FjgVmJbTpBFwSDk8GXg7bdgJquvsEAHfPizBnhVu5fiU3vnMj9350L7Vr1uamnjdx8QEXU7dW3bijiYgUy9w9mgWbnQD0dvd+4f2+wP7uPiChzVPAR+5+j5kdB7wANAcOBvoBG4H2wFvAle6eX+Qx+gP9AVq0aNF17NixkTyXVOXl5dGgQckHyOV7Pv9Z+h9GLxjN6k2r6f273pzV7iya1W5WgSlLlix/Zaf88Urn/OmcHcqWv0ePHtPcvVvShu4eyQ04AXg44X5fYHiRNi2BF4HpwD3AYqBJOO8qYGeCtZ8XgLNKe7yuXbt63CZPnlzitPFzx/seI/ZwhuCHjj7UP/nuk4oLlqLS8qcD5Y9XOudP5+zuZcsPTPUUvtOj7IZaArRJuN86HLeFu38HHAdgZg2A4919pZktBmb4/7qwXgYOAB6JMG8kZv88m0FvDuK/X/+XnbfbmRf++gJ/2f0vmFnc0UREUhZlsZgC7GJm7QmKxEnAKYkNzKw5sNzdC4CrgFEJ8zYxs+3d/SegJzA1wqzlbvm65Vyfcz3/nvpv6tasy62H3cqF+19I7Zq1444mIrLVIisW7r7ZzAYA44EMYJS7f2FmQwlWe14FsoGbzcyBd4B/hvPmm9kgYKIFP8GnAQ9FlbU8bcrfxANTH+C6nOtYtWEVZ3c5m6E9hrJD/R3ijiYiss0iPSjP3ccB44qMG5ww/DzwfAnzTgD2jjJfeXJ3Plz2Iec9cB6zf55Nr/a9uOuPd7FXi73ijiYiUmY6grscfPHjF1z65qWMnzeeXZruwqsnvcpRux6l7RIiUmWoWJTBz7/8zHWTr+PBaQ/SsHZD/tnhn9x58p1kZmTGHU1EpFypWGyDjfkbGf7xcIa+PZS8jXmc2+1chmQP4fOPP1ehEJEqScViK7g7r855lUETBjF3+Vx6d+zNHUfcQafti57FRESkalGxSNHMH2YycPxAJn0zid83/z3jThlHn136xB1LRKRCqFgk8UPeD1w7+Voemf4ITeo04b4+93FO13OolVEr7mgiIhVGxaIEGzZv4J6P7uHGd25k3eZ1XNj9QgYfOpjt6m4XdzQRkQqnYlGEu/Pily9y2YTL+GblNxy969Hcdvht7NZ8t7ijiYjERsUiwSdLP2Hg+IG8s/Ad9txhT9489U0O73B43LFERGKnYgG8Nuc1rn/7eqYtnUbzes154MgHOKvLWdSsoZdHRARULHjm82c46YWTAKhZoyZPHfeU1iZERIqI9Brc6WDeinkYwWk53J2p36XVyW1FRCpEtS8WPdr1oE7NOmRYBpkZmWS3y447kohIpVPtu6Gy2mQx8bSJ5CzIIbtdNlltsuKOJCJS6VT7YgFBwVCREBEpWbXvhhIRkeRULEREJCkVCxERSUrFQkREklKxEBGRpFQsREQkKRULERFJSsVCRESSUrEQEZGkVCxERCSpSIuFmfU2szlmNtfMrixmelszm2hmM80sx8xaF5neyMwWm9nwKHOKiEjpIisWZpYBjAD6AJ2Ak82sU5FmtwOPu/vewFDg5iLTbwDeiSqjiIikJso1i+7AXHef7+4bgbHAsUXadAImhcOTE6ebWVegBfBmhBlFRCQF5u7RLNjsBKC3u/cL7/cF9nf3AQltngI+cvd7zOw44AWgObCCoIicChwGdEucL2H+/kB/gBYtWnQdO3ZsJM8lVXl5eTRo0CDWDGWh/PFS/vikc3YoW/4ePXpMc/duydrFfYryQcBwMzudoLtpCZAPnA+Mc/fFZlbizO4+EhgJ0K1bN8/Ozo46b6lycnKIO0NZKH+8lD8+6ZwdKiZ/lMViCdAm4X7rcNwW7v4dcByAmTUAjnf3lWaWBRxsZucDDYBMM8tz999sJBcRkehFWSymALuYWXuCInEScEpiAzNrDix39wLgKmAUgLv/PaHN6QTdUCoUIiIxiWwDt7tvBgYA44EvgWfd/QszG2pmx4TNsoE5ZvYVwcbsf0WVR0REtl3SNQszuwB40t1XbO3C3X0cMK7IuMEJw88DzydZxqPAo1v72CIiUn5SWbNoAUwxs2fDg+xK3uIsIiJVUtJi4e7XALsAjwCnA1+b2U1m1iHibCIiUkmktM3Cg4Mxvg9vm4HtgOfN7NYIs4mISCWRtFiY2UVmNg24FXgf2MvdzwO6AsdHnE8qk9xcuPnm4G9Vo+cm6So3l53GjIn8/U1l19mmwHHuvjBxpLsXmNlR0cSSSic3F7KzYeNGMIPdd4dKdsRrlzVroGHDrZ8xLw9mzwb3WJ/bNucvTQU+t0jyV5C0zR6+v+3dYcwYmDgRsrIieahUisXrwPLCO2bWCPi9u3/k7l9Gkkoqn2efDQoFBF88+fnQvHm8mYrYVKMGNG269TOuWhU8J4j1uW1z/tJU4HOLJH8FSdvs4ftrEHw+c3JiLRb3A10S7ucVM06qsvx8eDM8n2NGBmRmwqOPRvZPua0+29ZTHuTmQq9ewYctxue2zflLU4HPLZL8FSRts4fvb8GGDdTIzAzW/iOSSrEwTzjbYNj9FPc5paQi3X03zJoFQ4YEXzjZ2ZWuUJRJVlaw+p6To+cm6SV8fxeMGsXOZ54Z6fubypf+fDO7kGBtAoKT/M2PLJFULl99BddcA8ccA4MHB/3eVVFWVtX9Iq3Kz00gK4tvN2xg54jf41R2nT0XOJDg/E6Lgf0JTwsuVVxBAZx1FtSpA/ffX3ULhYgklXTNwt1/JDgJoFQ3I0bAe+/B6NHQsmXcaUQkRqmcG6oOcBawB1CncLy7nxlhLonb/Plw5ZXQpw/84x9xpxGRmKXSDfUE8Dvgj8DbBNelWBNlKIlZQQH06xfs+fTgg+p+EpGUikVHd78WWOvujwFHEmy3kKpq5EiYPBnuuAPatEneXkSqvFSKxabw70oz2xNoDOwQXSSJ1bffwmWXBfvm9+sXdxoRqSRS2XV2pJltB1wDvEpwmdNrI00l8XCHs88O/j78sLqfRGSLUouFmdUAVocXPnoH2LlCUkksfvf668GR2sOHQ7t2cccRkUqk1G6o8NrYl1dQFonTkiV0/Pe/4ZBD4Lzz4k4jIpVMKtss3jKzQWbWxsyaFt4iTyYVxx3OPRfbvBkeeQRqRHZpdhFJU6lss/hb+PefCeMcdUlVHWPGwH/+wzfnn0/Hjh3jTiMilVAqR3C3r4ggEpPvv4cLL4SsLBYfdxwqFSJSnFSO4D6tuPHu/nj5x5EK5Q7nnw+//AKjRgWFQ0SkGKl0Q+2XMFwH6AV8AqhYpLvnnoOXXoJbbgmuoKZiISIlSKUb6oLE+2bWBBgbWSKpGD/9BP/8J+y3H1x6adxpRKSS25bdXtYCKW3HMLPeZjbHzOaa2ZXFTG9rZhPNbKaZ5ZhZ63D8vmaWa2ZfhNP+9tulS5lccEFwScZRo6CmrmUlIqVLZZvFawR7P0FQXDoBz6YwXwYwAjic4DoYU8zsVXefldDsduBxd3/MzHoCNwN9gV+A09z9azNrCUwzs/HuvnIrnpuU5KWX4JlnYOhQ2HPPuNOISBpI5Sfl7QnDm4GF7r44hfm6A3PdfT6AmY0FjgUSi0Un4JJweDLwMoC7f1XYwN2/M7Mfge0BFYuyWr48OOhu332DU5CLiKQglWLxLbDU3dcDmFldM2vn7guSzNcKWJRwv/Aqe4k+BY4D7gH+AjQ0s2buvqywgZl1BzKBeSlklWQuvhiWLYM33oBateJOIyJpwty99AZmU4ED3X1jeD8TeN/d90sy3wlAb3fvF97vC+zv7gMS2rQEhhNsA3kHOB7Ys7C7ycx2BHKAf7j7h8U8Rn/CS7y2aNGi69ix8W53z8vLo0GDBrFmKE3T3Fz2vvpqFvTty4Izf3vtqsqePxnlj1c650/n7FC2/D169Jjm7t2SNnT3Um/AjGLGfZrCfFnA+IT7VwFXldK+AbA44X4jgl10T0j2WO5O165dPW6TJ0+OO0LJVqxwb9nSfY893NevL7ZJpc6fAuWPVzrnT+fs7mXLD0z1FL5jU9kb6iczO6bwjpkdC/ycwnxTgF3MrH24NnISwSnOtzCz5uGZbQuLyahwfCbwEsHG7+dTeCxJZtCg4DiK0aOhdu2404hImkmlWJwLXG1m35rZt8AVwDnJZnL3zcAAYDzwJfCsu39hZkMTik82MMfMvgJaAP8Kx/8VOAQ43cxmhLd9t+aJSYI33wxOEHjZZcFxFSIiWymVg/LmAQeYWYPwfl6qC3f3ccC4IuMGJww/D/xmzcHdnwSeTPVxpBRr1gQXNNptNxgyJO40IpKmkq5ZmNlNZtbE3fPcPc/MtjOzGysinJSDyy+HRYuCg+/q1Ik7jYikqVS6ofp4wsFwHlw170/RRZJyM3kyPPBAsLvsgQfGnUZE0lgqxSLDzLZsETWzuoC2kFZ2a9dCv37QsSPcqBVBESmbVA7KGwNMNLPRgAGnA49FGUrKwdVXw/z58PbbUK9e3GlEJM2lsoF7mJl9ChxGcI6o8UDbqINJGbz3Htx3X3BW2UMOiTuNiFQBqZ519geCQnEi0JNgV1ipjNatgzPPhLZtg+tUiIiUgxLXLMxsV+Dk8PYz8AzB6UF6VFA22RaDB8PXX8Nbb0Ean75ARCqX0rqhZgPvAke5+1wAMxtYIalk23z0Edx5J/TvD716xZ1GRKqQ0rqhjgOWApPN7CEz60WwgVsqo/Xr4YwzoGVLuPXWuNOISBVTYrFw95fd/SRgd4JrTVwM7GBm95vZERUVUFJ0ww3w5Zfw0EPQuHHcaUSkikm6gdvd17r7U+5+NNAamE5wfiipLKZNg2HD4PTToXfvuNOISBW0VdfgdvcV7j7S3dUhXlls3Bh0P+2wQ7C9QkQkAqkclCeV2U03wWefwSuvwHbbxZ1GRKqorVqzkEpm5kz417/glFPgmGOStxcR2UYqFulq06ag+6lpU7j33rhm7Q3GAAAUFUlEQVTTiEgVp26odHXbbfDJJ/D889CsWdxpRKSK05pFOvriC7j+ejjhBDj++LjTiEg1oGKRbvLzg3M/NWwII0bEnUZEqgl1Q6Wbu+6Cjz+Gp54KdpcVEakAWrNIJ199BddeC8ceCyedFHcaEalGVCzSRWH3U506cP/9YDpNl4hUHHVDpYsRI+D99+HRR2HHHeNOIyLVjNYs0sG8eXDVVdCnD5x2WtxpRKQaUrGo7AoKoF8/qFkTRo5U95OIxELdUJXdgw9CTk5QKFq3jjuNiFRTka5ZmFlvM5tjZnPN7Mpiprc1s4lmNtPMcsysdcK0f5jZ1+HtH1HmrLQWLoTLL4fDDgvWLkREYhJZsTCzDGAE0AfoBJxsZp2KNLsdeNzd9waGAjeH8zYFrgP2B7oD15lZ9TqlqjucfXbw96GH1P0kIrGKcs2iOzDX3ee7+0ZgLHBskTadgEnh8OSE6X8EJrj7cndfAUwAqtdVfUaNggkTgkuktmsXdxoRqeai3GbRCliUcH8xwZpCok8JrvV9D/AXoKGZNSth3lZFH8DM+gP9AVq0aEFOTk55Zd8meXl55ZKh9k8/sd9FF5G3zz7M2H33YJtFBSiv/HFR/nilc/50zg4Vkz/uDdyDgOFmdjrwDrAEyE91ZncfCYwE6Natm2dnZ0cQMXU5OTmUOYM7HHUUFBTQ5Pnnye7YsVyypaJc8sdI+eOVzvnTOTtUTP4oi8USoE3C/dbhuC3c/TuCNQvMrAFwvLuvNLMlQHaReXMizFp5PPkkjBsXnAOqAguFiEhpotxmMQXYxczam1kmcBLwamIDM2tuZoUZrgJGhcPjgSPMbLtww/YR4biqbelSuOgiOPBAuOCCuNOIiGwRWbFw983AAIIv+S+BZ939CzMbamaF1wDNBuaY2VdAC+Bf4bzLgRsICs4UYGg4rupyh/PPh19+gUcegYyMuBOJiGwR6TYLdx8HjCsybnDC8PPA8yXMO4r/rWlUfc8+Cy+/DMOGwe67x51GRORXdLqPyuCnn2DAANhvP7jkkrjTiIj8hopFZTBgAKxaBaNHB+eAEhGpZPTNFLcXXwy6oG64AfbYI+40IiLF0ppFnJYtCzZqd+4MV1wRdxoRkRJpzSJOF18cFIzx46FWrbjTiIiUSGsWcfnPf4ID8K6+GvbZJ+40IiKlUrGIw8qVcM45sOee8H//F3caEZGk1A0Vh0svhR9+gFdegczMuNOIiCSlNYuKNn58cPrxyy6Dbt3iTiMikhIVi4q0enVwQaPdd4frros7jYhIytQNVZEuvxwWL4b334c6deJOIyKSMq1ZVJRJk+DBB2HgQMjKijuNiMhWUbGoCHl50K9fcH2KG26IO42IyFZTN1RFuPpq+OYbeOcdqFcv7jQiIltNaxZRe/dduO++4GSBBx8cdxoRkW2iYhGlX36BM8+E9u3h5pvjTiMiss3UDRWlwYNh7lyYOBEaNIg7jYjINtOaRVQ+/BDuuis4rUfPnnGnEREpExWLKKxfD2ecAa1awa23xp1GRKTM1A0VhaFDYfZseOMNaNQo7jQiImWmNYvyNm1asDZxxhnwxz/GnUZEpFyoWJQj27QpKBI77AB33hl3HBGRcqNuqHLU9skn4bPP4NVXoUmTuOOIiJQbFYvy8umn7DRmDPz973D00XGnEZEkNm3axOLFi1m/fj2NGzfmyy+/jDvSNkslf506dWjdujW1tvESzioW5SHsftrcqBGZ99wTdxoRScHixYtp2LAh7dq1Iy8vj4YNG8YdaZutWbOm1PzuzrJly1i8eDHt27ffpseIdJuFmfU2szlmNtfMrixm+k5mNtnMppvZTDP7Uzi+lpk9ZmafmdmXZnZVlDnL7NZbYfp0vrr4YmjWLO40IpKC9evX06xZM8ws7iiRMzOaNWvG+vXrt3kZkRULM8sARgB9gE7AyWbWqUiza4Bn3b0zcBLw73D8iUBtd98L6AqcY2btospaJl98Eewqe+KJ/HzIIXGnEZGtUB0KRaGyPtco1yy6A3Pdfb67bwTGAscWaeNA4YEIjYHvEsbXN7OaQF1gI7A6wqzbZvPmYO+nRo1g+PC404iIRCbKbRatgEUJ9xcD+xdpMwR408wuAOoDh4XjnycoLEuBesBAd19e9AHMrD/QH6BFixbk5OSUY/zk2owdS4cpU5h17bX8OGsWeXl5FZ6hPCl/vJS/YjVu3Jg1a9YAkJ+fv2W4oixbtoxjjjkGgB9++IGMjAyaN28OwOTJk8nMzEy6jPPOO49LLrmEnXfeOaX869ev3/b3yN0juQEnAA8n3O8LDC/S5hLg0nA4C5hFsLZzEDAGqAXsAMwBdi7t8bp27eoVavZs99q13f/8Z/eCAnd3nzx5csVmKGfKHy/lr1izZs3aMrx69eqU5vng2w/8pndu8g++/aBcs1x33XV+2223/WZ8QUGB5+fnJ50/1fyJz7kQMNVT+E6Pcs1iCdAm4X7rcFyis4DeAO6ea2Z1gObAKcAb7r4J+NHM3ge6AfMjzJu6/Pzg1OP16sG//w3VqN9TpCq6YvIVzFo+q9Q2qzasYuYPMynwAmpYDfZusTeNazcusf2+v9uXu3vfvdVZ5s6dyzHHHEPnzp2ZPn06EyZM4Prrr+eTTz5h3bp1/O1vf2Pw4MEA/OEPf2D48OG0bduWJk2acO655/L6669Tr149XnnlFXbYYYetfvySRLnNYgqwi5m1N7NMgg3YrxZp8y3QC8DMfg/UAX4Kx/cMx9cHDgBmR5h16wwfDh98AHffDTvuGHcaEakAq9avosALACjwAlatXxXZY82ePZuBAwcya9YsWrVqxS233MLUqVP59NNPmTBhArNm/bawrVq1ikMPPZRPP/2UrKwsRo0aVa6ZIluzcPfNZjYAGA9kAKPc/QszG0qw2vMqcCnwkJkNJNiofbq7u5mNAEab2ReAAaPdfWZUWbfKvHlw1VXwpz9B375xpxGRcjCsx7Ckx1nkLsql1+O92Ji/kcyMTMYcN4asNlmR5OnQoQPdunXbcv/pp5/mkUceYfPmzXz33XfMmjWLTp1+vXNp3bp16dOnDwBdu3bl3XffLddMkR6U5+7jgHFFxg1OGJ5FsH2i6Hx5BLvPVi4FBXDWWVCrFjz4oLqfRKqRrDZZTDxtIjkLcshulx1ZoQCoX7/+luGvv/6ae+65h48//pgmTZpw6qmnFnu8ROIG8YyMDDZv3lyumXQE99Z44AF4+2146CFo3TruNCJSwbLaZEVaJIqzevVqGjZsSKNGjVi6dCnjx4+nd+/eFZoBVCxSt2ABXH45HH54sHYhIlIBunTpQqdOndh9991p27YtBx30m86YCqFikQp36N8/6HZ66CF1P4lIuRoyZMiW4Y4dOzJjxowt982MJ554otj53nvvPSA4N9TKlSu3jD/ppJM46aSTyjWjikUqHnkEJkwIdpNt2zbuNCIiFU4XP0pm8WK49FLIzoZzzok7jYhILFQsSuMeFIjNm+Hhh6GGXi4RqZ7UDVWaJ56AceOCg+86dIg7jYhIbPRTuSRLl8JFF8FBB8EFF8SdRkQkVioWxXGH886D9euDjdvqfhKRak7dUMV55hl45ZXgCni77RZ3GhGpgpYtW0avXr0A+P7778nIyGD77bcH4OOPP07pFOUAo0aN4pBDDon8srAqFkX9+CMMGADdu8Mll8SdRkQqk9xcyMkJ9o7MKtuR3M2aNdtyPMWQIUNo0KABgwYN2urljBo1it12242OHTuWKU8yKhZFDRgAa9bAqFGQkRF3GhGpALWvuAKKOZPrr6xaBTNnBueIq1ED9t4bGpd8inL23TfYOWYbPPbYY4wYMYKNGzdy4IEHMnz4cAoKCjjjjDOYMWMG7k7//v1p0aIFM2bM4PTTT6d+/fpbtUaytVQsEr3wAjz3HNx4I+yxR9xpRKQyWbUqKBQQ/F21qvRisY0+//xzXnrpJT744ANq1qxJ//79GTt2LB06dODnn3/ms88+A2DlypU0adKE++67j2HDhkV+GhAVi0LLlsH550PnzsE5oESk2tgwbBiZyfr8c3OhVy/YuBEyM2HMmDJ3RRXnrbfeYsqUKVtOUb5u3TratGnDH//4R+bMmcOFF17IkUceyRFHHFHuj10aFYtCF10Ey5fDm28GpyAXEUmUlQUTJ5bbNouSuDtnnnkmN9xww2+mzZw5k9dff50RI0bwwgsvMHLkyEgyFEfFAuC224JfCWeeCfvsE3caEamssrIiKxKFDjvsME444QQuuugimjdvzrJly1i7di1169alTp06nHjiieyyyy7069cPgIYNG5KXlxdpJlCxgPHj/9ft9PTT0K9f5P8MIiIl2Wuvvbjuuus47LDDKCgooFatWjzwwANkZGRw1lln4e6YGcOGDQPgjDPOYMCAAdrAHbl33vnf8MaNwSqmioWIVKDEU5QDnHLKKZxyyim/aTd9+vTfjPvrX/9Knz59Ij/OQocmH3UU1K0b7CabmRn0RYqIyK9ozaKCNlqJiKQzFQuokI1WIlL5FPb/VwfuXqb51Q0lItVSnTp1WLZsWZm/RNOBu7Ns2TLq1KmzzcvQmoWIVEutW7dm8eLF/PTTT6xfv75MX6RxSyV/nTp1aN269TY/hoqFiFRLtWrVon379gDk5OTQuXPnmBNtu4rIr24oERFJSsVCRESSUrEQEZGkrKrsCWBmPwELY47RHPg55gxlofzxUv74pHN2KFv+tu6+fbJGVaZYVAZmNtXdu8WdY1spf7yUPz7pnB0qJr+6oUREJCkVCxERSUrFonxV3JVIoqH88VL++KRzdqiA/NpmISIiSWnNQkREklKxEBGRpFQsSmFmvc1sjpnNNbMri5le28yeCad/ZGbtwvHNzGyymeWZ2fAi82Sa2Ugz+8rMZpvZ8WmW/2Qz+8zMZprZG2bWvJJlP9zMpoUZp5lZz4R5uobj55rZvRbhuanLO7+Z1TOz/4b/M1+Y2S1RZY8if5F5XzWzz9Mtf5p8dkvLX7bPrrvrVswNyADmATsDmcCnQKcibc4HHgiHTwKeCYfrA38AzgWGF5nneuDGcLgG0Dxd8hOcePLHwszArcCQSpa9M9AyHN4TWJIwz8fAAYABrwN9KuFrX2x+oB7QIxzOBN5Np/wJ8x0HPAV8HkX2iP9/0uGzW9L/T5k/u5G8WVXhBmQB4xPuXwVcVaTNeCAr4c34mXCngXDc6fy2WCwC6qdjfqAW8BPQluAL9wGgf2XMHo43YDlQG9gRmJ0w7WTgwcr62hfNX8xj3AOcnU75gQbAe0Anoi0WUeVPm89u0fzl8dlVN1TJWhH8cxRaHI4rto27bwZWAc1KWqCZNQkHbzCzT8zsOTNrUX6Ri88WKnN+d98EnAd8BnxH8KF/pPwi/zZXaFuzHw984u4bwvaLkyyzvESRf4vw/+hoYGI5Zi42W6i88t8A3AH8Ut6BS8oWKnP+NP3sbslfHp9dFYuKVRNoDXzg7l2AXOD2eCOlzsxqEfzDdQZaAjMJfvVUOma2BzAMOCfuLNuipPxmVhN4GrjX3efHkS0VRfOb2b5AB3d/KdZgKSrm9U+rz24xr3+ZP7sqFiVbArRJuN86HFdsm/BD3BhYVsoylxH8qnoxvP8c0KU8whYjivz7Arj7PA/Wc58FDiyvwMXlCm1VdjNrDbwEnObu8xLaJ14mrLhllpco8hcaCXzt7ndHkPs32ULlkT8L6GZmCwi6onY1s5w0yp82n90S8pf5s6tiUbIpwC5m1t7MMgk2Ir1apM2rwD/C4ROASeEbUaxw2mtAdjiqFzCrPEMnKPf8BP+gncys8AyVhwNflmPmQtucPewu+C9wpbu/X9jY3ZcCq83sgHAvqNOAVyLIHkl+ADO7keBL4eKIcheK4vW/391buns7gp0nvnL37DTKnxaf3VL+f8r+2Y16Y00634A/AV8R7Jnwf+G4ocAx4XAdgl8Ycwn2tNk5Yd4FBBuX8gj6HDuF49sC7xCsBk4Edkqz/OeG/2QzCT48zSpTduAaYC0wI+G2QzitG/B5uMzhFNkgWJnzE/y69PC1LxzfL13yF1l2OyLcwB3h/0+l/+wmyV+mz65O9yEiIkmpG0pERJJSsRARkaRULEREJCkVCxERSUrFQkREklKxkGrLgrPrzghv35vZkoT7H0T0mJ3NbKtOs2BmD5tZpyRtBpjZmWVLJ1Iy7TorApjZECDP3SM9hYOZPUdw5tJPy3m59YD33b1zeS5XpJDWLESKYWZ54d9sM3vbzF4xs/lmdouZ/d3MPg6vDdAhbLe9mb1gZlPC20HFLLMhsHdhoTCzIWb2mJm9a2YLzew4M7s1XO4b4fl8MLMcM+tWmMvM/mVmn5rZh4Uns3P3X4AFZta9Yl4hqW5ULESS24fg6NffA32BXd29O/AwcEHY5h7gLnffj+Bsnw8Xs5zCI8gTdQB6AscATwKT3X0vYB1wZDHLqA986O77EBxNfHbCtKnAwVv97ERSUDPuACJpYIoH55bCzOYBb4bjPwN6hMOHEZx7p3CeRmbWwN3zEpazI8E1BRK97u6bzOwzgovevJGw7HbFZNkI/CccnkZwjp9CPwK7b8XzEkmZioVIconXkyhIuF/A/z5DNYAD3H19KctZR3BOn98s290LzGyT/28jYuKyEyW2yS/Spk74GCLlTt1QIuXjTf7XJVV4/YaivgQ6RphhV37bzSVSLlQsRMrHhQTXa5hpZrMItnH8irvPBhqHG7qjcBAwIaJlSzWnXWdFKpCZDQTWuHtxG8DLstzOwCXu3rc8lytSSGsWIhXrfn69DaS8NAeujWC5IoDWLEREJAVasxARkaRULEREJCkVCxERSUrFQkREklKxEBGRpP4fpmvRDGDMKMMAAAAASUVORK5CYII=\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# get time\n",
-    "time_proxy = %sql SELECT metrics_elapsed_time FROM iris_model_summary;\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "time = np.array(time_proxy).reshape(num_points)/60.0\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation accuracy by time')\n",
-    "plt.xlabel('Time (min)')\n",
-    "plt.ylabel('Accuracy')\n",
-    "plt.grid(True)\n",
-    "plt.plot(time, train_accuracy, 'g.-', label='Train')\n",
-    "plt.plot(time, test_accuracy, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Time to achieve a given accuracy"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f344210>"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEWCAYAAABMoxE0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl4VdXV+PHvIiTMM4pCkCBgNTggY0MVAwii/oTWIiAqiANvsVQttRW1giJv1WrrUGgtVV4VUbQolSo1KnJVJGgUkVFLQIYAKoQxQAhJ1u+Ps0MuIcNNbk7uTbI+z3OfnLPPtPa9yV3Ze59BVBVjjDGmoupEOgBjjDHVmyUSY4wxYbFEYowxJiyWSIwxxoTFEokxxpiwWCIxxhgTFkskJiQicp2IvFtJ+8oSkTMrY19lHOd5EZnu93HKiOFGEVkaNF9i3YuuW4Fj/UdExlZ0e2MqyhKJAUBENovIpSUtV9W5qjq4AvsNiMgtRfbVWFU3VSTO6q6y6i4iD4jIS0X2fbmqvhDuvo0pL0skpkwiUjfSMZjay37/op8lEnMS18XyiYg8ISKZwAPB3S7ieUJEfhCRAyKyWkTOLWY//wtcDMxwXTozXLmKSGc3/byI/NV1y2S5454mIk+KyF4R+VpELgzaZ1sReV1EdonItyJyexnVaS0i74nIQRH5UEQ6uP3MFJE/FYl3oYj8uph6/E1EHi9S9qaITHLTk0VkozvGOhH5WSnvbXDdW7ljHhCRz4BORdZ9SkS2ueVfiMjFrnwIcC8w0r1nX7ny460/EakjIr8XkS3uc3pRRJq5ZQkujrEislVEdovIfaXEfKWIfOni2CYiDxRZfpGILBORfW75ja68gYj8ycWwX0SWurJkEckoso/jLWLX2povIi+JyAHgRhHpLSKp7hg7RWSGiMQFbd/Vfc57ROR7EbnX/R4dFpFWQet1d787sSXV11SAqtrLXgCbgUvd9I1ALvAroC7QwJUtdcsvA74AmgMCnAOcXsJ+A8AtRcoU6Oymnwd2Az2A+sAHwLfAGCAGmA4scevWccedAsQBZwKbgMtKOPbzwEGgH1APeCqoDr2BHUAdN98aOAy0KWY//YBtgLj5FsARoK2bvwZo6+IbCRwqeD+C37di6j4PeA1oBJwLbC+y7vVAK/cZ/Ab4Dqjvlj0AvFTSew3cBKS796gx8AYwxy1LcHH8w322FwBHgXNKeB+TgfNc/c4Hvgd+6pZ1cO/xtUCsi7ebWzbTxdTOfZZ93eeQDGSU8vv3AHAM+Kk7ZgO8348fu/ciAVgP3OnWbwLsdO9RfTffxy1bBEwIOs4TwF8i/fdW017WIjEl2aGqf1HVXFU9UmTZMbw/1rPxvlzXq+rOMI61QFW/UNVsYAGQraovqmoe8CpQ0CLpBZyiqtNUNUe9sYZ/AKNK2ffbqvqRqh4F7gOSRKS9qn4G7AcGuvVGAQFV/b6YfXyM98V7sZsfDqSq6g4AVf2nqu5Q1XxVfRXYgJeoSiQiMcDPgSmqekhV1wAnjG+o6kuqmuk+gz/hfQn/qLT9BrkO+LOqblLVLOAeYFSRbqIHVfWIqn4FfIWXUE6iqgFVXe3qtwp4BbjELR4NvK+qr6jqMRfvShGpg5fM7lDV7aqap6rL3OcQilRV/Zc75hH3+7HcvRebgb8HxfD/gO9U9U+qmq2qB1X1U7fsBbyEXPCeXwvMCTEGEyJLJKYk20paoKofADPw/uP8QURmiUjTMI4V/OV9pJj5xm66A9DWdW/sE5F9eF08bUrZ9/F6uC/UPXitBwj6knE/i/2CUVXFaz1c64pGA3MLlovIGBFZGRTTuXgtnNKcgvffdfD7vCV4BRG5S0TWu26hfUCzEPZboG2R/W1xxwt+r74Lmj5M4ft8AhHpIyJLXJfQfuAXQXG0BzYWs1lrvNZBcctCccLvn4icJSJvich3rrvrDyHEAPAmkCgiHYFBwH73T4SpRJZITElKvS20qj6tqj2AROAs4LcV2U85bQO+VdXmQa8mqnpFKdu0L5gQkcZAS7wuLYCXgGEicgFe99y/StnPK8BwN8bSB3jd7bMDXqtoItBKVZsDa/C6/EqzC6/7sH1Q2RlBsV4M/A4YAbRw+90ftN+y3tcdeIk3eN+5nJikQ/UysBBor6rNgGeC4thGkbEdZzeQXcKyQ0DDghnXUjilyDpF6/c34Gugi6o2xfsHIjiGYk+pdq3c1/D+UbgBa434whKJKTcR6eX+S43F+1LIBvJLWP17Svgjr4DPgIMicrcbtI0RkXNFpFcp21zhBoPjgIeA5aq6DUBVM4A0vC+X14vpwjtOVb/E+3J8FkhR1X1uUSO8L71dACIyDq9FUirXbfcG3okMDUUkEQi+BqQJ3hf/LqCuiEwBglt93wMJrgupOK8AvxaRji6B/gF4VVVzy4qtGE2APaqaLSK98VpkBeYCl4rICBGp604g6Kaq+cBs4M/inSARIyJJIlIP+C9Q3w3ixwK/x+u2KyuGA0CWiJwNTAha9hZwuojcKSL1RKSJiPQJWv4i3ljVUCyR+MISiamIpnj/he/F6zLJBB4rYd2n8P6T3ysiT4dzUPfl+/+AbngD8gVf7M1K2exlYCpel1YPCruyCryAN5AcyhfMy8Cl7mdBTOuAPwGpeF/u5wGfhLAv8FoxjfG6mJ4H/i9oWQrwDt6X7ha8ZB3c3fNP9zNTRFYUs+/ZeHX6CO+9ysY7eaIibgOmichBvBMdXitYoKpbgSvwBrr3ACspHGu5C1iNl6z3AI/indyw3+3zWbwTDA4BJ5zFVYy78BLYQbzfvVeDYjiI1211Fd57uQHoH7T8E7x/dFao6gndh6ZyFJyFYkytJCL98Lq4Oqj9MdRYIvIB8LKqPhvpWGoiu9DH1FquW+UO4FlLIjWX6/rsDgyLdCw1lXVtmVpJRM4B9gGnA09GOBzjExF5AXgf75qTg5GOp6ayri1jjDFhsRaJMcaYsNSKMZLWrVtrQkJCpMMI26FDh2jUqFGkw6g0Vp/oZvWJfn7WqXXr1qSkpKSo6pCy1q0ViSQhIYHPP/880mGELRAIkJycHOkwKo3VJ7pZfaKf33USkZDupGBdW8YYY8JiicQYY0xYLJEYY4wJS60YIynOsWPHyMjIIDs7O9KhhKxZs2asX7++QtvWr1+f+Ph4YmPteT7GmMpVaxNJRkYGTZo0ISEhAZGybtQaHQ4ePEiTJk3KvZ2qkpmZSUZGBh07dvQhMmNMbeZr15aIDBGRb0QkXUQmF7O8noi86pZ/KiIJrnyQeI8WXe1+Dgja5lpXvkpE3gn1rIKisrOzadWqVbVJIuEQEVq1alWtWl/GmOrDt0TinjEwE7gc75kV17pbZQe7Gdirqp3xHoH5qCvfDVylqufh3Vp7jttnXby7yfZX1fOBVXh3UK1ojBXdtNqpTXWt9VJT4eGHvZ+m1krdlsrDHz9M6jb/fw/87NrqDaS7x6EiIvPwbpq2LmidYXjPZwaYD8wQEXHPfiiwFmjgnmOQj/cwm0Yikol3O/N0H+tgTPWSmgqXXAJ5eVCvHixeDElJkY7KVLHUban0f6E/OXk51K9bn8VjFpPU3r/fAz8TSTtOfH5CBt6T5YpdR1Vz3WM8W+G1SAr8HO85AkcBRGQC3jMODuE9d+CXxR1cRMYD4wHatGlDIBA4YXmzZs04eDBy93DLzMxk6NChAHz//ffExMTQurXXS7dkyRLi4uJO2iYvL++EmCdMmMCkSZPo0qVLSMfMzs4+6X2IpKysrKiKJ1zRUJ8z5s6l47FjCJB/9CibZ89m69FQH5N+omioT2WqafWBkus0d+tccvJyUJSjuUeZvWQ2R8+o2O9BSFTVlxcwHO/23AXzNwAziqyzBogPmt8ItA6a7+rKOrn5WGAx3uM7Be+54b8vK5YePXpoUevWrTupLFKmTp2qjz322Enl+fn5mpeXd3z+wIEDYR0nmuqsqrpkyZJIh1CpoqI+y5apgqqIaoMG3nwFRUV9KlFNq49qyXVatnWZxk6LVR5AG0xvoMu2Vuz3APhcQ/i+93OwfTsnPo863pUVu44b/2iG97Q9RCQeWACMUdWNbv1uAKq60VXyNaCvXxUoqir6HNPT00lMTOS6666ja9eu7Ny5k/Hjx9OzZ0969+7NtGnTjq970UUXsXLlSnJzc2nevDmTJ0/mggsuICkpiR9++MG3GE0US0qCFi2gVy/r1qrFktoncXP3mwFYdN0iX7u1wN+urTSgi4h0xEsYozjxWc8AC/EG01PxWjAfqKqKSHPgbWCyeo/JLLAdSBSRU1R1F97jNSt2YUWQO9+5k5XfrSx1nf1H97Pq+1Xkaz51pA7ntzmfZvVKfsJrt9O68eSQij3m4uuvv+bFF1+kZ8+eADzyyCO0bNmSvXv3MnToUIYPH05i4onnLezfv59LLrmERx55hEmTJjF79mwmTz7pRDlTG8TGQvfulkRquQ7NOgDw4/gf+34s31okqpqLd0ZVCt6X/WuqulZEponIULfac0ArEUkHJgEF33wTgc7AFBFZ6V6nquoO4EHgIxFZhddC+YNfdQi2P3s/+ZoPQL7msz97v2/H6tSp0/EkAvDKK6/QvXt3Lr74YtavX8+6detO2qZBgwZcfvnlAPTo0YPNmzf7Fp8xxgTz9YJEVV0ELCpSNiVoOhu4ppjtpgPTS9jnM8AzlRlnKC2H1G2pDHxxIDl5OcTFxDH36rm+NReDbwu9YcMGnnrqKT777DNiYmKYMGFCsdeDBA/Ox8TEkJub60tsxhhTlN1rK0RJ7ZNYPGYxD/V/yPdT6YIdOHCAJk2a0LRpU7777jtSUlKq5LjGGBOqWnuLlIpIap9UZQmkQPfu3UlMTOTss88mPj6en/zkJ1V6fGOMKYslkijwwAMPHJ/u3LkzK1cWDvyLCHPmzAFOvtfW0qVLj0/v27fv+PSoUaMYNWqUjxEbY0wh69oyxhgTFkskxhhjwmKJxBhjTFgskRhjjAmLJRJjjDFhsURijDEmLJZIIiQzM5Nu3brRrVs3TjvtNNq1a3d8PicnJ+T9zJ49m++++87HSI0xpnR2HUmEtGrV6vj1Ig888ACNGzfmrrvuKvd+Zs+eTffu3TnttNMqO0RjjAmJJZLySE2FQACSk329s+oLL7zAzJkzycnJoW/fvsyYMYP8/HxuvfVW1q5di6oyfvx42rRpw8qVKxk5ciQNGjTgs88+K/aBWMYY4ydLJAB33gkrS7+NPPv3w6pVkJ8PderA+edDs5JvI0+3bvBk+W8jv2bNGhYsWMCyZcuoW7cu48ePZ968eXTq1InMzExWr14NeFeyN2/enL/85S/MmDGDbt26lftYxhhTGSyRhGr/fi+JgPdz//7SE0kFvf/++6SlpR2/jfyRI0do3749l112Genp6dx+++1ceeWVDB48uNKPbYwxFWGJBEJrOaSmwsCBkJMDcXEwd64v3Vuqyk033cRDDz100rJly5axdOlSZs6cyeuvv86sWbMq/fjGGFNelkhClZTkPbrU5zGSSy+9lOHDh3PHHXfQunVrMjMzOXToEA0aNEBVueaaa+jSpQu33HILAE2aNOHgwYO+xGKMMaGwRFIeSUm+P770vPPOY+rUqVx66aXk5+cTGxvLM888Q0xMDOPGjUNEEBEeffRRAMaNG8ctt9xig+3GmIixRBIFgm8jDzB69GhGjy76eHvvtvHBt5EHGDFiBCNGjPAzPGOMKZVdkGiMMSYslkiMMcaEpVYnElWNdAhVpjbV1RhTtWptIqlfvz6ZmZm14gtWVcnMzKR+/fqRDsUYUwP5OtguIkOAp4AY4FlVfaTI8nrAi0APIBMYqaqbRWQQ8AgQB+QAv1XVD9w2ccAMIBnIB+5T1dfLG1t8fDwZGRns2rWrotWrctnZ2RVOBvXr1yc+Pr6SIzLGGB8TiYjEADOBQUAGkCYiC1V1XdBqNwN7VbWziIwCHgVGAruBq1R1h4icC6QA7dw29wE/qOpZIlIHaFmR+GJjY+nYsWOF6hYpgUCACy+8MNJhGGPMCfzs2uoNpKvqJlXNAeYBw4qsMwx4wU3PBwaKiKjql6q6w5WvBRq41gvATcDDAKqar6q7fayDMcaYMvjZtdUO2BY0nwH0KWkdVc0Vkf1AK7wWSYGfAytU9aiINHdlD4lIMrARmKiq3xc9uIiMB8YDtGnThkAgEHaFIi0rK6tG1KOA1ccffY8dY9eOHWwIM5ZoqU9lqWn1gdLrtGnrJgA++ugj4ur4e6FyVF+QKCJd8bq7Cu5QWBeIB5ap6iQRmQQ8DtxQdFtVnQXMAujZs6cmJydXScx+CgQC1IR6FLD6+CQ2lnZt29IuzFiipj6VpKbVB0qv0/Kly+Fb6NevH/Xr+nuijZ9dW9uB9kHz8a6s2HVEpC7QDG/QHRGJBxYAY1R1o1s/EzgMvOHm/wl09yN4Y4wxofEzkaQBXUSkozvTahSwsMg6C4Gxbno48IGqquvCehuYrKqfFKys3rm6/8Y7YwtgIBA8eG+MMaaK+ZZIVDUXmIh3xtV64DVVXSsi00RkqFvtOaCViKQDk4DJrnwi0BmYIiIr3etUt+xu4AERWYXXpfUbv+pgjDGmbL6OkajqImBRkbIpQdPZwDXFbDcdmF7CPrcA/So3UmOMMRVVa69sN8YYUzkskRhjjAmLJRJjjDFhsURijDEmLJZIjDHGhMUSiTHGmLBYIjHGGBMWSyTGGGPCYonEGGNMWCyRGGOMCYslEmOMMWGxRGKMMSYslkiMMcaExRKJMcaYsFgiMcYYExZLJMYYY8JiicQYY0xYLJEYY4wJiyUSY4wxYbFEYowxJiyWSIwxxoTFEokxxpiw+JpIRGSIiHwjIukiMrmY5fVE5FW3/FMRSXDlg0TkCxFZ7X4OKGbbhSKyxs/4jTHGlM23RCIiMcBM4HIgEbhWRBKLrHYzsFdVOwNPAI+68t3AVap6HjAWmFNk31cDWX7FbowxJnR+tkh6A+mquklVc4B5wLAi6wwDXnDT84GBIiKq+qWq7nDla4EGIlIPQEQaA5OA6T7GbowxJkR1fdx3O2Bb0HwG0KekdVQ1V0T2A63wWiQFfg6sUNWjbv4h4E/A4dIOLiLjgfEAbdq0IRAIVKwWUSQrK6tG1KOA1ccffY8dY9eOHWwIM5ZoqU9lqWn1gdLrtGnrJgA++ugj4urE+RqHn4kkbCLSFa+7a7Cb7wZ0UtVfF4ynlERVZwGzAHr27KnJycm+xloVAoEANaEeBaw+PomNpV3btrQLM5aoqU8lqWn1gdLrtHzpcvgW+vXrR/269X2Nw8+ure1A+6D5eFdW7DoiUhdoBmS6+XhgATBGVTe69ZOAniKyGVgKnCUiAZ/iN8YYEwI/E0ka0EVEOopIHDAKWFhknYV4g+kAw4EPVFVFpDnwNjBZVT8pWFlV/6aqbVU1AbgI+K+qJvtYB2OMMWXwLZGoai4wEUgB1gOvqepaEZkmIkPdas8BrUQkHW8AveAU4YlAZ2CKiKx0r1P9itUYY0zF+TpGoqqLgEVFyqYETWcD1xSz3XTKOCtLVTcD51ZKoMYYYyrMrmw3xhgTFkskxhhjwmKJxBhjTFgskRhjjAmLJRJjjDFhsURijDEmLCGd/isiPYGLgbbAEWAN8J6q7vUxNmOMMdVAqS0SERknIiuAe4AGwDfAD3hXlb8vIi+IyBn+h2mMMSZaldUiaQj8RFWPFLfQ3USxC7C1sgMzxlTQsWOwYgWkpkJSUqSjMRGyZf8WAJZnLCc5IdnXY5XaIlHVmSUlEbd8paourvywjDEVkpoKe/dCWhoMHOjNm1ondVsqz614DoAr5l5B6jZ/fw9CHSM5BbgVSAjeRlVv8icsY0yFFDybQhVycrx5a5XUOks2L+FY/jEAcvJyCGwOkNTev9+DUO+19SbwMfA+kOdbNMaY8BQ8m0IE4uIK502tkp2bDUAd6hAXE+d711aoiaShqt7tayTGmPAlJUGLFtClCzz5pLVGaqG9R/byzOfPkNg6kevOv47+Cf19bY1A6InkLRG5wt3N1xgTzWJjoXt3SyK11L2L7yXzSCYp16dw4ekXVskxQ70g8Q68ZHJERA6IyEEROeBnYMYYY8rns+2f8fcv/s6vev+qypIIhNgiUdUmfgdijDGm4nLzc/nFW7/g9CanM63/tCo9dqmJRETOVtWvRaR7cctVdYU/YRljjCmPv6X9jS+/+5JXh79K03pNq/TYZbVIJgHjgT8Vs0yBAZUekTHGmHLZeXAnv1/yewadOYhrEk966KzvSk0kqjre/exfNeEYY4wpr0nvTuJo7lFmXjETEany44d6QWIMcCUnX5D4Z3/CMsYYE4r3Nr7HvDXzmHrJVLq06hKRGEI9/fffQDawGsj3LxxjjDGhysnPYeKiiXRu2ZnJF02OWByhJpJ4VT3f10iMMcaUyytbX2HDng2kXJ9C/br1IxZHqNeR/EdEBpd35yIyRES+EZF0ETkpXYpIPRF51S3/VEQSXPkgEflCRFa7nwNceUMReVtEvhaRtSLySHljMsaYmiB9Tzpzt85lRNcRDO5U7q/nShVqIlkOLCjPBYluXGUmcDmQCFwrIolFVrsZ2KuqnYEngEdd+W7gKlU9DxgLzAna5nFVPRu4EPiJiFweYh2MMaZGUFUmLppIbJ1YnrjsiUiHE3Ii+TOQhHfPraaq2kRVyzpRuTeQrqqbVDUHmAcMK7LOMOAFNz0fGCgioqpfquoOV74WaCAi9VT1sKouAXD7XAHEh1gHY4ypEeavm0/KxhTGJYyjbZO2kQ4n5DGSbcAaVdVy7Lud265ABtCnpHVUNVdE9gOt8FokBX4OrFDVo8Ebikhz4CrgqeIOLiLj8a6BoU2bNgQKbq9djWVlZdWIehSw+vij77Fj7Nqxgw1hxhIt9aksNaU+h3IPcVvabXRu3JlBzQZFRZ1CTSSbgICI/Ac4/oXu9+m/ItIVr7trcJHyusArwNOquqm4bVV1FjALoGfPnppcA26nHQgEqAn1KGD18UlsLO3atqVdmLFETX0qSU2pz6/f+TWZOZm8dcNbHEk/EhV1CrVr61tgMRAHNAl6lWY70D5oPt6VFbuOSw7NgEw3Hw8sAMao6sYi280CNqjqkyHGb4wx1d7K71by9GdPM77HePrEF+3giZxQb9r4YAX2nQZ0EZGOeAljFDC6yDoL8QbTU4HhwAeqqq7b6m1gsqp+EryBiEzHSzi3VCAmY4yplvI1n9vevo1WDVrxh4F/iHQ4Jyi1RSIi/xCR80pY1khEbhKR64pbrqq5wEQgBVgPvKaqa0VkmogMdas9B7QSkXS8+3oVnCI8EegMTBGRle51qmul3Id3FtgKV24JxRhT4z234jlSM1J5bNBjtGzQMtLhnKCsFslM4H6XTNYAu4D6QBegKTAbmFvSxu5BWIuKlE0Jms4GTrrDmKpOB6aXsNuqv5GMMcZE0K5Du7j7/bvp16EfYy4YE+lwTlLWTRtXAiNEpDHQEzgdOAKsV9VvqiA+Y4yp9X73/u84mHOQv17x14jclLEsoY6RZAEBf0MxxhhT1MdbPub5lc9z90/upuupXSMdTrFCPWvLGGNMFTuWd4wJb0+gQ7MO3N/v/kiHU6JQryMxxhhTxZ5Y/gRrd63lzVFv0iiuUaTDKVG5WiQi0tCvQIwxxhTasm8LD374IEN/NJShPxpa9gYRFFIiEZG+IrIO+NrNXyAif/U1MmOMqcXueOcOAJ4e8nSEIylbqC2SJ4DLcFedq+pXQD+/gjLGmNrs39/8mze/eZMp/abQoXmHSIdTppC7tlR1W5GivEqOxRhjar3Dxw5z+zu3k3hKIr9O+nWkwwlJyHf/FZG+gIpILHAH3tXqxhhjKtH0j6azed9mAmMDxMXERTqckITaIvkF8Eu8275vB7q5eWOMMZVk/a71PL7sccZcMIZLEi6JdDghC/WCxN1AsffUMsYYEz5V5bZFt9E4rjGPDXos0uGUS0iJxN3B91dAQvA2qhrd56QZY0w18dKqlwhsDvDMlc9waqNTIx1OuYQ6RvIvvDv1/hvI9y8cY4ypffYe2ctv3v0Nfdr14dYet0Y6nHILNZFkq2r0n8xsjIFjx2DFCkhNhaSkSEdjQnDTmzex+/Bu/jjoj9SR6nfnqlAjfkpEpopIkoh0L3j5GpkxpvxSU2HvXkhLg4EDvXkT1d5Y/wb/+uZfANz29m2kbqt+n1moLZLzgBuAARR2bambN8ZEi0DA+6kKOTnevLVKotriTYsBUJScvBwCmwMkta9en1moieQa4ExVzfEzGGNMmJKTvZ8iEBdXOG+iVvfTvc6dOlKHuJg4khOSIxtQBYTatbUGaO5nIMaYSpCUBC1aQK9esHixtUaqgfPbnA/A9eddz+Ixi6tdawRCb5E0B74WkTTgaEGhnf5rTBSKjYXu3S2JVDMjuo6olkkEQk8kU32NwhhjTLUV6pXtH/odiDHGmOqp1EQiIktV9SIROYh3ltbxRYCqalNfozPGGBP1yhpsbwSgqk1UtWnQq0koSUREhojINyKSLiKTi1leT0Redcs/FZEEVz5IRL4QkdXu54CgbXq48nQReVpEpFw1NsYYU6nKSiRaxvISiUgMMBO4HEgErhWRxCKr3QzsVdXOeA/PetSV7wauUtXzgLHAnKBt/gbcCnRxryEVjdEYY0z4yhojOVVEJpW0UFX/XMq2vYF0Vd0EICLzgGHAuqB1hgEPuOn5wAwREVX9MmidtUADEakHtASaqupyt88XgZ8C/ymjHsYYY3xSViKJARrjjYmUVzsg+KmKGUCfktZR1VwR2Q+0wmuRFPg5sEJVj4pIO7ef4H22K+7gIjIeGA/Qpk0bAgVX/FZjWVlZNaIeBaw+/uh77Bi7duxgQ5ixREt9Kku01ufrA18DsGr1KhrtaFSubaOlTmUlkp2qOq1KIimGiHTF6+4aXN5tVXUWMAugZ8+emlwDrvANBALUhHoUsPr4JDaWdm3b0i7MWKKmPpUkWuvTaHsj+BLOP+98ks9KLte20VKnssZIwhnI3g60D5qPd2XFriMidYFmQKabjwcWAGNUdWPQ+vFl7NMYY0wVKiuRDAxj32lAFxHpKCKJtkzFAAAX10lEQVRxwChgYZF1FuINpgMMBz5QVRWR5sDbwGRV/aRgZVXdCRwQkR+7s7XGAG+GEaMxxpgwlZpIVHVPRXesqrnARCAFWA+8pqprRWSaiBTcWuU5oJWIpAOTgIJThCcCnYEpIrLSvQoeGXYb8CyQDmzEBtqNMSaiQr1FSoWo6iJgUZGyKUHT2Xh3Fi663XRgegn7/Bw4t3IjNcYYU1HV71FcxhhjooolEmOMMWGxRGKMMSYslkiMMcaExRKJMcaYsFgiMcYYExZLJMYYY8JiicQYY0xYLJEYY4wJiyUSY4wxYbFEYowxJiyWSIwxxoTFEokxxpiwWCIxxhgTFkskxhhjwmKJxBhjTFgskRhjjAmLJRJjjDFhsURiTE2TkwMrVkBqaqQjMeXw2trXSN1WPT8zSyTGVHdZWfDWW/CrX0H79rBvH6SlwcCBlkyi3OFjh5kamArAS6teYuCLA6tlMqkb6QCMMeWkCqtWQUqK9/r4Yzh2DBo08BKJiLdOTg4EApCUFOmITTHW/rCWkfNHsnbXWgQhn3xy8nIIbA6Q1L56fWbWIjGmOti9G155BcaOhbZtoVs3uPtu2LUL7rgD3nsP9uyB55+H+vUhJgbi4iA5OdKRmyJUldlfzqbXP3qx6/AunrjsCerXrU+MxBAXE0dyQnKkQyw3X1skIjIEeAqIAZ5V1UeKLK8HvAj0ADKBkaq6WURaAfOBXsDzqjoxaJtrgXsBBXYA16vqbj/rYUyVO3YMli8vbHV88YXXymjZEgYNgssug8GDoV27E7dLSoLFi72WSHKytUaizMGjB5nw9gTmrp7LgI4DmHv1XE5rfBp92vUhsDlAckJytWuNgI+JRERigJnAICADSBORhaq6Lmi1m4G9qtpZREYBjwIjgWzgfuBc9yrYZ128xJSoqrtF5I/AROABv+phTJXZvLkwcSxeDAcOQJ068OMfw4MPesmjRw+vtVGapCRLIFFo5XcrGfHPEWzcu5GH+j/EPRfdQ0wd77NMap9ULRNIAT9bJL2BdFXdBCAi84BhQHAiGUZhEpgPzBARUdVDwFIR6Vxkn+JejUQkE2gKpPtXBWN8dOiQ13IoSB7//a9XfsYZMHKklzgGDoTmzSMapgmPqvLXtL8y6d1JtG7YmiVjl9CvQ79Ih1WpRFX92bHIcGCIqt7i5m8A+hTpplrj1slw8xvdOrvd/I1AzyLbDAdmA4eADUB/Vc0r5vjjgfEAbdq06TFv3jxf6lmVsrKyaNy4caTDqDS1rj6qNNq0iZZpabRMS6PZ6tXUOXaMvHr12HfBBezt1Ys9vXpx+IwzvAHzCKt1n48fx8zN4o/f/JGPd39Mn5Z9uOfse2gW26zy9u9znfr37/+FqvYsc0VV9eUFDMcbFymYvwGYUWSdNUB80PxGoHXQ/I3B2wCxwGKgE17LZAbw+7Ji6dGjh9YES5YsiXQIlapW1Gf3btVXXlG98UbV009X9UY6VM89V/U3v1F9913VI0eqPNZQ1IrPx0fLty3XhCcTtO60uvr4J49rXn5epR/D7zoBn2sI3/d+dm1tB9oHzce7suLWyXDjH83wBt1L0g1AVTcCiMhrwOTKCtiYsOXmnjhI/vnnXupo0eLEQfL4+EhHanySr/k8kfoEkxdPpl2Tdiwdt5Q+8X0iHZav/EwkaUAXEemIlzBGAaOLrLMQGAuk4rVgPnBZsCTbgUQROUVVd+EN5K+v9MiNKY8tWyAlha4vveRd37F/vzdI3qcPTJ3qJY9evcoeJDfV3u7Duxn7r7Es2rCIq8+5mmevepYWDVpEOizf+ZZIVDVXRCYCKXin/85W1bUiMg2vubQQeA6YIyLpwB68ZAOAiGzGG0yPE5GfAoNVdZ2IPAh8JCLHgC143V/GVJ3Dh+HDD70WxzvvwDffANDk1FPhmmsKB8lb1PwvEFPooy0fMfr10ew6vIuZV8xkQs8JSBSMdVUFX68jUdVFwKIiZVOCprOBa0rYNqGE8meAZyovSmPKoApr1px4JfnRo96Ff5dcAv/zP3DZZSz//nuS+/ePdLSmiuXl5/Hw0oeZGphKpxadWH7zci48/cJIh1Wl7BYpxhQnMxPef78weezY4ZUnJsJtt3mtjn79vNuSFPjhh8jEaiLmu6zvuP6N61n87WJGnzeaZ658hib1mkQ6rCpnicQY8AbJP/usMHF89pnXEmne/MRB8vbty96XqRXe2/ge1y+4noNHD/Lc0OcY121crenKKsoSiam9tm498Uryffu8QfLevWHKlMJB8rr2Z2IK5ebnMnXJVB5e+jCJpyTywZgP6Hpq10iHFVH2F2JqjyNHCgfJU1JgvTvhr107uPpqGDLEGyRv2TKycZqotW3/Nka/MZqlW5dyy4W38NTlT9EwtmGkw4o4SySm5lKFdesKz6766CNvkLxePW+Q/JZbvFZHYmJUXEluotu/v/k3N755Izl5Ocy9ei6jzyt6NUPtZYnE1Cx79hQOkr/7LmRkeOXnnAMTJhQOkje0/yJNaHLycpj8/mSeWP4EF552Ia8Of5UurbpEOqyoYonEVG+5ud7TAIMHyfPzoVmzEwfJzzgj0pGaamjT3k2Mmj+KtB1p/Kr3r3hs0GPUq1sv0mFFHUskpvrJyCjsrnr/fW+QXMQbJP/9773k0bu3DZKbsMxfN5+bF95MHanD6yNe5+pzro50SFHL/tJM9DtyxBvfKGh1rHNPImjbFn72My9xXHoptGoV2ThNjZCdm82klEn87fO/0addH+YNn0dC84RIhxXVLJGY6KPqnVFVkDg+/BCys71B8n794KabvOTRtasNkptK9c3ubxgxfwSrvl/Fb/v+lv8d8L/ExsRGOqyoZ4nERIe9e0+8krxgkPzss4/fgoRLLrFBcuObOV/NYcLbE2gQ24BFoxdxeZfLIx1StWGJxERGXh5N160rvK7j008LB8kHDoT77/eSR4cOkY7U1HCHcg4x8T8TeX7l8/Tr0I+Xr36Zdk3bRTqsasUSiak627cXtjjee4/ue/d6XVO9esF993mJo08fGyQ3VWb196sZOX8kX+/+min9pnD/JfdTt479/pWXvWPGP9nZJw6Sr13rlZ9+Ogwbxrr27Um8/XZo3TqycZpaR1V5dsWz3P7O7TSv35z3x7zPgI4DIh1WtWWJxFQeVfj66xMHyY8cgbg4uPhiuPFGr9Vx7rkgwg+BAImWREwVO3D0AP/z1v8wb808Bp05iDk/m0Obxm0iHVa1ZonEhGffPu+GhwXJY+tWr/xHP4Jbby0cJG/UKLJxGgN8seMLRs4fyeZ9m3l44MP87ie/o47UiXRY1Z4lElM+eXnec8gLEsenn3plTZt6g+T33uslj4SESEdqzHGqyusZr/P3j//OaY1P48MbP+QnZ/wk0mHVGJZITNl27DhhkJw9e7xB8h494J57CgfJY+18exN99hzZw01v3sSbG9/kqrOu4v+G/R+tGtrFq5XJEok5WXY2LF1aeBuSNWu88tNOg6uu8hLHoEE2SG6iXuq2VEa9PoqdB3fyy06/5C+j/lJrHz7lJ0skxhsk/+abwlZHIFA4SH7RRfDoo17yOP98u5LcVAv5ms9jnzzGfR/cR4fmHVh28zKy/ptlScQnlkhqq/37Txwk37LFK+/SpfA5HcnJNkhuqp0fDv3AmAVjSNmYwoiuI5j1/2bRrH4zAv8NRDq0GssSSW2Rnw9ffFHYXbV8uTdI3qSJN0g+ebKXPDp2jHSkxlRYYHOA0a+PZs+RPTxz5TOM7zHeWiFVwNdEIiJDgKeAGOBZVX2kyPJ6wItADyATGKmqm0WkFTAf6AU8r6oTg7aJA2YAyUA+cJ+qvu5nPaqtnTtPHCTPzPTKe/SAu+/2EkdSkg2Sm2ovLz+P6R9NZ9pH0zir1Vm8c/07nN/m/EiHVWv4lkhEJAaYCQwCMoA0EVmoquuCVrsZ2KuqnUVkFPAoMBLIBu4HznWvYPcBP6jqWSJSB7AHbBc4erRwkDwlBVat8srbtIErrywcJD/llMjGaUwl2nFwB9e9cR2BzQHGXjCWGVfMoHFc40iHVav42SLpDaSr6iYAEZkHDAOCE8kw4AE3PR+YISKiqoeApSLSuZj93gScDaCq+cBuf8KvBlRhw4bC7qpAAA4f9loYF10EjzxSOEhexy66MjXPO+nvcMOCGzh87DDPD3uesd3GRjqkWklU1Z8diwwHhqjqLW7+BqBPkW6qNW6dDDe/0a2z283fCPQs2EZEmgOrgX/idW1tBCaq6vfFHH88MB6gTZs2PebNm+dLPatSVlYWzURosWIFLdPSaJGWRoPvvgPgcLt27O3Viz29e7OvWzfyGjSIcLRly8rKonHjmvOfo9Wn6uTm5zJ782xe2fYKZzY6k6mJUzmjYemPU47m+lSU33Xq37//F6ras6z1qttge10gHlimqpNEZBLwOHBD0RVVdRYwC6Bnz56anJxclXFWnvx8WLECUlLY99prNF+71hskb9zYGyS/7DK47DIannkmDYHqdPPrQCBAtf1cimH1qRpb9m3h2tevJTUjlV/0+AV/vuzPNIgt+x+naK1POKKlTn4mku1A+6D5eFdW3DoZIlIXaIY36F6STOAw8Iab/yfeOEvNsnMnvPtu4SD5bq/3LqZLF/jd7woHyePiIhyoMVXrX1//i3FvjiNf83l1+KuM6Doi0iEZ/E0kaUAXEemIlzBGAaOLrLMQGAukAsOBD7SUvjZVVRH5N1631gfAQE4cc6mejh6FTz4pHCT/6iuv/NRTYcgQ7zVoEF+sWxcV/30YU9WO5h7ld+/9jqc/e5oep/fg1eGv0qllp0iHZRzfEomq5orIRCAF7/Tf2aq6VkSmAZ+r6kLgOWCOiKQDe/CSDQAishloCsSJyE+Bwe6Mr7vdNk8Cu4BxftXBN6qQnl6YOJYsgUOHvAc6XXQRPPyw1+q44IITB8nXVf+caUx5pe9JZ+T8kazYuYI7+9zJI5c+Qr269SIdlgni6xiJqi4CFhUpmxI0nQ1cU8K2CSWUbwH6VV6UVeTAAfjgg8Lk8e23XnmnTjB2rJc4+vf3LhA0xgAwb808xv97PHXr1OXNUW8y9EdDIx2SKUZ1G2yvPvLz4csvCxPHsmWQm+vdcmTAALjrLi95dLLmuTFFHT52mDvfuZN/rPgHfdv35ZWfv8IZzUo/K8tEjiWSyvT994WD5O++C7t2eeUXXliYOPr2tUFyY0qxbtc6Rs4fyZof1nDPRffwYPKDxMbY3ReimSWScOTknDhIvnKlV37KKTB4sJc4Bg/2riw3xpRKVXnhqxf45aJf0jiuMSnXpzC40+BIh2VCYImkvIoOkmdleYPkffvCH/7gJY9u3exKcmPKISsni9vevo05q+YwoOMAXvrZS5ze5PRIh2VCZImkNKmpXsJo2NC7zfo778CmTd6yM8+EG24oHCRv2jSysRpTDaVuS+XlNS/z5tdvsv3gdqYlT+Pei+8lpk5MpEMz5WCJpCTLlsHFF3uD5gD168Oll8Kvf+1d19G5uNuAGWNClbotleQXksnJywFg5uUzua33bRGOylSEJZKSfPihd70HeN1U994L998f2ZiMqUECmwPk5ucCECMx7D+6P8IRmYqyjvySJCd7rZCYGKhXz2uNGGMqTXJCMvVi6hEjMcTFxJGckBzpkEwFWYukJElJ3qNoAwEvqSQlRToiY2qUpPZJLB6zmMDmAMkJySS1t7+x6soSSWmSkiyBGOOjpPZJlkBqAOvaMsYYExZLJMYYY8JiicQYY0xYLJEYY4wJiyUSY4wxYbFEYowxJixSypNtawwR2QVsiXQclaA1sDvSQVQiq090s/pEPz/rtBtAVYeUtWKtSCQ1hYh8rqo9Ix1HZbH6RDerT/SLljpZ15YxxpiwWCIxxhgTFksk1cusSAdQyaw+0c3qE/2iok42RmKMMSYs1iIxxhgTFkskxhhjwmKJJAqIyBAR+UZE0kVkcjHLzxCRJSLypYisEpErXHmsiLwgIqtFZL2I3FP10Z8shPp0EJHFri4BEYkPWjZWRDa419iqjbxkFa2TiHQTkVQRWeuWjaz66E8WzmfkljcVkQwRmVF1UZcszN+5M0TkXfc3tE5EEqoy9uKEWZ8/ut+39SLytIiI7wGrqr0i+AJigI3AmUAc8BWQWGSdWcAEN50IbHbTo4F5brohsBlIqAb1+Scw1k0PAOa46ZbAJvezhZtuUU0+o5LqdBbQxU23BXYCzatrfYKWPwW8DMyozp+Pmw8Ag9x0Y6Bhda0P0Bf4xO0jBkgFkv2O2VokkdcbSFfVTaqaA8wDhhVZR4GmbroZsCOovJGI1AUaADnAAf9DLlUo9UkEPnDTS4KWXwa8p6p7VHUv8B5Q5lW1VaDCdVLV/6rqBje9A/gBOKVKoi5ZOJ8RItIDaAO8WwWxhqLC9RGRRKCuqr4HoKpZqnq4asIuUTifjwL18RJQPSAW+N7vgC2RRF47YFvQfIYrC/YAcL2IZACLgF+58vnAIbz/crcCj6vqHl+jLVso9fkKuNpN/wxoIiKtQtw2EsKp03Ei0hvvD3yjT3GGqsL1EZE6wJ+Au3yPMnThfD5nAftE5A3XdfyYiMT4HnHpKlwfVU3FSyw73StFVdf7HK8lkmriWuB5VY0HrgDmuD/o3kAeXpdJR+A3InJm5MIM2V3AJSLyJXAJsB2vHtVZqXUSkdOBOcA4Vc2PTIjlUlJ9bgMWqWpGJIOrgJLqUxe42C3vhdeddGOEYiyPYusjIp2Bc4B4vOQzQEQu9jsYe2Z75G0H2gfNx7uyYDfjunhUNVVE6uPdrG008I6qHgN+EJFPgJ54YwuRUmZ9XBfP1QAi0hj4uaruE5HtQHKRbQN+BhuiCtfJzTcF3gbuU9XlVRJx6cL5jJKAi0XkNrzxhDgRyVLVkwaEq1A49ckAVqrqJrfsX8CPgeeqIvAShFOfW4Hlqprllv0HSAI+9jNga5FEXhrQRUQ6ikgcMApYWGSdrcBAABE5B68PdJcrH+DKG+H9AXxdRXGXpMz6iEhr16ICuAeY7aZTgMEi0kJEWgCDXVmkVbhObv0FwIuqOr8KYy5Nheujqtep6hmqmoD3X/GLEU4iEN7vXBrQXEQKxq0GAOuqIObShFOfrXgtlboiEovXWvG9ayuiZ1vY6/gZGFcA/8XrO7/PlU0DhrrpRLwzMb4CVgKDXXljvLM31uL98v820nUJsT7DgQ1unWeBekHb3gSku9e4SNcl3DoB1wPH3OdW8OpWXetTZB83EgVnbVXC79wgYBWwGngeiKuu9cE7U+vveMljHfDnqojXbpFijDEmLNa1ZYwxJiyWSIwxxoTFEokxxpiwWCIxxhgTFkskxhhjwmKJxJgQichPRURF5OxIx2JMNLFEYkzorgWWup++iIL7PBlTbpZIjAmBuw3FRXi3qxkVVH63eM+D+UpEHnFlnUXkfVe2QkQ6iUiyiLwVtN0MEbnRTW8WkUdFZAVwjYjcKiJpbvvXRaShW6+NiCxw5V+JSF8RmSYidwbt939F5I4qeVOMcexeW8aEZhjefc3+KyKZ7lbqp7ryPqp6WERaunXnAo+o6gJ3X7Q6nHjvpOJkqmp3AHcX13+46el4yesvwNPAh6r6M9dyaYz3SIE3gCfdLTNG4d3M05gqY4nEmNBci/cwJ/CeD3EtIMD/qXt+haruEZEmQDtVXeDKsgFCeEjdq0HT57oE0hwvWRTcb2wAMMbtNw/YD+x3ie1CvGeEfKmqmeFU1JjyskRiTBlcS2MAcJ6IKN79jBTvPmehyuXEruT6RZYfCpp+Hvipqn7lur+Sy9j3s3j3vTqNwpv3GVNlbIzEmLINx3uUaQdVTVDV9sC3eC2CcUFjGC1V9SCQISI/dWX13PItQKKbb467m3MJmgA73d1brwsqXwxMcPuNEZFmrnwB3mMGehEdd0s2tYwlEmPKdi3el3Ww14HT8W7v/bmIrKTwqYE3ALeLyCpgGXCaqm4DXgPWuJ9flnK8+4FP8e74HPxYgDuA/iKyGvgC767QqPc41iXAa67Ly5gqZXf/Naaac4PsK4Br1D0f3piqZC0SY6oxEUnEe3bLYksiJlKsRWKMMSYs1iIxxhgTFkskxhhjwmKJxBhjTFgskRhjjAmLJRJjjDFh+f8gl0eyaUIXhQAAAABJRU5ErkJggg==\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "#plot\n",
-    "plt.title('Iris time by validation accuracy')\n",
-    "plt.xlabel('Accuracy')\n",
-    "plt.ylabel('Time (min)')\n",
-    "plt.grid(True)\n",
-    "plt.plot(train_accuracy, time, 'g.-', label='Train')\n",
-    "plt.plot(test_accuracy, time, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pred_prob\"></a>\n",
-    "# 2. Predict probabilities\n",
-    "Predict with probabilities for each class:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 30,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "30 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>prob_Iris-setosa</th>\n",
-       "        <th>prob_Iris-versicolor</th>\n",
-       "        <th>prob_Iris-virginica</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>0.89789814</td>\n",
-       "        <td>0.0880069</td>\n",
-       "        <td>0.014094983</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>0.90666765</td>\n",
-       "        <td>0.081442654</td>\n",
-       "        <td>0.011889744</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>0.8795763</td>\n",
-       "        <td>0.1017618</td>\n",
-       "        <td>0.018661851</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>14</td>\n",
-       "        <td>0.8874597</td>\n",
-       "        <td>0.095630445</td>\n",
-       "        <td>0.016909808</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>18</td>\n",
-       "        <td>0.9102227</td>\n",
-       "        <td>0.078691445</td>\n",
-       "        <td>0.011085836</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>0.9124432</td>\n",
-       "        <td>0.077006854</td>\n",
-       "        <td>0.010549883</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>0.90255314</td>\n",
-       "        <td>0.08451119</td>\n",
-       "        <td>0.012935703</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>48</td>\n",
-       "        <td>0.89486533</td>\n",
-       "        <td>0.09027297</td>\n",
-       "        <td>0.014861753</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>54</td>\n",
-       "        <td>0.026524143</td>\n",
-       "        <td>0.51825184</td>\n",
-       "        <td>0.45522407</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>56</td>\n",
-       "        <td>0.020466398</td>\n",
-       "        <td>0.538594</td>\n",
-       "        <td>0.4409396</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>0.009856132</td>\n",
-       "        <td>0.38160574</td>\n",
-       "        <td>0.60853815</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80</td>\n",
-       "        <td>0.088389054</td>\n",
-       "        <td>0.68402624</td>\n",
-       "        <td>0.22758465</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>83</td>\n",
-       "        <td>0.04700892</td>\n",
-       "        <td>0.6974011</td>\n",
-       "        <td>0.25559002</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>85</td>\n",
-       "        <td>0.02379873</td>\n",
-       "        <td>0.53655416</td>\n",
-       "        <td>0.4396471</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>88</td>\n",
-       "        <td>0.014446292</td>\n",
-       "        <td>0.48625696</td>\n",
-       "        <td>0.4992967</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>89</td>\n",
-       "        <td>0.045492876</td>\n",
-       "        <td>0.6929876</td>\n",
-       "        <td>0.26151955</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90</td>\n",
-       "        <td>0.032893542</td>\n",
-       "        <td>0.57819253</td>\n",
-       "        <td>0.38891393</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>94</td>\n",
-       "        <td>0.078232706</td>\n",
-       "        <td>0.6571468</td>\n",
-       "        <td>0.26462048</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>0.036127776</td>\n",
-       "        <td>0.6550248</td>\n",
-       "        <td>0.30884746</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>103</td>\n",
-       "        <td>0.0017510698</td>\n",
-       "        <td>0.222155</td>\n",
-       "        <td>0.7760939</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>105</td>\n",
-       "        <td>0.001789655</td>\n",
-       "        <td>0.1864191</td>\n",
-       "        <td>0.81179124</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>111</td>\n",
-       "        <td>0.010464086</td>\n",
-       "        <td>0.46730253</td>\n",
-       "        <td>0.52223337</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>0.0034266405</td>\n",
-       "        <td>0.21947922</td>\n",
-       "        <td>0.7770942</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>128</td>\n",
-       "        <td>0.011816905</td>\n",
-       "        <td>0.4490503</td>\n",
-       "        <td>0.5391328</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>131</td>\n",
-       "        <td>0.0009711725</td>\n",
-       "        <td>0.17797765</td>\n",
-       "        <td>0.82105124</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>0.0024771853</td>\n",
-       "        <td>0.395437</td>\n",
-       "        <td>0.6020858</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>133</td>\n",
-       "        <td>0.0019595844</td>\n",
-       "        <td>0.18066718</td>\n",
-       "        <td>0.8173732</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>136</td>\n",
-       "        <td>0.0012088934</td>\n",
-       "        <td>0.20632832</td>\n",
-       "        <td>0.7924628</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>138</td>\n",
-       "        <td>0.0045178244</td>\n",
-       "        <td>0.3225387</td>\n",
-       "        <td>0.6729434</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>149</td>\n",
-       "        <td>0.006746102</td>\n",
-       "        <td>0.3544818</td>\n",
-       "        <td>0.6387721</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(7, 0.89789814, 0.0880069, 0.014094983),\n",
-       " (8, 0.90666765, 0.081442654, 0.011889744),\n",
-       " (9, 0.8795763, 0.1017618, 0.018661851),\n",
-       " (14, 0.8874597, 0.095630445, 0.016909808),\n",
-       " (18, 0.9102227, 0.078691445, 0.011085836),\n",
-       " (28, 0.9124432, 0.077006854, 0.010549883),\n",
-       " (44, 0.90255314, 0.08451119, 0.012935703),\n",
-       " (48, 0.89486533, 0.09027297, 0.014861753),\n",
-       " (54, 0.026524143, 0.51825184, 0.45522407),\n",
-       " (56, 0.020466398, 0.538594, 0.4409396),\n",
-       " (69, 0.009856132, 0.38160574, 0.60853815),\n",
-       " (80, 0.088389054, 0.68402624, 0.22758465),\n",
-       " (83, 0.04700892, 0.6974011, 0.25559002),\n",
-       " (85, 0.02379873, 0.53655416, 0.4396471),\n",
-       " (88, 0.014446292, 0.48625696, 0.4992967),\n",
-       " (89, 0.045492876, 0.6929876, 0.26151955),\n",
-       " (90, 0.032893542, 0.57819253, 0.38891393),\n",
-       " (94, 0.078232706, 0.6571468, 0.26462048),\n",
-       " (97, 0.036127776, 0.6550248, 0.30884746),\n",
-       " (103, 0.0017510698, 0.222155, 0.7760939),\n",
-       " (105, 0.001789655, 0.1864191, 0.81179124),\n",
-       " (111, 0.010464086, 0.46730253, 0.52223337),\n",
-       " (120, 0.0034266405, 0.21947922, 0.7770942),\n",
-       " (128, 0.011816905, 0.4490503, 0.5391328),\n",
-       " (131, 0.0009711725, 0.17797765, 0.82105124),\n",
-       " (132, 0.0024771853, 0.395437, 0.6020858),\n",
-       " (133, 0.0019595844, 0.18066718, 0.8173732),\n",
-       " (136, 0.0012088934, 0.20632832, 0.7924628),\n",
-       " (138, 0.0045178244, 0.3225387, 0.6729434),\n",
-       " (149, 0.006746102, 0.3544818, 0.6387721)]"
-      ]
-     },
-     "execution_count": 30,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_predict;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict('iris_model',      -- model\n",
-    "                                   'iris_test',       -- test_table\n",
-    "                                   'id',              -- id column\n",
-    "                                   'attributes',      -- independent var\n",
-    "                                   'iris_predict',    -- output table\n",
-    "                                   'prob'             -- response type\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_predict ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"warm_start\"></a>\n",
-    "# 3. Warm start\n",
-    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 31,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 31,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
-    "                               'iris_model',          -- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                1,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
-    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
-    "                                10,                   -- num_iterations\n",
-    "                                FALSE,                -- use GPUs\n",
-    "                                'iris_test_packed',   -- validation dataset\n",
-    "                                2,                    -- metrics compute frequency\n",
-    "                                TRUE,                 -- warm start\n",
-    "                               'Sophie L.',           -- name \n",
-    "                               'Simple MLP for iris dataset'  -- description\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "In the summary table and plots below note that the loss and accuracy values pick up from where the previous run left off:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 32,
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_model</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>1</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
-       "        <td> batch_size=5, epochs=3 </td>\n",
-       "        <td>10</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>2</td>\n",
-       "        <td>Sophie L.</td>\n",
-       "        <td>Simple MLP for iris dataset</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>2019-12-18 18:09:27.128581</td>\n",
-       "        <td>2019-12-18 18:09:28.838569</td>\n",
-       "        <td>[0.982600927352905, 1.11963605880737, 1.24473285675049, 1.41093587875366, 1.70990204811096]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.983333349228</td>\n",
-       "        <td>0.198354303837</td>\n",
-       "        <td>[0.966666638851166, 0.983333349227905, 0.975000023841858, 0.983333349227905, 0.983333349227905]</td>\n",
-       "        <td>[0.27795821428299, 0.251547634601593, 0.231610581278801, 0.213408783078194, 0.198354303836823]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.255444854498</td>\n",
-       "        <td>[0.933333337306976, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.333956837654114, 0.309911340475082, 0.291009396314621, 0.271284729242325, 0.25544485449791]</td>\n",
-       "        <td>[2, 4, 6, 8, 10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_model', u'class_text', u'attributes', u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2019, 12, 18, 18, 9, 27, 128581), datetime.datetime(2019, 12, 18, 18, 9, 28, 838569), [0.982600927352905, 1.11963605880737, 1.24473285675049, 1.41093587875366, 1.70990204811096], u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [u'accuracy'], 0.983333349228, 0.198354303837, [0.966666638851166, 0.983333349227905, 0.975000023841858, 0.983333349227905, 0.983333349227905], [0.27795821428299, 0.251547634601593, 0.231610581278801, 0.213408783078194, 0.198354303836823], 0.966666638851, 0.255444854498, [0.933333337306976, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.966666638851166], [0.333956837654114, 0.309911340475082, 0.291009396314621, 0.271284729242325, 0.25544485449791], [2, 4, 6, 8, 10])]"
-      ]
-     },
-     "execution_count": 32,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 33,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f4c0110>"
-      ]
-     },
-     "execution_count": 33,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "import pandas as pd\n",
-    "import numpy as np\n",
-    "import sys\n",
-    "import os\n",
-    "from matplotlib import pyplot as plt\n",
-    "\n",
-    "# get accuracy and iteration number\n",
-    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
-    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
-    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
-    "\n",
-    "# get number of points\n",
-    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
-    "num_points = num_points_proxy[0]\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "iters = np.array(iters_proxy).reshape(num_points)\n",
-    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
-    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation accuracy by iteration - warm start')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Accuracy')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 34,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f560f10>"
-      ]
-     },
-     "execution_count": 34,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# get loss\n",
-    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
-    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
-    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation loss by iteration - warm start')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Loss')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"transfer_learn\"></a>\n",
-    "# Transfer learning\n",
-    "\n",
-    "<a id=\"load2\"></a>\n",
-    "# 1. Define and load model architecture with some layers frozen\n",
-    "Here we want to start with initial weights from a pre-trained model rather than training from scratch.  We also want to use a model architecture with the earlier feature layer(s) frozen to save on training time.  The example below is somewhat contrived but gives you the idea of the steps.\n",
-    "\n",
-    "First define a model architecture with the 1st hidden layer frozen:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 35,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_4 (Dense)              (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_5 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_6 (Dense)              (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 193\n",
-      "Trainable params: 143\n",
-      "Non-trainable params: 50\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model_transfer = Sequential()\n",
-    "model_transfer.add(Dense(10, activation='relu', input_shape=(4,), trainable=False))\n",
-    "model_transfer.add(Dense(10, activation='relu'))\n",
-    "model_transfer.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model_transfer.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 36,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 36,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model_transfer.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load transfer model into model architecture table"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 37,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>model_arch</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>Sophie</td>\n",
-       "        <td>A simple model</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': False, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>Maria</td>\n",
-       "        <td>A transfer model</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model'),\n",
-       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': False, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Maria', u'A transfer model')]"
-      ]
-     },
-     "execution_count": 37,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,                      \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Maria',               -- Name\n",
-    "                               'A transfer model'     -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"train2\"></a>\n",
-    "# 2. Train transfer model\n",
-    "\n",
-    "Fetch the weights from a previous MADlib run.  (Normally these would be downloaded from a source that trained the same model architecture on a related dataset.)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 38,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 38,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "UPDATE model_arch_library \n",
-    "SET model_weights = iris_model.model_weights \n",
-    "FROM iris_model \n",
-    "WHERE model_arch_library.model_id = 2;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Now train the model using the transfer model and the pre-trained weights:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 39,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 39,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
-    "                               'iris_model',          -- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                2,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
-    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
-    "                                10,                   -- num_iterations\n",
-    "                                FALSE,                -- use GPUs\n",
-    "                                'iris_test_packed',   -- validation dataset\n",
-    "                                2                     -- metrics compute frequency\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 40,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_model</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>2</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
-       "        <td> batch_size=5, epochs=3 </td>\n",
-       "        <td>10</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>2</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>2019-12-18 18:09:32.439417</td>\n",
-       "        <td>2019-12-18 18:09:34.068824</td>\n",
-       "        <td>[0.853152990341187, 0.990938901901245, 1.11821985244751, 1.24195981025696, 1.62932586669922]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.983333349228</td>\n",
-       "        <td>0.155750438571</td>\n",
-       "        <td>[0.983333349227905, 0.983333349227905, 0.975000023841858, 0.975000023841858, 0.983333349227905]</td>\n",
-       "        <td>[0.187174424529076, 0.17763115465641, 0.169175431132317, 0.161857321858406, 0.155750438570976]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.211615949869</td>\n",
-       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.244408145546913, 0.234545931220055, 0.225818797945976, 0.218266576528549, 0.211615949869156]</td>\n",
-       "        <td>[2, 4, 6, 8, 10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_model', u'class_text', u'attributes', u'model_arch_library', 2, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', 2, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2019, 12, 18, 18, 9, 32, 439417), datetime.datetime(2019, 12, 18, 18, 9, 34, 68824), [0.853152990341187, 0.990938901901245, 1.11821985244751, 1.24195981025696, 1.62932586669922], u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [u'accuracy'], 0.983333349228, 0.155750438571, [0.983333349227905, 0.983333349227905, 0.975000023841858, 0.975000023841858, 0.983333349227905], [0.187174424529076, 0.17763115465641, 0.169175431132317, 0.161857321858406, 0.155750438570976], 0.966666638851, 0.211615949869, [0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.244408145546913, 0.234545931220055, 0.225818797945976, 0.218266576528549, 0.211615949869156], [2, 4, 6, 8, 10])]"
-      ]
-     },
-     "execution_count": 40,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Note loss picks up from where the last training left off:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 41,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f85fdd0>"
-      ]
-     },
-     "execution_count": 41,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "import pandas as pd\n",
-    "import numpy as np\n",
-    "import sys\n",
-    "import os\n",
-    "from matplotlib import pyplot as plt\n",
-    "\n",
-    "# get accuracy and iteration number\n",
-    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
-    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
-    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
-    "\n",
-    "# get number of points\n",
-    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
-    "num_points = num_points_proxy[0]\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "iters = np.array(iters_proxy).reshape(num_points)\n",
-    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
-    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation accuracy by iteration - transfer learn')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Accuracy')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 42,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12f8d5990>"
-      ]
-     },
-     "execution_count": 42,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# get loss\n",
-    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
-    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
-    "\n",
-    "# reshape to np arrays\n",
-    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
-    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
-    "\n",
-    "#plot\n",
-    "plt.title('Iris validation loss by iteration - transfer learn')\n",
-    "plt.xlabel('Iteration number')\n",
-    "plt.ylabel('Loss')\n",
-    "plt.grid(True)\n",
-    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
-    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
-    "plt.legend()"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.10"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-inference-v1.ipynb b/community-artifacts/Deep-learning/MADlib-Keras-cifar10-inference-v1.ipynb
deleted file mode 100644
index c5de290..0000000
--- a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-inference-v1.ipynb
+++ /dev/null
@@ -1,601 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Inference for CIFAR-10 dataset using predict BYOM\n",
-    "The predict BYOM function allows you to do inference using models that have not been trained with MADlib, but rather imported or created elsewhere. It was added in MADlib 1.17.\n",
-    "\n",
-    "In this workbook we train a model in Python using\n",
-    "https://keras.io/examples/cifar10_cnn/\n",
-    "and run inference on the validation set.\n",
-    "\n",
-    "## Table of contents\n",
-    "\n",
-    "<a href=\"#setup\">1. Setup</a>\n",
-    "\n",
-    "<a href=\"#train_model\">2. Train model in Python</a>\n",
-    "\n",
-    "<a href=\"#load_model\">3. Load model into table</a>\n",
-    "\n",
-    "<a href=\"#load_images\">4. Get validation data set and load into table</a>\n",
-    "\n",
-    "<a href=\"#inference\">5. Inference</a>"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"setup\"></a>\n",
-    "# 1. Setup"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "        \n",
-    "# PostgreSQL local\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"train_model\"></a>\n",
-    "# 2. Train model in Python\n",
-    "\n",
-    "Train a model in Python using https://keras.io/examples/cifar10_cnn/"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from __future__ import print_function\n",
-    "import keras\n",
-    "from keras.datasets import cifar10\n",
-    "from keras.preprocessing.image import ImageDataGenerator\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense, Dropout, Activation, Flatten\n",
-    "from keras.layers import Conv2D, MaxPooling2D\n",
-    "import os\n",
-    "\n",
-    "batch_size = 32\n",
-    "num_classes = 10\n",
-    "epochs = 25\n",
-    "data_augmentation = True\n",
-    "num_predictions = 20\n",
-    "#save_dir = os.path.join(os.getcwd(), 'saved_models')\n",
-    "#model_name = 'keras_cifar10_trained_model.h5'\n",
-    "\n",
-    "# The data, split between train and test sets:\n",
-    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
-    "print('x_train shape:', x_train.shape)\n",
-    "print(x_train.shape[0], 'train samples')\n",
-    "print(x_test.shape[0], 'test samples')\n",
-    "\n",
-    "# Convert class vectors to binary class matrices.\n",
-    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
-    "y_test = keras.utils.to_categorical(y_test, num_classes)\n",
-    "\n",
-    "model = Sequential()\n",
-    "model.add(Conv2D(32, (3, 3), padding='same',\n",
-    "                 input_shape=x_train.shape[1:]))\n",
-    "model.add(Activation('relu'))\n",
-    "model.add(Conv2D(32, (3, 3)))\n",
-    "model.add(Activation('relu'))\n",
-    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
-    "model.add(Dropout(0.25))\n",
-    "\n",
-    "model.add(Conv2D(64, (3, 3), padding='same'))\n",
-    "model.add(Activation('relu'))\n",
-    "model.add(Conv2D(64, (3, 3)))\n",
-    "model.add(Activation('relu'))\n",
-    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
-    "model.add(Dropout(0.25))\n",
-    "\n",
-    "model.add(Flatten())\n",
-    "model.add(Dense(512))\n",
-    "model.add(Activation('relu'))\n",
-    "model.add(Dropout(0.5))\n",
-    "model.add(Dense(num_classes))\n",
-    "model.add(Activation('softmax'))\n",
-    "\n",
-    "# initiate RMSprop optimizer\n",
-    "opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)\n",
-    "\n",
-    "# Let's train the model using RMSprop\n",
-    "model.compile(loss='categorical_crossentropy',\n",
-    "              optimizer=opt,\n",
-    "              metrics=['accuracy'])\n",
-    "\n",
-    "x_train = x_train.astype('float32')\n",
-    "x_test = x_test.astype('float32')\n",
-    "x_train /= 255\n",
-    "x_test /= 255\n",
-    "\n",
-    "if not data_augmentation:\n",
-    "    print('Not using data augmentation.')\n",
-    "    model.fit(x_train, y_train,\n",
-    "              batch_size=batch_size,\n",
-    "              epochs=epochs,\n",
-    "              validation_data=(x_test, y_test),\n",
-    "              shuffle=True)\n",
-    "else:\n",
-    "    print('Using real-time data augmentation.')\n",
-    "    # This will do preprocessing and realtime data augmentation:\n",
-    "    datagen = ImageDataGenerator(\n",
-    "        featurewise_center=False,  # set input mean to 0 over the dataset\n",
-    "        samplewise_center=False,  # set each sample mean to 0\n",
-    "        featurewise_std_normalization=False,  # divide inputs by std of the dataset\n",
-    "        samplewise_std_normalization=False,  # divide each input by its std\n",
-    "        zca_whitening=False,  # apply ZCA whitening\n",
-    "        zca_epsilon=1e-06,  # epsilon for ZCA whitening\n",
-    "        rotation_range=0,  # randomly rotate images in the range (degrees, 0 to 180)\n",
-    "        # randomly shift images horizontally (fraction of total width)\n",
-    "        width_shift_range=0.1,\n",
-    "        # randomly shift images vertically (fraction of total height)\n",
-    "        height_shift_range=0.1,\n",
-    "        shear_range=0.,  # set range for random shear\n",
-    "        zoom_range=0.,  # set range for random zoom\n",
-    "        channel_shift_range=0.,  # set range for random channel shifts\n",
-    "        # set mode for filling points outside the input boundaries\n",
-    "        fill_mode='nearest',\n",
-    "        cval=0.,  # value used for fill_mode = \"constant\"\n",
-    "        horizontal_flip=True,  # randomly flip images\n",
-    "        vertical_flip=False,  # randomly flip images\n",
-    "        # set rescaling factor (applied before any other transformation)\n",
-    "        rescale=None,\n",
-    "        # set function that will be applied on each input\n",
-    "        preprocessing_function=None,\n",
-    "        # image data format, either \"channels_first\" or \"channels_last\"\n",
-    "        data_format=None,\n",
-    "        # fraction of images reserved for validation (strictly between 0 and 1)\n",
-    "        validation_split=0.0)\n",
-    "\n",
-    "    # Compute quantities required for feature-wise normalization\n",
-    "    # (std, mean, and principal components if ZCA whitening is applied).\n",
-    "    datagen.fit(x_train)\n",
-    "\n",
-    "    # Fit the model on the batches generated by datagen.flow().\n",
-    "    model.fit_generator(datagen.flow(x_train, y_train,\n",
-    "                                     batch_size=batch_size),\n",
-    "                        epochs=epochs,\n",
-    "                        validation_data=(x_test, y_test),\n",
-    "                        workers=4)\n",
-    "\n",
-    "# Save model and weights\n",
-    "#if not os.path.isdir(save_dir):\n",
-    "#    os.makedirs(save_dir)\n",
-    "#model_path = os.path.join(save_dir, model_name)\n",
-    "#model.save(model_path)\n",
-    "#print('Saved trained model at %s ' % model_path)\n",
-    "\n",
-    "# Score trained model.\n",
-    "scores = model.evaluate(x_test, y_test, verbose=1)\n",
-    "print('Test loss:', scores[0])\n",
-    "print('Test accuracy:', scores[1])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "model.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_model\"></a>\n",
-    "# 3.  Load model into table\n",
-    "\n",
-    "Load the model architecture and weights into the model architecture table"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import psycopg2 as p2\n",
-    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
-    "#conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
-    "cur = conn.cursor()\n",
-    "\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
-    "import numpy as np\n",
-    "\n",
-    "# get weights, flatten and serialize\n",
-    "weights = model.get_weights()\n",
-    "weights_flat = [w.flatten() for w in weights]\n",
-    "weights1d =  np.concatenate(weights_flat).ravel()\n",
-    "weights_bytea = p2.Binary(weights1d.tostring())\n",
-    "\n",
-    "query = \"SELECT madlib.load_keras_model('model_arch_library_cifar10', %s,%s,%s,%s)\"\n",
-    "cur.execute(query,[model.to_json(), weights_bytea, \"CIFAR10 model\", \"CNN model with weights trained on CIFAR10.\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check weights loaded OK\n",
-    "%sql SELECT model_id, name, description FROM model_arch_library_cifar10;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_images\"></a>\n",
-    "# 4. Get validation data set and load into table\n",
-    "\n",
-    "First set up image loader using the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import sys\n",
-    "import os\n",
-    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
-    "sys.path.append(madlib_site_dir)\n",
-    "\n",
-    "# Import image loader module\n",
-    "from madlib_image_loader import ImageLoader, DbCredentials\n",
-    "\n",
-    "# Specify database credentials, for connecting to db\n",
-    "#db_creds = DbCredentials(user='fmcquillan',\n",
-    "#                         host='localhost',\n",
-    "#                         port='5432',\n",
-    "#                         password='')\n",
-    "\n",
-    "# Specify database credentials, for connecting to db\n",
-    "db_creds = DbCredentials(user='gpadmin', \n",
-    "                         db_name='madlib',\n",
-    "                         host='localhost',\n",
-    "                         port='8000',\n",
-    "                         password='')\n",
-    "\n",
-    "# Initialize ImageLoader (increase num_workers to run faster)\n",
-    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Next load CIFAR-10 data from Keras consisting of 50,000 32x32 color training images, labeled over 10 categories, and 10,000 test images."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from keras.datasets import cifar10\n",
-    "\n",
-    "# Load dataset into np array\n",
-    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
-    "\n",
-    "%sql DROP TABLE IF EXISTS cifar_10_test_data;\n",
-    "\n",
-    "# Save images to temporary directories and load into database\n",
-    "#iloader.load_dataset_from_np(x_train, y_train, 'cifar_10_train_data', append=False)\n",
-    "iloader.load_dataset_from_np(x_test, y_test, 'cifar_10_test_data', append=False)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"inference\"></a>\n",
-    "# 5. Inference"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "10 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>estimated_dependent_var</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>8</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>6</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>4</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>8</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, u'3'),\n",
-       " (2, u'8'),\n",
-       " (3, u'1'),\n",
-       " (4, u'6'),\n",
-       " (5, u'5'),\n",
-       " (6, u'4'),\n",
-       " (7, u'5'),\n",
-       " (8, u'5'),\n",
-       " (9, u'0'),\n",
-       " (10, u'8')]"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS cifar10_predict_byom;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n",
-    "                                         1,                            -- model arch id\n",
-    "                                        'cifar_10_test_data',          -- test_table\n",
-    "                                        'id',                          -- id column\n",
-    "                                        'x',                           -- independent var\n",
-    "                                        'cifar10_predict_byom',        -- output table\n",
-    "                                        'response',                    -- prediction type\n",
-    "                                         FALSE,                        -- use gpus\n",
-    "                                         NULL,                         -- class values\n",
-    "                                         255.0                         -- normalizing const\n",
-    "                                   );\n",
-    "SELECT * FROM cifar10_predict_byom ORDER BY id LIMIT 10;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Number of missclassifications:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2551</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(2551L,)]"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT COUNT(*) FROM cifar10_predict_byom JOIN cifar_10_test_data USING (id)\n",
-    "WHERE cifar10_predict_byom.estimated_dependent_var != cifar_10_test_data.y;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Predict accuracy. From https://keras.io/examples/cifar10_cnn/ accuracy claim is 75% on validation set after 25 epochs.  From run above test accuracy: 0.7449.  MADlib predict BYOM accuracy matches:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>test_accuracy_percent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>74.49</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(Decimal('74.49'),)]"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT round(count(*)*100.0/10000.0, 2) as test_accuracy_percent from\n",
-    "    (select cifar_10_test_data.y as actual, cifar10_predict_byom.estimated_dependent_var as estimated\n",
-    "     from cifar10_predict_byom inner join cifar_10_test_data\n",
-    "     on cifar_10_test_data.id=cifar10_predict_byom.id) q\n",
-    "WHERE q.actual=q.estimated;"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.10"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-model-selection-MLP-v1.ipynb b/community-artifacts/Deep-learning/MADlib-Keras-model-selection-MLP-v1.ipynb
deleted file mode 100644
index cfe8c97..0000000
--- a/community-artifacts/Deep-learning/MADlib-Keras-model-selection-MLP-v1.ipynb
+++ /dev/null
@@ -1,5709 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Model Selection for Multilayer Perceptron Using Keras and MADlib\n",
-    "\n",
-    "E2E classification example using MADlib calling a Keras MLP for different hyperparameters and model architectures.\n",
-    "\n",
-    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
-    "\n",
-    "For more realistic examples please refer to the deep learning notebooks at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
-    "\n",
-    "## Table of contents\n",
-    "\n",
-    "<a href=\"#class\">Classification</a>\n",
-    "\n",
-    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
-    "\n",
-    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
-    "\n",
-    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
-    "\n",
-    "* <a href=\"#def_mst\">4. Define and load model selection tuples</a>\n",
-    "\n",
-    "* <a href=\"#train\">5. Train</a>\n",
-    "\n",
-    "* <a href=\"#eval\">6. Evaluate</a>\n",
-    "\n",
-    "* <a href=\"#pred\">7. Predict</a>\n",
-    "\n",
-    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
-    "\n",
-    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
-    "\n",
-    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
-    "\n",
-    "* <a href=\"#warm_start\">3. Warm start</a>"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "        \n",
-    "# PostgreSQL local\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"class\"></a>\n",
-    "# Classification\n",
-    "\n",
-    "<a id=\"create_input_data\"></a>\n",
-    "# 1.  Create input data\n",
-    "\n",
-    "Load iris data set."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "150 rows affected.\n",
-      "150 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>attributes</th>\n",
-       "        <th>class_text</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>13</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>14</td>\n",
-       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>15</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>16</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>17</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>18</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>19</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>20</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>21</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>22</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>23</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>24</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>25</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>26</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>27</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>29</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>30</td>\n",
-       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>31</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>32</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>33</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>34</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>35</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>36</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>37</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>38</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>39</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>40</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>41</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>42</td>\n",
-       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>43</td>\n",
-       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>45</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>46</td>\n",
-       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>47</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>48</td>\n",
-       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>49</td>\n",
-       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>50</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>51</td>\n",
-       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>52</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>53</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>54</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>55</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>56</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>57</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>58</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>59</td>\n",
-       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>60</td>\n",
-       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>61</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>62</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>63</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>64</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>65</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>66</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>67</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>68</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>70</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>71</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>72</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>73</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>74</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>75</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>76</td>\n",
-       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>77</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>78</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>79</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>81</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>82</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>83</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>84</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>85</td>\n",
-       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>86</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>87</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>88</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>89</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>90</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>91</td>\n",
-       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>92</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>93</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>94</td>\n",
-       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>95</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>96</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>98</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>99</td>\n",
-       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>100</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>101</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>102</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>103</td>\n",
-       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>104</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>105</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>106</td>\n",
-       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>107</td>\n",
-       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>108</td>\n",
-       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>109</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>110</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>111</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>112</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>113</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>114</td>\n",
-       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>115</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>116</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>117</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>118</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>119</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>121</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>122</td>\n",
-       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>123</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>124</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>125</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>126</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>127</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>128</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>129</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>130</td>\n",
-       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>131</td>\n",
-       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>133</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>134</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>135</td>\n",
-       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>136</td>\n",
-       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>137</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>138</td>\n",
-       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>139</td>\n",
-       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>140</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>141</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>142</td>\n",
-       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>143</td>\n",
-       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>144</td>\n",
-       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>145</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>146</td>\n",
-       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>147</td>\n",
-       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>148</td>\n",
-       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>149</td>\n",
-       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>150</td>\n",
-       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
-       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
-       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
-       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
-       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
-       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
-       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
-       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
-       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
-       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
-       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
-       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
-       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
-       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
-       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
-       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
-       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
-       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
-       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
-       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
-       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
-       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
-       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
-       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
-       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
-       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
-       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
-       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
-       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql \n",
-    "DROP TABLE IF EXISTS iris_data;\n",
-    "\n",
-    "CREATE TABLE iris_data(\n",
-    "    id serial,\n",
-    "    attributes numeric[],\n",
-    "    class_text varchar\n",
-    ");\n",
-    "\n",
-    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
-    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
-    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
-    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
-    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
-    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
-    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
-    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
-    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
-    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
-    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
-    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
-    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
-    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
-    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
-    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
-    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
-    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
-    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
-    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
-    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
-    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
-    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
-    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
-    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
-    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
-    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
-    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
-    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
-    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
-    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
-    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
-    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
-    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
-    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
-    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
-    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
-    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
-    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
-    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
-    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
-    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
-    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
-    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
-    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
-    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
-    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
-    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
-    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
-    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
-    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
-    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
-    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
-    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
-    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
-    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
-    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
-    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
-    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
-    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
-    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
-    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
-    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
-    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
-    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
-    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
-    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
-    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
-    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
-    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
-    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
-    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
-    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
-    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
-    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
-    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
-    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
-    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
-    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
-    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
-    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
-    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
-    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
-    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
-    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
-    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
-    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
-    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
-    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
-    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
-    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
-    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
-    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
-    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
-    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
-    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
-    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
-    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
-    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
-    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
-    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
-    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
-    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
-    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
-    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
-    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
-    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
-    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
-    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
-    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
-    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
-    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
-    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
-    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
-    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
-    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
-    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
-    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
-    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
-    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
-    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
-    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
-    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
-    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
-    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
-    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
-    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
-    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
-    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
-    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
-    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
-    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
-    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
-    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
-    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
-    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
-    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
-    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
-    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
-    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
-    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
-    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
-    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
-    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
-    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
-    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
-    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
-    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
-    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
-    "\n",
-    "SELECT * FROM iris_data ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Create a test/validation dataset from the training data"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(120L,)]"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
-    "\n",
-    "-- Set seed so results are reproducible\n",
-    "SELECT setseed(0);\n",
-    "\n",
-    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
-    "                               'iris',          -- Output table root name\n",
-    "                                0.8,            -- Train proportion\n",
-    "                                NULL,           -- Test proportion (0.2)\n",
-    "                                NULL,           -- Strata definition\n",
-    "                                NULL,           -- Output all columns\n",
-    "                                NULL,           -- Sample without replacement\n",
-    "                                TRUE            -- Separate output tables\n",
-    "                              );\n",
-    "\n",
-    "SELECT COUNT(*) FROM iris_train;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pp\"></a>\n",
-    "# 2. Call preprocessor for deep learning\n",
-    "Training dataset (uses training preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[60, 4]</td>\n",
-       "        <td>[60, 3]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[60, 4]</td>\n",
-       "        <td>[60, 3]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
-    "\n",
-    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
-    "                                       'iris_train_packed',  -- Output table\n",
-    "                                       'class_text',        -- Dependent variable\n",
-    "                                       'attributes'         -- Independent variable\n",
-    "                                        ); \n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train</td>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>60</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>3</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train', u'iris_train_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, 3, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_train_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Validation dataset (uses validation preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[15, 4]</td>\n",
-       "        <td>[15, 3]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[15, 4]</td>\n",
-       "        <td>[15, 3]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
-    "\n",
-    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
-    "                                         'iris_test_packed',   -- Output table\n",
-    "                                         'class_text',         -- Dependent variable\n",
-    "                                         'attributes',         -- Independent variable\n",
-    "                                         'iris_train_packed'   -- From training preprocessor step\n",
-    "                                          ); \n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_test</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>15</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>3</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_test', u'iris_test_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, 3, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_test_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load\"></a>\n",
-    "# 3. Define and load model architecture\n",
-    "Import Keras libraries"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
-   "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define model architecture with 1 hidden layer:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_1 (Dense)              (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 193\n",
-      "Trainable params: 193\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model1 = Sequential()\n",
-    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
-    "model1.add(Dense(10, activation='relu'))\n",
-    "model1.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model1.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model1.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define model architecture with 2 hidden layers:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "dense_4 (Dense)              (None, 10)                50        \n",
-      "_________________________________________________________________\n",
-      "dense_5 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_6 (Dense)              (None, 10)                110       \n",
-      "_________________________________________________________________\n",
-      "dense_7 (Dense)              (None, 3)                 33        \n",
-      "=================================================================\n",
-      "Total params: 303\n",
-      "Trainable params: 303\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model2 = Sequential()\n",
-    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
-    "model2.add(Dense(10, activation='relu'))\n",
-    "model2.add(Dense(10, activation='relu'))\n",
-    "model2.add(Dense(3, activation='softmax'))\n",
-    "    \n",
-    "model2.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model2.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load into model architecture table"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>model_arch</th>\n",
-       "        <th>model_weights</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>__internal_madlib_id__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>None</td>\n",
-       "        <td>Sophie</td>\n",
-       "        <td>MLP with 1 hidden layer</td>\n",
-       "        <td>__madlib_temp_96702431_1576708421_6956281__</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
-       "        <td>None</td>\n",
-       "        <td>Maria</td>\n",
-       "        <td>MLP with 2 hidden layers</td>\n",
-       "        <td>__madlib_temp_85244704_1576708422_1853942__</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_96702431_1576708421_6956281__'),\n",
-       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_85244704_1576708422_1853942__')]"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS model_arch_library;\n",
-    "\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
-    "                               \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Sophie',              -- Name\n",
-    "                               'MLP with 1 hidden layer'       -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
-    "                               \n",
-    "$$\n",
-    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
-    "$$\n",
-    "::json,         -- JSON blob\n",
-    "                               NULL,                  -- Weights\n",
-    "                               'Maria',               -- Name\n",
-    "                               'MLP with 2 hidden layers'       -- Descr\n",
-    ");\n",
-    "\n",
-    "SELECT * FROM model_arch_library ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"def_mst\"></a>\n",
-    "# 4.  Define and load model selection tuples"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Select the model(s) from the model architecture table that you want to run, along with the compile and fit parameters. Permutations will be created for the set of model selection parameters will be loaded:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
-      ]
-     },
-     "execution_count": 16,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
-    "\n",
-    "SELECT madlib.load_model_selection_table('model_arch_library', -- model architecture table\n",
-    "                                         'mst_table',          -- model selection table output\n",
-    "                                          ARRAY[1,2],              -- model ids from model architecture table\n",
-    "                                          ARRAY[                   -- compile params\n",
-    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$,\n",
-    "                                              $$loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']$$,\n",
-    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$\n",
-    "                                          ],\n",
-    "                                          ARRAY[                    -- fit params\n",
-    "                                              $$batch_size=4,epochs=1$$,\n",
-    "                                              $$batch_size=8,epochs=1$$\n",
-    "                                          ]\n",
-    "                                         );\n",
-    "                                  \n",
-    "SELECT * FROM mst_table ORDER BY mst_key;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "This is the name of the model architecture table that corresponds to the model selection table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_arch_table</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>model_arch_library</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'model_arch_library',)]"
-      ]
-     },
-     "execution_count": 17,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM mst_table_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"train\"></a>\n",
-    "# 5.  Train\n",
-    "Train multiple models:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit_multiple_model</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 18,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
-    "                                              'iris_multi_model',     -- model_output_table\n",
-    "                                              'mst_table',            -- model_selection_table\n",
-    "                                              10,                     -- num_iterations\n",
-    "                                              FALSE                   -- use gpus\n",
-    "                                             );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>model_info</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>warm_start</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>None</td>\n",
-       "        <td>iris_multi_model</td>\n",
-       "        <td>iris_multi_model_info</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>10</td>\n",
-       "        <td>10</td>\n",
-       "        <td>False</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>2019-12-18 22:33:49.706384</td>\n",
-       "        <td>2019-12-18 22:35:34.547961</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', None, u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 10, 10, False, None, None, datetime.datetime(2019, 12, 18, 22, 33, 49, 706384), datetime.datetime(2019, 12, 18, 22, 35, 34, 547961), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [10])]"
-      ]
-     },
-     "execution_count": 19,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View results for each model:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.148514986038208]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.975000023842</td>\n",
-       "        <td>0.12241948396</td>\n",
-       "        <td>[0.975000023841858]</td>\n",
-       "        <td>[0.122419483959675]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.172315120697021]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.975000023842</td>\n",
-       "        <td>0.123081341386</td>\n",
-       "        <td>[0.975000023841858]</td>\n",
-       "        <td>[0.123081341385841]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.274233102798462]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.925000011921</td>\n",
-       "        <td>0.171397775412</td>\n",
-       "        <td>[0.925000011920929]</td>\n",
-       "        <td>[0.171397775411606]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.155992984771729]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.925000011921</td>\n",
-       "        <td>0.51177251339</td>\n",
-       "        <td>[0.925000011920929]</td>\n",
-       "        <td>[0.511772513389587]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.220170021057129]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.908333361149</td>\n",
-       "        <td>0.214677110314</td>\n",
-       "        <td>[0.908333361148834]</td>\n",
-       "        <td>[0.214677110314369]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.191344022750854]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.833333313465</td>\n",
-       "        <td>0.524632036686</td>\n",
-       "        <td>[0.833333313465118]</td>\n",
-       "        <td>[0.524632036685944]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.181636810302734]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.758333325386</td>\n",
-       "        <td>0.393412530422</td>\n",
-       "        <td>[0.758333325386047]</td>\n",
-       "        <td>[0.393412530422211]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.181061029434204]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.658333361149</td>\n",
-       "        <td>0.474381148815</td>\n",
-       "        <td>[0.658333361148834]</td>\n",
-       "        <td>[0.474381148815155]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.20294713973999]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.658333361149</td>\n",
-       "        <td>0.475430130959</td>\n",
-       "        <td>[0.658333361148834]</td>\n",
-       "        <td>[0.475430130958557]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.207202911376953]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.574999988079</td>\n",
-       "        <td>0.885546028614</td>\n",
-       "        <td>[0.574999988079071]</td>\n",
-       "        <td>[0.885546028614044]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.374184846878052]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.433333337307</td>\n",
-       "        <td>0.82793289423</td>\n",
-       "        <td>[0.433333337306976]</td>\n",
-       "        <td>[0.827932894229889]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.216787099838257]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.316666662693</td>\n",
-       "        <td>1.10255157948</td>\n",
-       "        <td>[0.316666662693024]</td>\n",
-       "        <td>[1.1025515794754]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.148514986038208], [u'accuracy'], 0.975000023842, 0.12241948396, [0.975000023841858], [0.122419483959675], None, None, None, None),\n",
-       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.172315120697021], [u'accuracy'], 0.975000023842, 0.123081341386, [0.975000023841858], [0.123081341385841], None, None, None, None),\n",
-       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.274233102798462], [u'accuracy'], 0.925000011921, 0.171397775412, [0.925000011920929], [0.171397775411606], None, None, None, None),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.155992984771729], [u'accuracy'], 0.925000011921, 0.51177251339, [0.925000011920929], [0.511772513389587], None, None, None, None),\n",
-       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.220170021057129], [u'accuracy'], 0.908333361149, 0.214677110314, [0.908333361148834], [0.214677110314369], None, None, None, None),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.191344022750854], [u'accuracy'], 0.833333313465, 0.524632036686, [0.833333313465118], [0.524632036685944], None, None, None, None),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.181636810302734], [u'accuracy'], 0.758333325386, 0.393412530422, [0.758333325386047], [0.393412530422211], None, None, None, None),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.181061029434204], [u'accuracy'], 0.658333361149, 0.474381148815, [0.658333361148834], [0.474381148815155], None, None, None, None),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.20294713973999], [u'accuracy'], 0.658333361149, 0.475430130959, [0.658333361148834], [0.475430130958557], None, None, None, None),\n",
-       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.207202911376953], [u'accuracy'], 0.574999988079, 0.885546028614, [0.574999988079071], [0.885546028614044], None, None, None, None),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.374184846878052], [u'accuracy'], 0.433333337307, 0.82793289423, [0.433333337306976], [0.827932894229889], None, None, None, None),\n",
-       " (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.216787099838257], [u'accuracy'], 0.316666662693, 1.10255157948, [0.316666662693024], [1.1025515794754], None, None, None, None)]"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_info ORDER BY training_metrics_final DESC, training_loss_final;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"eval\"></a>\n",
-    "# 6. Evaluate\n",
-    "\n",
-    "Now run evaluate using model we built above:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>loss</th>\n",
-       "        <th>metric</th>\n",
-       "        <th>metrics_type</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0.15500420332</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0.15500420331955, 0.966666638851166, [u'accuracy'])]"
-      ]
-     },
-     "execution_count": 21,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_validate;\n",
-    "SELECT madlib.madlib_keras_evaluate('iris_multi_model',  -- model\n",
-    "                                    'iris_test_packed',  -- test table\n",
-    "                                    'iris_validate',     -- output table\n",
-    "                                     NULL,               -- use gpus\n",
-    "                                     3                   -- mst_key to use\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_validate;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pred\"></a>\n",
-    "# 7. Predict\n",
-    "\n",
-    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "30 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>estimated_class_text</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>19</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>25</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>26</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>38</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>45</td>\n",
-       "        <td>Iris-setosa</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>51</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>53</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>57</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>59</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>62</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>75</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>77</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>Iris-versicolor</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>102</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>107</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>114</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>118</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>122</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>146</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>147</td>\n",
-       "        <td>Iris-virginica</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(3, u'Iris-setosa'),\n",
-       " (5, u'Iris-setosa'),\n",
-       " (7, u'Iris-setosa'),\n",
-       " (8, u'Iris-setosa'),\n",
-       " (10, u'Iris-setosa'),\n",
-       " (19, u'Iris-setosa'),\n",
-       " (25, u'Iris-setosa'),\n",
-       " (26, u'Iris-setosa'),\n",
-       " (28, u'Iris-setosa'),\n",
-       " (38, u'Iris-setosa'),\n",
-       " (44, u'Iris-setosa'),\n",
-       " (45, u'Iris-setosa'),\n",
-       " (51, u'Iris-versicolor'),\n",
-       " (53, u'Iris-versicolor'),\n",
-       " (57, u'Iris-versicolor'),\n",
-       " (59, u'Iris-versicolor'),\n",
-       " (62, u'Iris-versicolor'),\n",
-       " (69, u'Iris-virginica'),\n",
-       " (75, u'Iris-versicolor'),\n",
-       " (77, u'Iris-versicolor'),\n",
-       " (97, u'Iris-versicolor'),\n",
-       " (102, u'Iris-virginica'),\n",
-       " (107, u'Iris-virginica'),\n",
-       " (114, u'Iris-virginica'),\n",
-       " (118, u'Iris-virginica'),\n",
-       " (120, u'Iris-virginica'),\n",
-       " (122, u'Iris-virginica'),\n",
-       " (132, u'Iris-virginica'),\n",
-       " (146, u'Iris-virginica'),\n",
-       " (147, u'Iris-virginica')]"
-      ]
-     },
-     "execution_count": 22,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_predict;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
-    "                                   'iris_test',        -- test_table\n",
-    "                                   'id',               -- id column\n",
-    "                                   'attributes',       -- independent var\n",
-    "                                   'iris_predict',     -- output table\n",
-    "                                    'response',        -- prediction type\n",
-    "                                    FALSE,             -- use gpus\n",
-    "                                    3                  -- mst_key to use\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_predict ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Count missclassifications"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 23,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1L,)]"
-      ]
-     },
-     "execution_count": 23,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
-    "WHERE iris_predict.estimated_class_text != iris_test.class_text;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Percent missclassifications"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 24,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>test_accuracy_percent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>96.67</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(Decimal('96.67'),)]"
-      ]
-     },
-     "execution_count": 24,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
-    "    (select iris_test.class_text as actual, iris_predict.estimated_class_text as estimated\n",
-    "     from iris_predict inner join iris_test\n",
-    "     on iris_test.id=iris_predict.id) q\n",
-    "WHERE q.actual=q.estimated;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"class2\"></a>\n",
-    "# Classification with Other Parameters\n",
-    "\n",
-    "<a id=\"val_dataset\"></a>\n",
-    "# 1.  Validation dataset\n",
-    "\n",
-    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit_multiple_model</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
-    "                                              'iris_multi_model',     -- model_output_table\n",
-    "                                              'mst_table',            -- model_selection_table\n",
-    "                                               10,                     -- num_iterations\n",
-    "                                               FALSE,                 -- use gpus\n",
-    "                                              'iris_test_packed',     -- validation dataset\n",
-    "                                               3,                     -- metrics compute frequency\n",
-    "                                               FALSE,                 -- warm start\n",
-    "                                              'Sophie L.',            -- name\n",
-    "                                              'Model selection for iris dataset'  -- description\n",
-    "                                             );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>model_info</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>warm_start</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>iris_multi_model</td>\n",
-       "        <td>iris_multi_model_info</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>10</td>\n",
-       "        <td>3</td>\n",
-       "        <td>False</td>\n",
-       "        <td>Sophie L.</td>\n",
-       "        <td>Model selection for iris dataset</td>\n",
-       "        <td>2019-12-18 22:35:49.962345</td>\n",
-       "        <td>2019-12-18 22:37:51.230499</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[3, 6, 9, 10]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 10, 3, False, u'Sophie L.', u'Model selection for iris dataset', datetime.datetime(2019, 12, 18, 22, 35, 49, 962345), datetime.datetime(2019, 12, 18, 22, 37, 51, 230499), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [3, 6, 9, 10])]"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View performance of each model:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.400555849075317, 0.175060987472534, 0.161082029342651, 0.159379005432129]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.958333313465</td>\n",
-       "        <td>0.370426625013</td>\n",
-       "        <td>[0.841666638851166, 0.875, 0.958333313465118, 0.958333313465118]</td>\n",
-       "        <td>[0.597030103206635, 0.467845916748047, 0.394165992736816, 0.370426625013351]</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>0.32715767622</td>\n",
-       "        <td>[0.866666674613953, 0.933333337306976, 1.0, 1.0]</td>\n",
-       "        <td>[0.587784588336945, 0.432697623968124, 0.352933287620544, 0.32715767621994]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.157984018325806, 0.146160840988159, 0.446839094161987, 0.217149972915649]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.916666686535</td>\n",
-       "        <td>0.176682218909</td>\n",
-       "        <td>[0.958333313465118, 0.891666650772095, 0.841666638851166, 0.916666686534882]</td>\n",
-       "        <td>[0.340974450111389, 0.224177747964859, 0.315857976675034, 0.176682218909264]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.146555349231</td>\n",
-       "        <td>[0.966666638851166, 0.933333337306976, 0.866666674613953, 0.966666638851166]</td>\n",
-       "        <td>[0.306026995182037, 0.204480707645416, 0.291850447654724, 0.146555349230766]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.158334016799927, 0.492121934890747, 0.168816804885864, 0.160614013671875]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.949999988079</td>\n",
-       "        <td>0.137093007565</td>\n",
-       "        <td>[0.75, 0.808333337306976, 0.941666662693024, 0.949999988079071]</td>\n",
-       "        <td>[0.861838400363922, 0.306531131267548, 0.267581582069397, 0.137093007564545]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.0812632590532</td>\n",
-       "        <td>[0.533333361148834, 0.733333349227905, 1.0, 0.966666638851166]</td>\n",
-       "        <td>[1.17265951633453, 0.347328811883926, 0.0795030668377876, 0.0812632590532303]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.206979990005493, 0.175852060317993, 0.18351411819458, 0.173283100128174]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.841666638851</td>\n",
-       "        <td>0.319059103727</td>\n",
-       "        <td>[0.833333313465118, 0.916666686534882, 0.958333313465118, 0.841666638851166]</td>\n",
-       "        <td>[0.375581055879593, 0.235803470015526, 0.119093284010887, 0.319059103727341]</td>\n",
-       "        <td>0.866666674614</td>\n",
-       "        <td>0.294114112854</td>\n",
-       "        <td>[0.866666674613953, 0.966666638851166, 0.933333337306976, 0.866666674613953]</td>\n",
-       "        <td>[0.332203418016434, 0.206457450985909, 0.09817935526371, 0.294114112854004]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.154335021972656, 0.14276385307312, 0.160094022750854, 0.147177934646606]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.833333313465</td>\n",
-       "        <td>0.315035998821</td>\n",
-       "        <td>[0.850000023841858, 0.966666638851166, 0.966666638851166, 0.833333313465118]</td>\n",
-       "        <td>[0.39260533452034, 0.207864001393318, 0.14202418923378, 0.315035998821259]</td>\n",
-       "        <td>0.833333313465</td>\n",
-       "        <td>0.287047833204</td>\n",
-       "        <td>[0.833333313465118, 0.966666638851166, 0.933333337306976, 0.833333313465118]</td>\n",
-       "        <td>[0.350265830755234, 0.179627984762192, 0.119969591498375, 0.287047833204269]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.183771848678589, 0.442173957824707, 0.196517944335938, 0.183962106704712]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.683333337307</td>\n",
-       "        <td>0.773626208305</td>\n",
-       "        <td>[0.983333349227905, 0.783333361148834, 0.841666638851166, 0.683333337306976]</td>\n",
-       "        <td>[0.323956668376923, 0.355609774589539, 0.289077579975128, 0.773626208305359]</td>\n",
-       "        <td>0.733333349228</td>\n",
-       "        <td>0.598832905293</td>\n",
-       "        <td>[0.966666638851166, 0.733333349227905, 0.866666674613953, 0.733333349227905]</td>\n",
-       "        <td>[0.292185336351395, 0.310099214315414, 0.278687566518784, 0.598832905292511]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.215842962265015, 0.183883190155029, 0.181258201599121, 0.233398914337158]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.658333361149</td>\n",
-       "        <td>0.501300632954</td>\n",
-       "        <td>[0.341666668653488, 0.658333361148834, 0.658333361148834, 0.658333361148834]</td>\n",
-       "        <td>[0.947986364364624, 0.807084918022156, 0.549242556095123, 0.501300632953644]</td>\n",
-       "        <td>0.699999988079</td>\n",
-       "        <td>0.459856539965</td>\n",
-       "        <td>[0.300000011920929, 0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
-       "        <td>[0.971994161605835, 0.821518063545227, 0.513974606990814, 0.459856539964676]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.181059837341309, 0.156504154205322, 0.154800891876221, 0.165037870407104]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.675000011921</td>\n",
-       "        <td>0.500130057335</td>\n",
-       "        <td>[0.658333361148834, 0.908333361148834, 0.908333361148834, 0.675000011920929]</td>\n",
-       "        <td>[0.822371363639832, 0.354260504245758, 0.206746637821198, 0.5001300573349]</td>\n",
-       "        <td>0.699999988079</td>\n",
-       "        <td>0.511800050735</td>\n",
-       "        <td>[0.699999988079071, 0.933333337306976, 0.966666638851166, 0.699999988079071]</td>\n",
-       "        <td>[0.784473180770874, 0.314396589994431, 0.171932756900787, 0.511800050735474]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.16503119468689, 0.165420055389404, 0.163087844848633, 0.157285213470459]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.600000023842</td>\n",
-       "        <td>0.536593079567</td>\n",
-       "        <td>[0.625, 0.491666674613953, 0.508333325386047, 0.600000023841858]</td>\n",
-       "        <td>[0.877406716346741, 0.665770947933197, 0.563206613063812, 0.536593079566956]</td>\n",
-       "        <td>0.600000023842</td>\n",
-       "        <td>0.50565046072</td>\n",
-       "        <td>[0.566666662693024, 0.533333361148834, 0.600000023841858, 0.600000023841858]</td>\n",
-       "        <td>[0.898801684379578, 0.642534494400024, 0.529698371887207, 0.505650460720062]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.180193901062012, 0.230684041976929, 0.202606916427612, 0.182677030563354]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.5</td>\n",
-       "        <td>1.01774513721</td>\n",
-       "        <td>[0.341666668653488, 0.491666674613953, 0.524999976158142, 0.5]</td>\n",
-       "        <td>[1.10608339309692, 1.06158423423767, 1.02908384799957, 1.01774513721466]</td>\n",
-       "        <td>0.5</td>\n",
-       "        <td>1.01636135578</td>\n",
-       "        <td>[0.300000011920929, 0.466666668653488, 0.466666668653488, 0.5]</td>\n",
-       "        <td>[1.10331404209137, 1.05365967750549, 1.02413082122803, 1.01636135578156]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.181950092315674, 0.197594881057739, 0.187069177627563, 0.183701992034912]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.316666662693</td>\n",
-       "        <td>1.10080897808</td>\n",
-       "        <td>[0.316666662693024, 0.341666668653488, 0.341666668653488, 0.316666662693024]</td>\n",
-       "        <td>[1.1043815612793, 1.11140048503876, 1.09834468364716, 1.10080897808075]</td>\n",
-       "        <td>0.40000000596</td>\n",
-       "        <td>1.09380173683</td>\n",
-       "        <td>[0.400000005960464, 0.300000011920929, 0.300000011920929, 0.400000005960464]</td>\n",
-       "        <td>[1.09075009822845, 1.09998726844788, 1.10155093669891, 1.09380173683167]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.182392835617065, 0.206873893737793, 0.192094087600708, 0.185320854187012]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.341666668653</td>\n",
-       "        <td>1.10410153866</td>\n",
-       "        <td>[0.341666668653488, 0.316666662693024, 0.341666668653488, 0.341666668653488]</td>\n",
-       "        <td>[1.10291886329651, 1.10132431983948, 1.10635650157928, 1.10410153865814]</td>\n",
-       "        <td>0.300000011921</td>\n",
-       "        <td>1.10918176174</td>\n",
-       "        <td>[0.300000011920929, 0.400000005960464, 0.300000011920929, 0.300000011920929]</td>\n",
-       "        <td>[1.10382485389709, 1.09316170215607, 1.1332186460495, 1.10918176174164]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.400555849075317, 0.175060987472534, 0.161082029342651, 0.159379005432129], [u'accuracy'], 0.958333313465, 0.370426625013, [0.841666638851166, 0.875, 0.958333313465118, 0.958333313465118], [0.597030103206635, 0.467845916748047, 0.394165992736816, 0.370426625013351], 1.0, 0.32715767622, [0.866666674613953, 0.933333337306976, 1.0, 1.0], [0.587784588336945, 0.432697623968124, 0.352933287620544, 0.32715767621994]),\n",
-       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.157984018325806, 0.146160840988159, 0.446839094161987, 0.217149972915649], [u'accuracy'], 0.916666686535, 0.176682218909, [0.958333313465118, 0.891666650772095, 0.841666638851166, 0.916666686534882], [0.340974450111389, 0.224177747964859, 0.315857976675034, 0.176682218909264], 0.966666638851, 0.146555349231, [0.966666638851166, 0.933333337306976, 0.866666674613953, 0.966666638851166], [0.306026995182037, 0.204480707645416, 0.291850447654724, 0.146555349230766]),\n",
-       " (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.158334016799927, 0.492121934890747, 0.168816804885864, 0.160614013671875], [u'accuracy'], 0.949999988079, 0.137093007565, [0.75, 0.808333337306976, 0.941666662693024, 0.949999988079071], [0.861838400363922, 0.306531131267548, 0.267581582069397, 0.137093007564545], 0.966666638851, 0.0812632590532, [0.533333361148834, 0.733333349227905, 1.0, 0.966666638851166], [1.17265951633453, 0.347328811883926, 0.0795030668377876, 0.0812632590532303]),\n",
-       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.206979990005493, 0.175852060317993, 0.18351411819458, 0.173283100128174], [u'accuracy'], 0.841666638851, 0.319059103727, [0.833333313465118, 0.916666686534882, 0.958333313465118, 0.841666638851166], [0.375581055879593, 0.235803470015526, 0.119093284010887, 0.319059103727341], 0.866666674614, 0.294114112854, [0.866666674613953, 0.966666638851166, 0.933333337306976, 0.866666674613953], [0.332203418016434, 0.206457450985909, 0.09817935526371, 0.294114112854004]),\n",
-       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.154335021972656, 0.14276385307312, 0.160094022750854, 0.147177934646606], [u'accuracy'], 0.833333313465, 0.315035998821, [0.850000023841858, 0.966666638851166, 0.966666638851166, 0.833333313465118], [0.39260533452034, 0.207864001393318, 0.14202418923378, 0.315035998821259], 0.833333313465, 0.287047833204, [0.833333313465118, 0.966666638851166, 0.933333337306976, 0.833333313465118], [0.350265830755234, 0.179627984762192, 0.119969591498375, 0.287047833204269]),\n",
-       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.183771848678589, 0.442173957824707, 0.196517944335938, 0.183962106704712], [u'accuracy'], 0.683333337307, 0.773626208305, [0.983333349227905, 0.783333361148834, 0.841666638851166, 0.683333337306976], [0.323956668376923, 0.355609774589539, 0.289077579975128, 0.773626208305359], 0.733333349228, 0.598832905293, [0.966666638851166, 0.733333349227905, 0.866666674613953, 0.733333349227905], [0.292185336351395, 0.310099214315414, 0.278687566518784, 0.598832905292511]),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.215842962265015, 0.183883190155029, 0.181258201599121, 0.233398914337158], [u'accuracy'], 0.658333361149, 0.501300632954, [0.341666668653488, 0.658333361148834, 0.658333361148834, 0.658333361148834], [0.947986364364624, 0.807084918022156, 0.549242556095123, 0.501300632953644], 0.699999988079, 0.459856539965, [0.300000011920929, 0.699999988079071, 0.699999988079071, 0.699999988079071], [0.971994161605835, 0.821518063545227, 0.513974606990814, 0.459856539964676]),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.181059837341309, 0.156504154205322, 0.154800891876221, 0.165037870407104], [u'accuracy'], 0.675000011921, 0.500130057335, [0.658333361148834, 0.908333361148834, 0.908333361148834, 0.675000011920929], [0.822371363639832, 0.354260504245758, 0.206746637821198, 0.5001300573349], 0.699999988079, 0.511800050735, [0.699999988079071, 0.933333337306976, 0.966666638851166, 0.699999988079071], [0.784473180770874, 0.314396589994431, 0.171932756900787, 0.511800050735474]),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.16503119468689, 0.165420055389404, 0.163087844848633, 0.157285213470459], [u'accuracy'], 0.600000023842, 0.536593079567, [0.625, 0.491666674613953, 0.508333325386047, 0.600000023841858], [0.877406716346741, 0.665770947933197, 0.563206613063812, 0.536593079566956], 0.600000023842, 0.50565046072, [0.566666662693024, 0.533333361148834, 0.600000023841858, 0.600000023841858], [0.898801684379578, 0.642534494400024, 0.529698371887207, 0.505650460720062]),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.180193901062012, 0.230684041976929, 0.202606916427612, 0.182677030563354], [u'accuracy'], 0.5, 1.01774513721, [0.341666668653488, 0.491666674613953, 0.524999976158142, 0.5], [1.10608339309692, 1.06158423423767, 1.02908384799957, 1.01774513721466], 0.5, 1.01636135578, [0.300000011920929, 0.466666668653488, 0.466666668653488, 0.5], [1.10331404209137, 1.05365967750549, 1.02413082122803, 1.01636135578156]),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.181950092315674, 0.197594881057739, 0.187069177627563, 0.183701992034912], [u'accuracy'], 0.316666662693, 1.10080897808, [0.316666662693024, 0.341666668653488, 0.341666668653488, 0.316666662693024], [1.1043815612793, 1.11140048503876, 1.09834468364716, 1.10080897808075], 0.40000000596, 1.09380173683, [0.400000005960464, 0.300000011920929, 0.300000011920929, 0.400000005960464], [1.09075009822845, 1.09998726844788, 1.10155093669891, 1.09380173683167]),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.182392835617065, 0.206873893737793, 0.192094087600708, 0.185320854187012], [u'accuracy'], 0.341666668653, 1.10410153866, [0.341666668653488, 0.316666662693024, 0.341666668653488, 0.341666668653488], [1.10291886329651, 1.10132431983948, 1.10635650157928, 1.10410153865814], 0.300000011921, 1.10918176174, [0.300000011920929, 0.400000005960464, 0.300000011920929, 0.300000011920929], [1.10382485389709, 1.09316170215607, 1.1332186460495, 1.10918176174164])]"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Plot validation results"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 28,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%matplotlib notebook\n",
-    "import matplotlib.pyplot as plt\n",
-    "from matplotlib.ticker import MaxNLocator\n",
-    "from collections import defaultdict\n",
-    "import pandas as pd\n",
-    "import seaborn as sns\n",
-    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
-    "plt.rcParams.update({'font.size': 12})\n",
-    "pd.set_option('display.max_colwidth', -1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "7 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "\n",
-       "mpl.get_websocket_type = function() {\n",
-       "    if (typeof(WebSocket) !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert('Your browser does not have WebSocket support.' +\n",
-       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "              'Firefox 4 and 5 are also supported but you ' +\n",
-       "              'have to enable WebSockets in about:config.');\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent = (\n",
-       "                \"This browser does not support binary websocket messages. \" +\n",
-       "                    \"Performance may be slow.\");\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = $('<div/>');\n",
-       "    this._root_extra_style(this.root)\n",
-       "    this.root.attr('style', 'display: inline-block');\n",
-       "\n",
-       "    $(parent_element).append(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen =  function () {\n",
-       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
-       "            fig.send_message(\"send_image_mode\", {});\n",
-       "            if (mpl.ratio != 1) {\n",
-       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
-       "            }\n",
-       "            fig.send_message(\"refresh\", {});\n",
-       "        }\n",
-       "\n",
-       "    this.imageObj.onload = function() {\n",
-       "            if (fig.image_mode == 'full') {\n",
-       "                // Full images could contain transparency (where diff images\n",
-       "                // almost always do), so we need to clear the canvas so that\n",
-       "                // there is no ghosting.\n",
-       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "            }\n",
-       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "        };\n",
-       "\n",
-       "    this.imageObj.onunload = function() {\n",
-       "        fig.ws.close();\n",
-       "    }\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function() {\n",
-       "    var titlebar = $(\n",
-       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
-       "        'ui-helper-clearfix\"/>');\n",
-       "    var titletext = $(\n",
-       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
-       "        'text-align: center; padding: 3px;\"/>');\n",
-       "    titlebar.append(titletext)\n",
-       "    this.root.append(titlebar);\n",
-       "    this.header = titletext[0];\n",
-       "}\n",
-       "\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = $('<div/>');\n",
-       "\n",
-       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
-       "\n",
-       "    function canvas_keyboard_event(event) {\n",
-       "        return fig.key_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
-       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
-       "    this.canvas_div = canvas_div\n",
-       "    this._canvas_extra_style(canvas_div)\n",
-       "    this.root.append(canvas_div);\n",
-       "\n",
-       "    var canvas = $('<canvas/>');\n",
-       "    canvas.addClass('mpl-canvas');\n",
-       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
-       "\n",
-       "    this.canvas = canvas[0];\n",
-       "    this.context = canvas[0].getContext(\"2d\");\n",
-       "\n",
-       "    var backingStore = this.context.backingStorePixelRatio ||\n",
-       "\tthis.context.webkitBackingStorePixelRatio ||\n",
-       "\tthis.context.mozBackingStorePixelRatio ||\n",
-       "\tthis.context.msBackingStorePixelRatio ||\n",
-       "\tthis.context.oBackingStorePixelRatio ||\n",
-       "\tthis.context.backingStorePixelRatio || 1;\n",
-       "\n",
-       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband = $('<canvas/>');\n",
-       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
-       "\n",
-       "    var pass_mouse_events = true;\n",
-       "\n",
-       "    canvas_div.resizable({\n",
-       "        start: function(event, ui) {\n",
-       "            pass_mouse_events = false;\n",
-       "        },\n",
-       "        resize: function(event, ui) {\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "        stop: function(event, ui) {\n",
-       "            pass_mouse_events = true;\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "    });\n",
-       "\n",
-       "    function mouse_event_fn(event) {\n",
-       "        if (pass_mouse_events)\n",
-       "            return fig.mouse_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
-       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
-       "\n",
-       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
-       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
-       "\n",
-       "    canvas_div.on(\"wheel\", function (event) {\n",
-       "        event = event.originalEvent;\n",
-       "        event['data'] = 'scroll'\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        mouse_event_fn(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.append(canvas);\n",
-       "    canvas_div.append(rubberband);\n",
-       "\n",
-       "    this.rubberband = rubberband;\n",
-       "    this.rubberband_canvas = rubberband[0];\n",
-       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
-       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
-       "\n",
-       "    this._resize_canvas = function(width, height) {\n",
-       "        // Keep the size of the canvas, canvas container, and rubber band\n",
-       "        // canvas in synch.\n",
-       "        canvas_div.css('width', width)\n",
-       "        canvas_div.css('height', height)\n",
-       "\n",
-       "        canvas.attr('width', width * mpl.ratio);\n",
-       "        canvas.attr('height', height * mpl.ratio);\n",
-       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
-       "\n",
-       "        rubberband.attr('width', width);\n",
-       "        rubberband.attr('height', height);\n",
-       "    }\n",
-       "\n",
-       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
-       "    // upon first draw.\n",
-       "    this._resize_canvas(600, 600);\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus () {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            // put a spacer in here.\n",
-       "            continue;\n",
-       "        }\n",
-       "        var button = $('<button/>');\n",
-       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
-       "                        'ui-button-icon-only');\n",
-       "        button.attr('role', 'button');\n",
-       "        button.attr('aria-disabled', 'false');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "\n",
-       "        var icon_img = $('<span/>');\n",
-       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
-       "        icon_img.addClass(image);\n",
-       "        icon_img.addClass('ui-corner-all');\n",
-       "\n",
-       "        var tooltip_span = $('<span/>');\n",
-       "        tooltip_span.addClass('ui-button-text');\n",
-       "        tooltip_span.html(tooltip);\n",
-       "\n",
-       "        button.append(icon_img);\n",
-       "        button.append(tooltip_span);\n",
-       "\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker_span = $('<span/>');\n",
-       "\n",
-       "    var fmt_picker = $('<select/>');\n",
-       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
-       "    fmt_picker_span.append(fmt_picker);\n",
-       "    nav_element.append(fmt_picker_span);\n",
-       "    this.format_dropdown = fmt_picker[0];\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = $(\n",
-       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
-       "        fmt_picker.append(option)\n",
-       "    }\n",
-       "\n",
-       "    // Add hover states to the ui-buttons\n",
-       "    $( \".ui-button\" ).hover(\n",
-       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
-       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
-       "    );\n",
-       "\n",
-       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function(type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function() {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1]);\n",
-       "        fig.send_message(\"refresh\", {});\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
-       "    var x0 = msg['x0'] / mpl.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
-       "    var x1 = msg['x1'] / mpl.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch(cursor)\n",
-       "    {\n",
-       "    case 0:\n",
-       "        cursor = 'pointer';\n",
-       "        break;\n",
-       "    case 1:\n",
-       "        cursor = 'default';\n",
-       "        break;\n",
-       "    case 2:\n",
-       "        cursor = 'crosshair';\n",
-       "        break;\n",
-       "    case 3:\n",
-       "        cursor = 'move';\n",
-       "        break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message(\"ack\", {});\n",
-       "}\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = \"image/png\";\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src);\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data);\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig[\"handle_\" + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function(e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e)\n",
-       "        e = window.event;\n",
-       "    if (e.target)\n",
-       "        targ = e.target;\n",
-       "    else if (e.srcElement)\n",
-       "        targ = e.srcElement;\n",
-       "    if (targ.nodeType == 3) // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "\n",
-       "    // jQuery normalizes the pageX and pageY\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    // offset() returns the position of the element relative to the document\n",
-       "    var x = e.pageX - $(targ).offset().left;\n",
-       "    var y = e.pageY - $(targ).offset().top;\n",
-       "\n",
-       "    return {\"x\": x, \"y\": y};\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys (original) {\n",
-       "  return Object.keys(original).reduce(function (obj, key) {\n",
-       "    if (typeof original[key] !== 'object')\n",
-       "        obj[key] = original[key]\n",
-       "    return obj;\n",
-       "  }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event)\n",
-       "\n",
-       "    if (name === 'button_press')\n",
-       "    {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * mpl.ratio;\n",
-       "    var y = canvas_pos.y * mpl.ratio;\n",
-       "\n",
-       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
-       "                             step: event.step,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function(event, name) {\n",
-       "\n",
-       "    // Prevent repeat events\n",
-       "    if (name == 'key_press')\n",
-       "    {\n",
-       "        if (event.which === this._key)\n",
-       "            return;\n",
-       "        else\n",
-       "            this._key = event.which;\n",
-       "    }\n",
-       "    if (name == 'key_release')\n",
-       "        this._key = null;\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which != 17)\n",
-       "        value += \"ctrl+\";\n",
-       "    if (event.altKey && event.which != 18)\n",
-       "        value += \"alt+\";\n",
-       "    if (event.shiftKey && event.which != 16)\n",
-       "        value += \"shift+\";\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, {key: value,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
-       "    if (name == 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message(\"toolbar_button\", {name: name});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function() {\n",
-       "        comm.close()\n",
-       "    };\n",
-       "    ws.send = function(m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function(msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data'])\n",
-       "    });\n",
-       "    return ws;\n",
-       "}\n",
-       "\n",
-       "mpl.mpl_figure_comm = function(comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = $(\"#\" + id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm)\n",
-       "\n",
-       "    function ondownload(figure, format) {\n",
-       "        window.open(figure.imageObj.src);\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy,\n",
-       "                           ondownload,\n",
-       "                           element.get(0));\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element.get(0);\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "\n",
-       "    var output_index = fig.cell_info[2]\n",
-       "    var cell = fig.cell_info[0];\n",
-       "\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
-       "    var width = fig.canvas.width/mpl.ratio\n",
-       "    fig.root.unbind('remove')\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable()\n",
-       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
-       "    fig.close_ws(fig, msg);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width/mpl.ratio\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message(\"ack\", {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items){\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) { continue; };\n",
-       "\n",
-       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
-       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
-       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
-       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
-       "    buttongrp.append(button);\n",
-       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
-       "    titlebar.prepend(buttongrp);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(el){\n",
-       "    var fig = this\n",
-       "    el.on(\"remove\", function(){\n",
-       "\tfig.close_ws(fig, {});\n",
-       "    });\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.attr('tabindex', 0)\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "    else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager)\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which == 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        event.shiftKey = false;\n",
-       "        // Send a \"J\" for go to next cell\n",
-       "        event.which = 74;\n",
-       "        event.keyCode = 74;\n",
-       "        manager.command_mode();\n",
-       "        manager.handle_keydown(event);\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.find_output_cell = function(html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i=0; i<ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code'){\n",
-       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] == html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel != null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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kWhnxOw/5zPCZ0TLM8BzwnPCc6KFAD/jRaPEdwnfJRTioj0lcfw5H0C+pKMdL54RvqSjnREKcR0T4rPD92u0Z4dnJBohc/2c54G/b7WceJ4TnhOeEy0EaINEo8R3Cd8lFOKiPSVx/HlpaSkee+wxXHrppcjNzY3jnYwxNHlE7hOZkImWp5fnhOck2jnhGeEZiXZGzP5zPiN8RrQ8AzwnPCc8J1oItO3D54bPjZZTY/ZzwtBULaeEfUiABEiABEiABEiABEiABEiABEiABEiABEiglwQoxPUSIC8nARIgARIgARIgARIgARIgARIgARIgARIgAS0EKMRpocQ+JEACJEACJEACJEACJEACJEACJEACJEACJNBLAhTiegmQl5MACZAACZAACZAACZAACZAACZAACZAACZCAFgIU4rRQYh8SIAESIAESIAESIAESIAESIAESIAESIAES6CUBCnG9BBjt8vvuuw+rVq3Cli1bUFFRgaamJuTk5GDOnDm4+uqrcdRRR0UbIqF/Xl1djXHjxqGyshKjRo3Cjh07Enq9HS3uhBNOwMqVKztd99tvv4358+ebjossWM7FnXfeiX/84x/YvXs3kpOTMWLECJx00km4++67TcNkxYoVOPHEE6Ou9+abb8bixYuj9kuUDuvWrVPnQN6xclbcbrd6p1500UW48MILYbFYEmWpmtfx5Zdf4tZbb8UHH3yAvXv3qgrdZ555JpYsWYLMzEzN4xip44YNG/Dee+9h7dq16mvPnj1q+sFgsMtlPP3003j44YexdetWOJ1OHH300bjhhhswe/ZsIy2fc+0GAdpk0WHRLgNol3V+TmiXhdjQLuv4jNAui+RCu4x2WWdvVApx0W2SXvWQDz719fWYMGEChg4dqsb64osvsH37djgcDrz66qvqQ5JZm3xYfvbZZ9UHJrMLceeccw5SU1MjjsKiRYtMKdjKh+tTTz0V8qFg/PjxOPLII3HgwAH1obm4uBjNzc2meWy2bduGO+64o8P1+v1+LF++XP1MxBctgl0igHvllVfwP//zP5D1T5kyBYcffrgS4z766CN1Nn7yk5/g+eefT4Slal6D7P9ZZ52FhoYGjB07FkcccQQ+//xz9fsmPz8fq1evVv8mWvv+97+PN954I2JZXQlxV1xxBR588EEl7p9yyinqj2Tvv/+++l308ssvQ8ZkSzwC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13IoxSNOqg2ZuZnZ4AufEcmHJ0le5YOfeDpt2LABkjtP8jt98MEHKim92VrYO0GYzJ49W7kui3ApIWWS60pCE83YLrnkEpXj6+qrr1bVQs3aZP3itSRNnhPJGyhVU0VMCQQCEE6PPfaYqfDIMyP54eRdIuK1iPyrVq1Sz0wi5yJ96623IHkDw01ER/FQCOcclf8v65dCFuEmfwh78MEHVX5FEeUk36QIt3Ldyy+/rPJUsiUWAdpk2veTdtnPVJ5i2mVtzwztso6fIdplIS60yyLPB+2yEBPaZRTitFsgMeopf1GXROISOvXtt98qEU5CgyT3mYTVXX755cp7wezNzAafJHf94x//qIpVSMjYvn374Ha7MW7cOOXtJRUfEz2MrLPzLx+I5fkRMUU4Sc64CRMmqHBDM3j1dMRFBBURWOScSOiu8DBzE9FJvItFuK6pqUFaWhokfEaEWrMUN2m9/6+//rriIWejurpa5UKTKqkiOiVy1eWwwNLVsyD5v8Qgbt3kuoceeki9X+R389FHH60EOxH+2RKPAG0y7XtKu4x2WUenhXZZJBXaZW2Z0C5ry4N2Wee/d2iXAfSI026XsCcJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ9JgAhbgeo+OFJEACJEACJEACJEACJEACJEACJEACJEACJKCdAIU47azYkwRIgARIgARIgARIgARIgARIgARIgARIgAR6TIBCXI/R8UISIAESIAESIAESIAESIAESIAESIAESIAES0E6AQpx2VuxJAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAj0mQCGux+h4IQmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAloJ0AhTjsr9iQBEiABEiABEiABEiABEiABEiABEiABEiCBHhOgENdjdLyQBEiABEiABEiABEiABEiABEiABEiABEiABLQToBCnnRV7kgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkECPCVCI6zE6XkgCJEACJEACJEACJEACJEACJEACJEACJEAC2glQiNPOij1JgARIgARIgARIgARIgARIgARIgARIgARIoMcEKMT1GB0vJAESiBUBi8WihgoGg7EaUlfjLFmyBDfffDOeeuopXHjhhbqaGydDAiRAAiRAAiRAAq0J0C7jeSABEiCB+BKgEBdfvhydBEhAA4GODL5du3bhsMMOw5w5c7BixQoNo/RflxNOOAErV67Ezp07MWLEiIiJUIjrv73hnUmABEiABEiABLpHgHZZ93ixNwmQAAl0lwCFuO4SY38SIIGYE0h0g6+qqgrylZubi/T09Jjz44AkQAIkQAIkQAIkECsCtMtiRZLjkAAJkEDHBCjE8WSQAAn0O4FEN/j6HTAnQAIkQAIkQAIkQAIaCdAu0wiK3UiABEighwQoxPUQHC8jARKIHYH2Bl84lLOjOyxcuBBPP/10y4/27t2Lu+++G2+88YYKDXU6nZg6dSquuuoqnHnmmW2GaB3u+ve//x1yn9deew3FxcX49a9/jQceeAD79+/Hc889hzfffBPbtm1DWVkZUlNTMX36dCxatAjz5s1rGTM8XmckwjnvugpNra6uxh133IHXX38dRUVFSElJwYwZM9T8TznllIihhdXw4cPxzTff4J577sGTTz6JwsJCZGdn4yc/+QluueUWuFyu2G0ORyIBEiABEiABEjAVAdpltMtMdeC5WBLoBwIU4voBOm9JAiTQlkB7g09EqeXLl+OVV17BkCFDMH/+/JYLjj32WFx88cXqv7dv346TTz5ZCViSm23ixImora3FmjVr0NDQoAS63/3udxHCmQhdXq9XCViSg85qtWLChAm46aab8K9//QunnXaaGm/06NHIyMjA7t271ZjSnnjiCVx00UXqewk3lfHlmvLycpxzzjlKtAu3sGDYmRC3Z88eHH/88fj2228xbNgwzJo1C5WVlSrfnN/vx3333Ycrr7yyDaywEDdz5kz885//hOSnk/bRRx+hpqYG559/vmLHRgIkQAIkQAIkQAI9IUC7jHZZT84NryEBEtBOgEKcdlbsSQIkECcCPQmBEKFq8uTJ2LJlC+666y7lrSaCmrQdO3YobzIR0DZt2oQjjzxS/f/WHmwieomQNXDgwDarEq86EdWOPvroNv9/48aNmDt3LgKBAERAay249bRYw1lnnaU878STTSqqijeftFWrVuHUU0+Fx+PB+vXrMWnSpJa5hFmNGzcOH3zwAXJyctTPZN5TpkxRHn2y/lGjRsVptzgsCZAACZAACZBAIhOgXUa7LJHPN9dGAnogQCFOD7vAOZCAyQn0xOATr7mzzz5beaG9/PLLEQQl5PQHP/gBLr/8cjz44IMRQty6deswbdq0bpG/4YYbcNttt0HCWkVEC7eeCHHiBSdimQh64pknnnetmwiL4hEn3n+PP/54hBD33nvvKW/A1u03v/kNHnroISXqXXjhhd1aGzuTAAmQAAmQAAmQgBCgXUa7jE8CCZBAfAlQiIsvX45OAiSggUBPDL5f/epXeOSRR/D8888rj7L2TcJGs7KylGfb6tWr2whxUr20pKSk05mJt93777+Pjz/+GKWlpcozTdrXX3+t/t+9996rcrj1Roh79tlnIfnuzj33XLz00ksRcxFPPvH4GzNmjMpVF27CyuFwoLGxETabrc11f/zjH5XwePvtt+O6667TQJ5dSIAESIAESIAESKAtAdpltMv4TJAACcSXAIW4+PLl6CRAAhoI9MTgO/300/H2229HHf3www9XApq0cGiq5FcL53xrP4AUbpAiD5s3b+50bMn5JvnkeiPESYEGEcskx5zksmvfJMR00KBBymNO8t61FuIKCgpU2G37Jjnpfvazn6m5yRzZSIAESIAESIAESKC7BGiX0S7r7plhfxIgge4RoBDXPV7sTQIkEAcCPTH4pIDDO++8owo5SEGHzlpmZqaqLiqtddXUFStWdHhJeFwJeb3mmmuUR1paWprKP/fnP/8Zl156aYTQ1ZPQ1GhCnBRekPx1HQlxUjVV1kIhLg6HkUOSAAmQAAmQgMkJ0C6LFOJol5n8oeDySSDGBCjExRgohyMBEug+gZ4YfJI77cknn1T54UQ009KiCXH19fUYMGCACmmVggztQz+vvfZa3HnnnTER4sKhqeeddx5efPHFiOmLR54UaegoNJVCnJbdZh8SIAESIAESIIGeEKBdRrusJ+eG15AACWgnQCFOOyv2JAESiBOBjgw+yeE2dOhQHHPMMaqKaPv2t7/9DT/60Y9w/vnnY/ny5ZpmFk2IC99TBDCpktq6+Xw+VX11+/btEUKcVGiV4gkSAiuhsO2bhInefPPNbYoohIs1iLedhJm2r9569dVXK0++joo1UIjTtN3sRAIkQAIkQAIk0AMCtMtol/Xg2PASEiCBbhCgENcNWOxKAiQQHwIdGXxer1eFZQ4ePBiSt629d1pzczMmTpyIrVu34pZbblFhpC6Xq2WCwWBQFVaQJmKetGhCnIwpoaziGSehq+HrpHiDCGP333+/Gqd9DjapUPrMM8/gzTffxBlnnKFJiJNOkovurbfewgUXXIAnnnhCFWGQJsUl5s2bh6amJqxfv155xoWbsKIQF59zyFFJgARIgARIgAQ6rppKu4x2GZ8NEiCB2BGgEBc7lhyJBEighwQ6EuJkqO9+97v4xz/+gfHjx2PKlClwOp1KHJOCBNLEA+3UU0/Fzp07kZ2djQkTJqh/pWKqVB2tqKhQ4tkVV1yhSYiTTlJx9Prrr1fC39y5c5GRkYFPPvkE5eXluOiii/CnP/0pQoh79dVXVXishLWKd1x6erq6n4hr0jryiJP/L+Gvxx13nJq/iGuzZs1CZWWlEgFF/GtfnVWuoRDXw0PGy0iABEiABEiABDQRoF1Gu0zTQWEnEiCBHhOgENdjdLyQBEggVgQ6M/hESJOqohL2KQKViFMLFy6EVAcNN0me+9BDD0HEMAkbFa+2nJwclVtNhLwf/vCHystNWjSPuPCYkr/tgQcewFdffYXk5GQce+yxyuvu008/7bQqqfR//PHH8c0338Dj8aihxCuvKyFOflZdXY1ly5bh9ddfR1FREVJSUjBjxgwsWrRIiXrtG4W4WJ06jkMCJEACJEACJNARAdpltMv4ZJAACcSXAIW4+PLl6CRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSgCFCI40EgARIgARIgARIgARIgARIgARIgARIgARIggT4g8P8B+DQNM7Wx1zcAAAAASUVORK5CYII=\" width=\"1000\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x12e9ae7d0>"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
-    "df_results = df_results.DataFrame()\n",
-    "\n",
-    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
-    "df_summary = df_summary.DataFrame()\n",
-    "\n",
-    "#set up plots\n",
-    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
-    "fig.legend(ncol=4)\n",
-    "fig.tight_layout()\n",
-    "\n",
-    "ax_metric = axs[0]\n",
-    "ax_loss = axs[1]\n",
-    "\n",
-    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_metric.set_xlabel('Iteration')\n",
-    "ax_metric.set_ylabel('Metric')\n",
-    "ax_metric.set_title('Validation metric curve')\n",
-    "\n",
-    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_loss.set_xlabel('Iteration')\n",
-    "ax_loss.set_ylabel('Loss')\n",
-    "ax_loss.set_title('Validation loss curve')\n",
-    "\n",
-    "iters = df_summary['metrics_iters'][0]\n",
-    "\n",
-    "for mst_key in df_results['mst_key']:\n",
-    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
-    "    df_output_info = df_output_info.DataFrame()\n",
-    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
-    "    validation_loss = df_output_info['validation_loss'][0]\n",
-    "    \n",
-    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
-    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
-    "\n",
-    "plt.legend()\n",
-    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"pred_prob\"></a>\n",
-    "# 2.  Predict probabilities\n",
-    "\n",
-    "Predict with probabilities for each class:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 30,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "30 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>prob_Iris-setosa</th>\n",
-       "        <th>prob_Iris-versicolor</th>\n",
-       "        <th>prob_Iris-virginica</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>0.9999416</td>\n",
-       "        <td>5.8360623e-05</td>\n",
-       "        <td>3.9093355e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>0.99998116</td>\n",
-       "        <td>1.8880675e-05</td>\n",
-       "        <td>2.5342377e-13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>0.99994814</td>\n",
-       "        <td>5.1881765e-05</td>\n",
-       "        <td>2.5964983e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>0.99996114</td>\n",
-       "        <td>3.8810744e-05</td>\n",
-       "        <td>1.176443e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>0.99992573</td>\n",
-       "        <td>7.4317446e-05</td>\n",
-       "        <td>5.4237942e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>19</td>\n",
-       "        <td>0.9999845</td>\n",
-       "        <td>1.5514812e-05</td>\n",
-       "        <td>1.034207e-13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>25</td>\n",
-       "        <td>0.99992156</td>\n",
-       "        <td>7.845682e-05</td>\n",
-       "        <td>3.7364413e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>26</td>\n",
-       "        <td>0.9998591</td>\n",
-       "        <td>0.00014085071</td>\n",
-       "        <td>2.0146884e-11</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>28</td>\n",
-       "        <td>0.9999734</td>\n",
-       "        <td>2.6542659e-05</td>\n",
-       "        <td>4.8342347e-13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>38</td>\n",
-       "        <td>0.99992573</td>\n",
-       "        <td>7.4317446e-05</td>\n",
-       "        <td>5.4237942e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>44</td>\n",
-       "        <td>0.99990726</td>\n",
-       "        <td>9.278052e-05</td>\n",
-       "        <td>6.9040372e-12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>45</td>\n",
-       "        <td>0.999964</td>\n",
-       "        <td>3.6013742e-05</td>\n",
-       "        <td>5.7615945e-13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>51</td>\n",
-       "        <td>0.00025041687</td>\n",
-       "        <td>0.99780566</td>\n",
-       "        <td>0.0019439155</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>53</td>\n",
-       "        <td>1.843269e-05</td>\n",
-       "        <td>0.9889865</td>\n",
-       "        <td>0.010995116</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>57</td>\n",
-       "        <td>2.4158675e-05</td>\n",
-       "        <td>0.99005336</td>\n",
-       "        <td>0.00992243</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>59</td>\n",
-       "        <td>0.00011159414</td>\n",
-       "        <td>0.9942708</td>\n",
-       "        <td>0.0056176083</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>62</td>\n",
-       "        <td>0.00014697485</td>\n",
-       "        <td>0.99189115</td>\n",
-       "        <td>0.007961868</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>69</td>\n",
-       "        <td>8.6406266e-07</td>\n",
-       "        <td>0.6961896</td>\n",
-       "        <td>0.30380967</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>75</td>\n",
-       "        <td>0.0005239165</td>\n",
-       "        <td>0.9965855</td>\n",
-       "        <td>0.0028905326</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>77</td>\n",
-       "        <td>1.5155997e-05</td>\n",
-       "        <td>0.97978914</td>\n",
-       "        <td>0.020195633</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>97</td>\n",
-       "        <td>0.00023696794</td>\n",
-       "        <td>0.9938279</td>\n",
-       "        <td>0.005935215</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>102</td>\n",
-       "        <td>1.3247301e-09</td>\n",
-       "        <td>0.18419608</td>\n",
-       "        <td>0.8158039</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>107</td>\n",
-       "        <td>2.5100556e-08</td>\n",
-       "        <td>0.30281228</td>\n",
-       "        <td>0.69718766</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>114</td>\n",
-       "        <td>3.2222575e-10</td>\n",
-       "        <td>0.08682407</td>\n",
-       "        <td>0.913176</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>118</td>\n",
-       "        <td>5.33606e-11</td>\n",
-       "        <td>0.34179842</td>\n",
-       "        <td>0.6582016</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>120</td>\n",
-       "        <td>9.134116e-09</td>\n",
-       "        <td>0.27099058</td>\n",
-       "        <td>0.72900945</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>122</td>\n",
-       "        <td>2.9710499e-09</td>\n",
-       "        <td>0.21993305</td>\n",
-       "        <td>0.7800669</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>132</td>\n",
-       "        <td>5.2177818e-09</td>\n",
-       "        <td>0.8370931</td>\n",
-       "        <td>0.16290687</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>146</td>\n",
-       "        <td>1.4404147e-09</td>\n",
-       "        <td>0.2293714</td>\n",
-       "        <td>0.7706286</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>147</td>\n",
-       "        <td>3.8019614e-09</td>\n",
-       "        <td>0.2240861</td>\n",
-       "        <td>0.77591395</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(3, 0.9999416, 5.8360623e-05, 3.9093355e-12),\n",
-       " (5, 0.99998116, 1.8880675e-05, 2.5342377e-13),\n",
-       " (7, 0.99994814, 5.1881765e-05, 2.5964983e-12),\n",
-       " (8, 0.99996114, 3.8810744e-05, 1.176443e-12),\n",
-       " (10, 0.99992573, 7.4317446e-05, 5.4237942e-12),\n",
-       " (19, 0.9999845, 1.5514812e-05, 1.034207e-13),\n",
-       " (25, 0.99992156, 7.845682e-05, 3.7364413e-12),\n",
-       " (26, 0.9998591, 0.00014085071, 2.0146884e-11),\n",
-       " (28, 0.9999734, 2.6542659e-05, 4.8342347e-13),\n",
-       " (38, 0.99992573, 7.4317446e-05, 5.4237942e-12),\n",
-       " (44, 0.99990726, 9.278052e-05, 6.9040372e-12),\n",
-       " (45, 0.999964, 3.6013742e-05, 5.7615945e-13),\n",
-       " (51, 0.00025041687, 0.99780566, 0.0019439155),\n",
-       " (53, 1.843269e-05, 0.9889865, 0.010995116),\n",
-       " (57, 2.4158675e-05, 0.99005336, 0.00992243),\n",
-       " (59, 0.00011159414, 0.9942708, 0.0056176083),\n",
-       " (62, 0.00014697485, 0.99189115, 0.007961868),\n",
-       " (69, 8.6406266e-07, 0.6961896, 0.30380967),\n",
-       " (75, 0.0005239165, 0.9965855, 0.0028905326),\n",
-       " (77, 1.5155997e-05, 0.97978914, 0.020195633),\n",
-       " (97, 0.00023696794, 0.9938279, 0.005935215),\n",
-       " (102, 1.3247301e-09, 0.18419608, 0.8158039),\n",
-       " (107, 2.5100556e-08, 0.30281228, 0.69718766),\n",
-       " (114, 3.2222575e-10, 0.08682407, 0.913176),\n",
-       " (118, 5.33606e-11, 0.34179842, 0.6582016),\n",
-       " (120, 9.134116e-09, 0.27099058, 0.72900945),\n",
-       " (122, 2.9710499e-09, 0.21993305, 0.7800669),\n",
-       " (132, 5.2177818e-09, 0.8370931, 0.16290687),\n",
-       " (146, 1.4404147e-09, 0.2293714, 0.7706286),\n",
-       " (147, 3.8019614e-09, 0.2240861, 0.77591395)]"
-      ]
-     },
-     "execution_count": 30,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS iris_predict;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
-    "                                   'iris_test',        -- test_table\n",
-    "                                   'id',               -- id column\n",
-    "                                   'attributes',       -- independent var\n",
-    "                                   'iris_predict',     -- output table\n",
-    "                                    'prob',            -- prediction type\n",
-    "                                    FALSE,             -- use gpus\n",
-    "                                    3                  -- mst_key to use\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM iris_predict ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"warm_start\"></a>\n",
-    "# 3.  Warm start\n",
-    "\n",
-    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 31,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit_multiple_model</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 31,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
-    "                                              'iris_multi_model',     -- model_output_table\n",
-    "                                              'mst_table',            -- model_selection_table\n",
-    "                                               3,                     -- num_iterations\n",
-    "                                               FALSE,                 -- use gpus\n",
-    "                                              'iris_test_packed',     -- validation dataset\n",
-    "                                               1,                     -- metrics compute frequency\n",
-    "                                               TRUE,                  -- warm start\n",
-    "                                              'Sophie L.',            -- name\n",
-    "                                              'Simple MLP for iris dataset'  -- description\n",
-    "                                             );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 32,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>model_info</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>warm_start</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>iris_train_packed</td>\n",
-       "        <td>iris_test_packed</td>\n",
-       "        <td>iris_multi_model</td>\n",
-       "        <td>iris_multi_model_info</td>\n",
-       "        <td>class_text</td>\n",
-       "        <td>attributes</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>True</td>\n",
-       "        <td>Sophie L.</td>\n",
-       "        <td>Simple MLP for iris dataset</td>\n",
-       "        <td>2019-12-18 22:37:57.948805</td>\n",
-       "        <td>2019-12-18 22:38:43.967187</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>3</td>\n",
-       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
-       "        <td>character varying</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>[1, 2, 3]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 3, 1, True, u'Sophie L.', u'Simple MLP for iris dataset', datetime.datetime(2019, 12, 18, 22, 37, 57, 948805), datetime.datetime(2019, 12, 18, 22, 38, 43, 967187), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [1, 2, 3])]"
-      ]
-     },
-     "execution_count": 32,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View performance of each model:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 33,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.17091703414917, 0.163390159606934, 0.155634164810181]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.958333313465</td>\n",
-       "        <td>0.31917694211</td>\n",
-       "        <td>[0.958333313465118, 0.958333313465118, 0.958333313465118]</td>\n",
-       "        <td>[0.348434448242188, 0.334388434886932, 0.319176942110062]</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>0.272621482611</td>\n",
-       "        <td>[1.0, 1.0, 1.0]</td>\n",
-       "        <td>[0.306039541959763, 0.28966349363327, 0.272621482610703]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.172316074371338, 0.188217163085938, 0.503840208053589]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.899999976158</td>\n",
-       "        <td>0.193531006575</td>\n",
-       "        <td>[0.958333313465118, 0.925000011920929, 0.899999976158142]</td>\n",
-       "        <td>[0.147025644779205, 0.144938006997108, 0.193531006574631]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.153077676892</td>\n",
-       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.132363379001617, 0.116448685526848, 0.153077676892281]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.147105932235718, 0.158121824264526, 0.174723863601685]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.100400544703</td>\n",
-       "        <td>[0.966666638851166, 0.908333361148834, 0.966666638851166]</td>\n",
-       "        <td>[0.112152323126793, 0.197978660464287, 0.100400544703007]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.0844493880868</td>\n",
-       "        <td>[0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.0945712551474571, 0.170254677534103, 0.0844493880867958]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.224463939666748, 0.412797927856445, 0.193319797515869]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.958333313465</td>\n",
-       "        <td>0.139601364732</td>\n",
-       "        <td>[0.966666638851166, 0.966666638851166, 0.958333313465118]</td>\n",
-       "        <td>[0.122705578804016, 0.0809410735964775, 0.139601364731789]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.131209135056</td>\n",
-       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.115778811275959, 0.0698963403701782, 0.131209135055542]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.160850048065186, 0.224483013153076, 0.163106918334961]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.0839553326368</td>\n",
-       "        <td>[0.966666638851166, 0.908333361148834, 0.966666638851166]</td>\n",
-       "        <td>[0.124577566981316, 0.196399554610252, 0.0839553326368332]</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.074150800705</td>\n",
-       "        <td>[0.966666638851166, 0.866666674613953, 0.966666638851166]</td>\n",
-       "        <td>[0.137340381741524, 0.232466518878937, 0.0741508007049561]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.14374303817749, 0.154287099838257, 0.17367696762085]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.966666638851</td>\n",
-       "        <td>0.0860244855285</td>\n",
-       "        <td>[0.966666638851166, 0.841666638851166, 0.966666638851166]</td>\n",
-       "        <td>[0.0824147835373878, 0.337884455919266, 0.0860244855284691]</td>\n",
-       "        <td>0.933333337307</td>\n",
-       "        <td>0.0704526007175</td>\n",
-       "        <td>[0.966666638851166, 0.866666674613953, 0.933333337306976]</td>\n",
-       "        <td>[0.0690516456961632, 0.295713990926743, 0.0704526007175446]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.155812978744507, 0.158360004425049, 0.159363031387329]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.833333313465</td>\n",
-       "        <td>0.344228476286</td>\n",
-       "        <td>[0.666666686534882, 0.675000011920929, 0.833333313465118]</td>\n",
-       "        <td>[1.01126325130463, 1.33927237987518, 0.344228476285934]</td>\n",
-       "        <td>0.800000011921</td>\n",
-       "        <td>0.305708706379</td>\n",
-       "        <td>[0.699999988079071, 0.699999988079071, 0.800000011920929]</td>\n",
-       "        <td>[1.02303433418274, 1.36952638626099, 0.305708706378937]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>11</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.187958955764771, 0.186024904251099, 0.501762866973877]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.725000023842</td>\n",
-       "        <td>0.423261642456</td>\n",
-       "        <td>[0.658333361148834, 0.658333361148834, 0.725000023841858]</td>\n",
-       "        <td>[0.46866175532341, 0.445532470941544, 0.423261642456055]</td>\n",
-       "        <td>0.699999988079</td>\n",
-       "        <td>0.378630697727</td>\n",
-       "        <td>[0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
-       "        <td>[0.422465175390244, 0.398104608058929, 0.378630697727203]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>1</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>0.7900390625</td>\n",
-       "        <td>[0.176413059234619, 0.169157981872559, 0.15624213218689]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.675000011921</td>\n",
-       "        <td>0.470171242952</td>\n",
-       "        <td>[0.641666650772095, 0.658333361148834, 0.675000011920929]</td>\n",
-       "        <td>[0.504463493824005, 0.486825525760651, 0.470171242952347]</td>\n",
-       "        <td>0.699999988079</td>\n",
-       "        <td>0.436036229134</td>\n",
-       "        <td>[0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
-       "        <td>[0.470719456672668, 0.452698260545731, 0.436036229133606]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>12</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.164397954940796, 0.486438035964966, 0.192479133605957]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.550000011921</td>\n",
-       "        <td>0.975017726421</td>\n",
-       "        <td>[0.508333325386047, 0.533333361148834, 0.550000011920929]</td>\n",
-       "        <td>[1.00239539146423, 0.986684203147888, 0.975017726421356]</td>\n",
-       "        <td>0.466666668653</td>\n",
-       "        <td>0.981434583664</td>\n",
-       "        <td>[0.5, 0.466666668653488, 0.466666668653488]</td>\n",
-       "        <td>[1.00223970413208, 0.989481270313263, 0.98143458366394]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>8</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=8,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.467766046524048, 0.198179006576538, 0.186810970306396]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.341666668653</td>\n",
-       "        <td>1.10613942146</td>\n",
-       "        <td>[0.316666662693024, 0.316666662693024, 0.341666668653488]</td>\n",
-       "        <td>[1.1275190114975, 1.10920584201813, 1.10613942146301]</td>\n",
-       "        <td>0.300000011921</td>\n",
-       "        <td>1.10817503929</td>\n",
-       "        <td>[0.400000005960464, 0.400000005960464, 0.300000011920929]</td>\n",
-       "        <td>[1.10070872306824, 1.09047472476959, 1.10817503929138]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=4,epochs=1</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>1.2197265625</td>\n",
-       "        <td>[0.467660903930664, 0.195011138916016, 0.185934066772461]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.341666668653</td>\n",
-       "        <td>1.10524618626</td>\n",
-       "        <td>[0.316666662693024, 0.341666668653488, 0.341666668653488]</td>\n",
-       "        <td>[1.10246300697327, 1.09976887702942, 1.10524618625641]</td>\n",
-       "        <td>0.300000011921</td>\n",
-       "        <td>1.10809886456</td>\n",
-       "        <td>[0.400000005960464, 0.300000011920929, 0.300000011920929]</td>\n",
-       "        <td>[1.09229254722595, 1.09808218479156, 1.10809886455536]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.17091703414917, 0.163390159606934, 0.155634164810181], [u'accuracy'], 0.958333313465, 0.31917694211, [0.958333313465118, 0.958333313465118, 0.958333313465118], [0.348434448242188, 0.334388434886932, 0.319176942110062], 1.0, 0.272621482611, [1.0, 1.0, 1.0], [0.306039541959763, 0.28966349363327, 0.272621482610703]),\n",
-       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.172316074371338, 0.188217163085938, 0.503840208053589], [u'accuracy'], 0.899999976158, 0.193531006575, [0.958333313465118, 0.925000011920929, 0.899999976158142], [0.147025644779205, 0.144938006997108, 0.193531006574631], 0.966666638851, 0.153077676892, [0.966666638851166, 0.966666638851166, 0.966666638851166], [0.132363379001617, 0.116448685526848, 0.153077676892281]),\n",
-       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.147105932235718, 0.158121824264526, 0.174723863601685], [u'accuracy'], 0.966666638851, 0.100400544703, [0.966666638851166, 0.908333361148834, 0.966666638851166], [0.112152323126793, 0.197978660464287, 0.100400544703007], 0.966666638851, 0.0844493880868, [0.933333337306976, 0.966666638851166, 0.966666638851166], [0.0945712551474571, 0.170254677534103, 0.0844493880867958]),\n",
-       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.224463939666748, 0.412797927856445, 0.193319797515869], [u'accuracy'], 0.958333313465, 0.139601364732, [0.966666638851166, 0.966666638851166, 0.958333313465118], [0.122705578804016, 0.0809410735964775, 0.139601364731789], 0.966666638851, 0.131209135056, [0.966666638851166, 0.966666638851166, 0.966666638851166], [0.115778811275959, 0.0698963403701782, 0.131209135055542]),\n",
-       " (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.160850048065186, 0.224483013153076, 0.163106918334961], [u'accuracy'], 0.966666638851, 0.0839553326368, [0.966666638851166, 0.908333361148834, 0.966666638851166], [0.124577566981316, 0.196399554610252, 0.0839553326368332], 0.966666638851, 0.074150800705, [0.966666638851166, 0.866666674613953, 0.966666638851166], [0.137340381741524, 0.232466518878937, 0.0741508007049561]),\n",
-       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.14374303817749, 0.154287099838257, 0.17367696762085], [u'accuracy'], 0.966666638851, 0.0860244855285, [0.966666638851166, 0.841666638851166, 0.966666638851166], [0.0824147835373878, 0.337884455919266, 0.0860244855284691], 0.933333337307, 0.0704526007175, [0.966666638851166, 0.866666674613953, 0.933333337306976], [0.0690516456961632, 0.295713990926743, 0.0704526007175446]),\n",
-       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.155812978744507, 0.158360004425049, 0.159363031387329], [u'accuracy'], 0.833333313465, 0.344228476286, [0.666666686534882, 0.675000011920929, 0.833333313465118], [1.01126325130463, 1.33927237987518, 0.344228476285934], 0.800000011921, 0.305708706379, [0.699999988079071, 0.699999988079071, 0.800000011920929], [1.02303433418274, 1.36952638626099, 0.305708706378937]),\n",
-       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.187958955764771, 0.186024904251099, 0.501762866973877], [u'accuracy'], 0.725000023842, 0.423261642456, [0.658333361148834, 0.658333361148834, 0.725000023841858], [0.46866175532341, 0.445532470941544, 0.423261642456055], 0.699999988079, 0.378630697727, [0.699999988079071, 0.699999988079071, 0.699999988079071], [0.422465175390244, 0.398104608058929, 0.378630697727203]),\n",
-       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.176413059234619, 0.169157981872559, 0.15624213218689], [u'accuracy'], 0.675000011921, 0.470171242952, [0.641666650772095, 0.658333361148834, 0.675000011920929], [0.504463493824005, 0.486825525760651, 0.470171242952347], 0.699999988079, 0.436036229134, [0.699999988079071, 0.699999988079071, 0.699999988079071], [0.470719456672668, 0.452698260545731, 0.436036229133606]),\n",
-       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.164397954940796, 0.486438035964966, 0.192479133605957], [u'accuracy'], 0.550000011921, 0.975017726421, [0.508333325386047, 0.533333361148834, 0.550000011920929], [1.00239539146423, 0.986684203147888, 0.975017726421356], 0.466666668653, 0.981434583664, [0.5, 0.466666668653488, 0.466666668653488], [1.00223970413208, 0.989481270313263, 0.98143458366394]),\n",
-       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.467766046524048, 0.198179006576538, 0.186810970306396], [u'accuracy'], 0.341666668653, 1.10613942146, [0.316666662693024, 0.316666662693024, 0.341666668653488], [1.1275190114975, 1.10920584201813, 1.10613942146301], 0.300000011921, 1.10817503929, [0.400000005960464, 0.400000005960464, 0.300000011920929], [1.10070872306824, 1.09047472476959, 1.10817503929138]),\n",
-       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.467660903930664, 0.195011138916016, 0.185934066772461], [u'accuracy'], 0.341666668653, 1.10524618626, [0.316666662693024, 0.341666668653488, 0.341666668653488], [1.10246300697327, 1.09976887702942, 1.10524618625641], 0.300000011921, 1.10809886456, [0.400000005960464, 0.300000011920929, 0.300000011920929], [1.09229254722595, 1.09808218479156, 1.10809886455536])]"
-      ]
-     },
-     "execution_count": 33,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Plot validation results:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 34,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "7 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "\n",
-       "mpl.get_websocket_type = function() {\n",
-       "    if (typeof(WebSocket) !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert('Your browser does not have WebSocket support.' +\n",
-       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "              'Firefox 4 and 5 are also supported but you ' +\n",
-       "              'have to enable WebSockets in about:config.');\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent = (\n",
-       "                \"This browser does not support binary websocket messages. \" +\n",
-       "                    \"Performance may be slow.\");\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = $('<div/>');\n",
-       "    this._root_extra_style(this.root)\n",
-       "    this.root.attr('style', 'display: inline-block');\n",
-       "\n",
-       "    $(parent_element).append(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen =  function () {\n",
-       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
-       "            fig.send_message(\"send_image_mode\", {});\n",
-       "            if (mpl.ratio != 1) {\n",
-       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
-       "            }\n",
-       "            fig.send_message(\"refresh\", {});\n",
-       "        }\n",
-       "\n",
-       "    this.imageObj.onload = function() {\n",
-       "            if (fig.image_mode == 'full') {\n",
-       "                // Full images could contain transparency (where diff images\n",
-       "                // almost always do), so we need to clear the canvas so that\n",
-       "                // there is no ghosting.\n",
-       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "            }\n",
-       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "        };\n",
-       "\n",
-       "    this.imageObj.onunload = function() {\n",
-       "        fig.ws.close();\n",
-       "    }\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function() {\n",
-       "    var titlebar = $(\n",
-       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
-       "        'ui-helper-clearfix\"/>');\n",
-       "    var titletext = $(\n",
-       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
-       "        'text-align: center; padding: 3px;\"/>');\n",
-       "    titlebar.append(titletext)\n",
-       "    this.root.append(titlebar);\n",
-       "    this.header = titletext[0];\n",
-       "}\n",
-       "\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = $('<div/>');\n",
-       "\n",
-       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
-       "\n",
-       "    function canvas_keyboard_event(event) {\n",
-       "        return fig.key_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
-       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
-       "    this.canvas_div = canvas_div\n",
-       "    this._canvas_extra_style(canvas_div)\n",
-       "    this.root.append(canvas_div);\n",
-       "\n",
-       "    var canvas = $('<canvas/>');\n",
-       "    canvas.addClass('mpl-canvas');\n",
-       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
-       "\n",
-       "    this.canvas = canvas[0];\n",
-       "    this.context = canvas[0].getContext(\"2d\");\n",
-       "\n",
-       "    var backingStore = this.context.backingStorePixelRatio ||\n",
-       "\tthis.context.webkitBackingStorePixelRatio ||\n",
-       "\tthis.context.mozBackingStorePixelRatio ||\n",
-       "\tthis.context.msBackingStorePixelRatio ||\n",
-       "\tthis.context.oBackingStorePixelRatio ||\n",
-       "\tthis.context.backingStorePixelRatio || 1;\n",
-       "\n",
-       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband = $('<canvas/>');\n",
-       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
-       "\n",
-       "    var pass_mouse_events = true;\n",
-       "\n",
-       "    canvas_div.resizable({\n",
-       "        start: function(event, ui) {\n",
-       "            pass_mouse_events = false;\n",
-       "        },\n",
-       "        resize: function(event, ui) {\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "        stop: function(event, ui) {\n",
-       "            pass_mouse_events = true;\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "    });\n",
-       "\n",
-       "    function mouse_event_fn(event) {\n",
-       "        if (pass_mouse_events)\n",
-       "            return fig.mouse_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
-       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
-       "\n",
-       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
-       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
-       "\n",
-       "    canvas_div.on(\"wheel\", function (event) {\n",
-       "        event = event.originalEvent;\n",
-       "        event['data'] = 'scroll'\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        mouse_event_fn(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.append(canvas);\n",
-       "    canvas_div.append(rubberband);\n",
-       "\n",
-       "    this.rubberband = rubberband;\n",
-       "    this.rubberband_canvas = rubberband[0];\n",
-       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
-       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
-       "\n",
-       "    this._resize_canvas = function(width, height) {\n",
-       "        // Keep the size of the canvas, canvas container, and rubber band\n",
-       "        // canvas in synch.\n",
-       "        canvas_div.css('width', width)\n",
-       "        canvas_div.css('height', height)\n",
-       "\n",
-       "        canvas.attr('width', width * mpl.ratio);\n",
-       "        canvas.attr('height', height * mpl.ratio);\n",
-       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
-       "\n",
-       "        rubberband.attr('width', width);\n",
-       "        rubberband.attr('height', height);\n",
-       "    }\n",
-       "\n",
-       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
-       "    // upon first draw.\n",
-       "    this._resize_canvas(600, 600);\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus () {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            // put a spacer in here.\n",
-       "            continue;\n",
-       "        }\n",
-       "        var button = $('<button/>');\n",
-       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
-       "                        'ui-button-icon-only');\n",
-       "        button.attr('role', 'button');\n",
-       "        button.attr('aria-disabled', 'false');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "\n",
-       "        var icon_img = $('<span/>');\n",
-       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
-       "        icon_img.addClass(image);\n",
-       "        icon_img.addClass('ui-corner-all');\n",
-       "\n",
-       "        var tooltip_span = $('<span/>');\n",
-       "        tooltip_span.addClass('ui-button-text');\n",
-       "        tooltip_span.html(tooltip);\n",
-       "\n",
-       "        button.append(icon_img);\n",
-       "        button.append(tooltip_span);\n",
-       "\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker_span = $('<span/>');\n",
-       "\n",
-       "    var fmt_picker = $('<select/>');\n",
-       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
-       "    fmt_picker_span.append(fmt_picker);\n",
-       "    nav_element.append(fmt_picker_span);\n",
-       "    this.format_dropdown = fmt_picker[0];\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = $(\n",
-       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
-       "        fmt_picker.append(option)\n",
-       "    }\n",
-       "\n",
-       "    // Add hover states to the ui-buttons\n",
-       "    $( \".ui-button\" ).hover(\n",
-       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
-       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
-       "    );\n",
-       "\n",
-       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function(type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function() {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1]);\n",
-       "        fig.send_message(\"refresh\", {});\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
-       "    var x0 = msg['x0'] / mpl.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
-       "    var x1 = msg['x1'] / mpl.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch(cursor)\n",
-       "    {\n",
-       "    case 0:\n",
-       "        cursor = 'pointer';\n",
-       "        break;\n",
-       "    case 1:\n",
-       "        cursor = 'default';\n",
-       "        break;\n",
-       "    case 2:\n",
-       "        cursor = 'crosshair';\n",
-       "        break;\n",
-       "    case 3:\n",
-       "        cursor = 'move';\n",
-       "        break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message(\"ack\", {});\n",
-       "}\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = \"image/png\";\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src);\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data);\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig[\"handle_\" + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function(e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e)\n",
-       "        e = window.event;\n",
-       "    if (e.target)\n",
-       "        targ = e.target;\n",
-       "    else if (e.srcElement)\n",
-       "        targ = e.srcElement;\n",
-       "    if (targ.nodeType == 3) // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "\n",
-       "    // jQuery normalizes the pageX and pageY\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    // offset() returns the position of the element relative to the document\n",
-       "    var x = e.pageX - $(targ).offset().left;\n",
-       "    var y = e.pageY - $(targ).offset().top;\n",
-       "\n",
-       "    return {\"x\": x, \"y\": y};\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys (original) {\n",
-       "  return Object.keys(original).reduce(function (obj, key) {\n",
-       "    if (typeof original[key] !== 'object')\n",
-       "        obj[key] = original[key]\n",
-       "    return obj;\n",
-       "  }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event)\n",
-       "\n",
-       "    if (name === 'button_press')\n",
-       "    {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * mpl.ratio;\n",
-       "    var y = canvas_pos.y * mpl.ratio;\n",
-       "\n",
-       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
-       "                             step: event.step,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function(event, name) {\n",
-       "\n",
-       "    // Prevent repeat events\n",
-       "    if (name == 'key_press')\n",
-       "    {\n",
-       "        if (event.which === this._key)\n",
-       "            return;\n",
-       "        else\n",
-       "            this._key = event.which;\n",
-       "    }\n",
-       "    if (name == 'key_release')\n",
-       "        this._key = null;\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which != 17)\n",
-       "        value += \"ctrl+\";\n",
-       "    if (event.altKey && event.which != 18)\n",
-       "        value += \"alt+\";\n",
-       "    if (event.shiftKey && event.which != 16)\n",
-       "        value += \"shift+\";\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, {key: value,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
-       "    if (name == 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message(\"toolbar_button\", {name: name});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function() {\n",
-       "        comm.close()\n",
-       "    };\n",
-       "    ws.send = function(m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function(msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data'])\n",
-       "    });\n",
-       "    return ws;\n",
-       "}\n",
-       "\n",
-       "mpl.mpl_figure_comm = function(comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = $(\"#\" + id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm)\n",
-       "\n",
-       "    function ondownload(figure, format) {\n",
-       "        window.open(figure.imageObj.src);\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy,\n",
-       "                           ondownload,\n",
-       "                           element.get(0));\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element.get(0);\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "\n",
-       "    var output_index = fig.cell_info[2]\n",
-       "    var cell = fig.cell_info[0];\n",
-       "\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
-       "    var width = fig.canvas.width/mpl.ratio\n",
-       "    fig.root.unbind('remove')\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable()\n",
-       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
-       "    fig.close_ws(fig, msg);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width/mpl.ratio\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message(\"ack\", {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items){\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) { continue; };\n",
-       "\n",
-       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
-       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
-       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
-       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
-       "    buttongrp.append(button);\n",
-       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
-       "    titlebar.prepend(buttongrp);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(el){\n",
-       "    var fig = this\n",
-       "    el.on(\"remove\", function(){\n",
-       "\tfig.close_ws(fig, {});\n",
-       "    });\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.attr('tabindex', 0)\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "    else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager)\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which == 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        event.shiftKey = false;\n",
-       "        // Send a \"J\" for go to next cell\n",
-       "        event.which = 74;\n",
-       "        event.keyCode = 74;\n",
-       "        manager.command_mode();\n",
-       "        manager.handle_keydown(event);\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.find_output_cell = function(html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i=0; i<ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code'){\n",
-       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] == html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel != null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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\" width=\"1000\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<matplotlib.legend.Legend at 0x130da4150>"
-      ]
-     },
-     "execution_count": 34,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
-    "df_results = df_results.DataFrame()\n",
-    "\n",
-    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
-    "df_summary = df_summary.DataFrame()\n",
-    "\n",
-    "#set up plots\n",
-    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
-    "fig.legend(ncol=4)\n",
-    "fig.tight_layout()\n",
-    "\n",
-    "ax_metric = axs[0]\n",
-    "ax_loss = axs[1]\n",
-    "\n",
-    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_metric.set_xlabel('Iteration')\n",
-    "ax_metric.set_ylabel('Metric')\n",
-    "ax_metric.set_title('Validation metric curve')\n",
-    "\n",
-    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_loss.set_xlabel('Iteration')\n",
-    "ax_loss.set_ylabel('Loss')\n",
-    "ax_loss.set_title('Validation loss curve')\n",
-    "\n",
-    "iters = df_summary['metrics_iters'][0]\n",
-    "\n",
-    "for mst_key in df_results['mst_key']:\n",
-    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
-    "    df_output_info = df_output_info.DataFrame()\n",
-    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
-    "    validation_loss = df_output_info['validation_loss'][0]\n",
-    "    \n",
-    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
-    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
-    "\n",
-    "plt.legend()\n",
-    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.16"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-transfer-learning-v3.ipynb b/community-artifacts/Deep-learning/MADlib-Keras-transfer-learning-v3.ipynb
deleted file mode 100644
index d025b81..0000000
--- a/community-artifacts/Deep-learning/MADlib-Keras-transfer-learning-v3.ipynb
+++ /dev/null
@@ -1,1635 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Transfer Learning Using Keras and MADlib\n",
-    "\n",
-    "This is a transfer learning example based on https://keras.io/examples/mnist_transfer_cnn/ \n",
-    "\n",
-    "To load images into tables we use the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning which uses the Python Imaging Library so supports multiple formats http://www.pythonware.com/products/pil/\n",
-    "\n",
-    "## Table of contents\n",
-    "<a href=\"#import_libraries\">1. Import libraries</a>\n",
-    "\n",
-    "<a href=\"#load_and_prepare_data\">2. Load and prepare data</a>\n",
-    "\n",
-    "<a href=\"#image_preproc\">3. Call image preprocessor</a>\n",
-    "\n",
-    "<a href=\"#define_and_load_model\">4. Define and load model architecture</a>\n",
-    "\n",
-    "<a href=\"#train\">5. Train</a>\n",
-    "\n",
-    "<a href=\"#transfer_learning\">6. Transfer learning</a>"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "The sql extension is already loaded. To reload it, use:\n",
-      "  %reload_ext sql\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "        \n",
-    "# PostgreSQL local\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"import_libraries\"></a>\n",
-    "# 1.  Import libraries\n",
-    "From https://keras.io/examples/mnist_transfer_cnn/ import libraries and define some params"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from __future__ import print_function\n",
-    "\n",
-    "import datetime\n",
-    "import keras\n",
-    "from keras.datasets import mnist\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense, Dropout, Activation, Flatten\n",
-    "from keras.layers import Conv2D, MaxPooling2D\n",
-    "from keras import backend as K\n",
-    "\n",
-    "now = datetime.datetime.now\n",
-    "\n",
-    "batch_size = 128\n",
-    "num_classes = 5\n",
-    "epochs = 5\n",
-    "\n",
-    "# input image dimensions\n",
-    "img_rows, img_cols = 28, 28\n",
-    "# number of convolutional filters to use\n",
-    "filters = 32\n",
-    "# size of pooling area for max pooling\n",
-    "pool_size = 2\n",
-    "# convolution kernel size\n",
-    "kernel_size = 3\n",
-    "\n",
-    "if K.image_data_format() == 'channels_first':\n",
-    "    input_shape = (1, img_rows, img_cols)\n",
-    "else:\n",
-    "    input_shape = (img_rows, img_cols, 1)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Others needed in this workbook"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import pandas as pd\n",
-    "import numpy as np"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_and_prepare_data\"></a>\n",
-    "# 2.  Load and prepare data\n",
-    "\n",
-    "First load MNIST data from Keras, consisting of 60,000 28x28 grayscale images of the 10 digits, along with a test set of 10,000 images."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "(4861, 28, 28)\n",
-      "(4861, 28, 28, 1)\n"
-     ]
-    }
-   ],
-   "source": [
-    "# the data, split between train and test sets\n",
-    "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
-    "\n",
-    "# create two datasets one with digits below 5 and one with 5 and above\n",
-    "x_train_lt5 = x_train[y_train < 5]\n",
-    "y_train_lt5 = y_train[y_train < 5]\n",
-    "x_test_lt5 = x_test[y_test < 5]\n",
-    "y_test_lt5 = y_test[y_test < 5]\n",
-    "\n",
-    "x_train_gte5 = x_train[y_train >= 5]\n",
-    "y_train_gte5 = y_train[y_train >= 5] - 5\n",
-    "x_test_gte5 = x_test[y_test >= 5]\n",
-    "y_test_gte5 = y_test[y_test >= 5] - 5\n",
-    "\n",
-    "# reshape to match model architecture\n",
-    "print(x_test_gte5.shape)\n",
-    "x_train_lt5=x_train_lt5.reshape(len(x_train_lt5), *input_shape)\n",
-    "x_test_lt5 = x_test_lt5.reshape(len(x_test_lt5), *input_shape)\n",
-    "x_train_gte5=x_train_gte5.reshape(len(x_train_gte5), *input_shape)\n",
-    "x_test_gte5 = x_test_gte5.reshape(len(x_test_gte5), *input_shape)\n",
-    "print(x_test_gte5.shape)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load datasets into tables using image loader scripts called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# MADlib tools directory\n",
-    "import sys\n",
-    "import os\n",
-    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
-    "sys.path.append(madlib_site_dir)\n",
-    "\n",
-    "# Import image loader module\n",
-    "from madlib_image_loader import ImageLoader, DbCredentials"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Specify database credentials, for connecting to db\n",
-    "#db_creds = DbCredentials(user='gpadmin',\n",
-    "#                         host='35.239.240.26',\n",
-    "#                         port='5432',\n",
-    "#                         password='')\n",
-    "\n",
-    "db_creds = DbCredentials(user='gpadmin',\n",
-    "                         host='localhost',\n",
-    "                         port='8000',\n",
-    "                         password='')"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Initialize ImageLoader (increase num_workers to run faster)\n",
-    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE train_lt5 (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table train_lt5 in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-1 [pid 32140]\n",
-      "PoolWorker-1: Created temporary directory /tmp/madlib_bKeQrDW6UN\n",
-      "Initializing PoolWorker-2 [pid 32141]\n",
-      "PoolWorker-2: Created temporary directory /tmp/madlib_QnitPXnQvV\n",
-      "Initializing PoolWorker-3 [pid 32142]\n",
-      "PoolWorker-3: Created temporary directory /tmp/madlib_DvxZnkrs2R\n",
-      "Initializing PoolWorker-4 [pid 32143]\n",
-      "PoolWorker-4: Created temporary directory /tmp/madlib_qpVWvqPyAv\n",
-      "Initializing PoolWorker-5 [pid 32144]\n",
-      "PoolWorker-5: Created temporary directory /tmp/madlib_L4Q5odzoED\n",
-      "PoolWorker-4: Connected to madlib db.\n",
-      "PoolWorker-3: Connected to madlib db.\n",
-      "PoolWorker-2: Connected to madlib db.\n",
-      "PoolWorker-1: Connected to madlib db.\n",
-      "PoolWorker-5: Connected to madlib db.\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50000.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50000.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50000.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50000.tmp\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50000.tmp\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50001.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50001.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50001.tmp\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50001.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50001.tmp\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50002.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50002.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50002.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50002.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50002.tmp\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50003.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50003.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50003.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50003.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50003.tmp\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50004.tmp\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50004.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50004.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50004.tmp\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50004.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_QnitPXnQvV/train_lt50005.tmp\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_L4Q5odzoED/train_lt50005.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Wrote 596 images to /tmp/madlib_QnitPXnQvV/train_lt50006.tmp\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_bKeQrDW6UN/train_lt50005.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_qpVWvqPyAv/train_lt50005.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_DvxZnkrs2R/train_lt50005.tmp\n",
-      "PoolWorker-5: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Loaded 596 images into train_lt5\n",
-      "PoolWorker-1: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-3: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-4: Loaded 1000 images into train_lt5\n",
-      "PoolWorker-2: Removed temporary directory /tmp/madlib_QnitPXnQvV\n",
-      "PoolWorker-5: Removed temporary directory /tmp/madlib_L4Q5odzoED\n",
-      "PoolWorker-4: Removed temporary directory /tmp/madlib_qpVWvqPyAv\n",
-      "PoolWorker-1: Removed temporary directory /tmp/madlib_bKeQrDW6UN\n",
-      "PoolWorker-3: Removed temporary directory /tmp/madlib_DvxZnkrs2R\n",
-      "Done!  Loaded 30596 images in 82.6620368958s\n",
-      "5 workers terminated.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE test_lt5 (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table test_lt5 in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-6 [pid 32147]\n",
-      "PoolWorker-6: Created temporary directory /tmp/madlib_qiEVuC6H2f\n",
-      "Initializing PoolWorker-7 [pid 32148]\n",
-      "PoolWorker-7: Created temporary directory /tmp/madlib_01Yrlb4kiZ\n",
-      "Initializing PoolWorker-8 [pid 32149]\n",
-      "PoolWorker-8: Created temporary directory /tmp/madlib_SjOxjuWfuf\n",
-      "Initializing PoolWorker-9 [pid 32150]\n",
-      "PoolWorker-9: Created temporary directory /tmp/madlib_Jc01ED7LdY\n",
-      "Initializing PoolWorker-10 [pid 32151]\n",
-      "PoolWorker-10: Created temporary directory /tmp/madlib_q26dtBioOd\n",
-      "PoolWorker-7: Connected to madlib db.\n",
-      "PoolWorker-8: Connected to madlib db.\n",
-      "PoolWorker-6: Connected to madlib db.\n",
-      "PoolWorker-10: Connected to madlib db.\n",
-      "PoolWorker-9: Connected to madlib db.\n",
-      "PoolWorker-10: Wrote 1000 images to /tmp/madlib_q26dtBioOd/test_lt50000.tmp\n",
-      "PoolWorker-8: Wrote 1000 images to /tmp/madlib_SjOxjuWfuf/test_lt50000.tmp\n",
-      "PoolWorker-9: Wrote 1000 images to /tmp/madlib_Jc01ED7LdY/test_lt50000.tmp\n",
-      "PoolWorker-7: Wrote 1000 images to /tmp/madlib_01Yrlb4kiZ/test_lt50000.tmp\n",
-      "PoolWorker-6: Wrote 1000 images to /tmp/madlib_qiEVuC6H2f/test_lt50000.tmp\n",
-      "PoolWorker-10: Loaded 1000 images into test_lt5\n",
-      "PoolWorker-10: Wrote 139 images to /tmp/madlib_q26dtBioOd/test_lt50001.tmp\n",
-      "PoolWorker-8: Loaded 1000 images into test_lt5\n",
-      "PoolWorker-10: Loaded 139 images into test_lt5\n",
-      "PoolWorker-9: Loaded 1000 images into test_lt5\n",
-      "PoolWorker-6: Loaded 1000 images into test_lt5\n",
-      "PoolWorker-7: Loaded 1000 images into test_lt5\n",
-      "PoolWorker-8: Removed temporary directory /tmp/madlib_SjOxjuWfuf\n",
-      "PoolWorker-10: Removed temporary directory /tmp/madlib_q26dtBioOd\n",
-      "PoolWorker-7: Removed temporary directory /tmp/madlib_01Yrlb4kiZ\n",
-      "PoolWorker-9: Removed temporary directory /tmp/madlib_Jc01ED7LdY\n",
-      "PoolWorker-6: Removed temporary directory /tmp/madlib_qiEVuC6H2f\n",
-      "Done!  Loaded 5139 images in 16.0947310925s\n",
-      "5 workers terminated.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE train_gte5 (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table train_gte5 in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-11 [pid 32152]\n",
-      "PoolWorker-11: Created temporary directory /tmp/madlib_W4MvrjG6AB\n",
-      "Initializing PoolWorker-12 [pid 32153]\n",
-      "PoolWorker-12: Created temporary directory /tmp/madlib_xjoS5riF15\n",
-      "Initializing PoolWorker-13 [pid 32154]\n",
-      "PoolWorker-13: Created temporary directory /tmp/madlib_LRF1X1Nbjw\n",
-      "Initializing PoolWorker-14 [pid 32155]\n",
-      "PoolWorker-14: Created temporary directory /tmp/madlib_81JT2Bqk6q\n",
-      "Initializing PoolWorker-15 [pid 32156]\n",
-      "PoolWorker-15: Created temporary directory /tmp/madlib_cw8IBZoiUb\n",
-      "PoolWorker-11: Connected to madlib db.\n",
-      "PoolWorker-14: Connected to madlib db.\n",
-      "PoolWorker-13: Connected to madlib db.\n",
-      "PoolWorker-12: Connected to madlib db.\n",
-      "PoolWorker-15: Connected to madlib db.\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50000.tmp\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50000.tmp\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50000.tmp\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50000.tmp\n",
-      "PoolWorker-14: Wrote 1000 images to /tmp/madlib_81JT2Bqk6q/train_gte50000.tmp\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50001.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-14: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50001.tmp\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50001.tmp\n",
-      "PoolWorker-14: Wrote 1000 images to /tmp/madlib_81JT2Bqk6q/train_gte50001.tmp\n",
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50001.tmp\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50002.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50002.tmp\n",
-      "PoolWorker-14: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50002.tmp\n",
-      "PoolWorker-14: Wrote 1000 images to /tmp/madlib_81JT2Bqk6q/train_gte50002.tmp\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50002.tmp\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50003.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50003.tmp\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50003.tmp\n",
-      "PoolWorker-14: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-14: Wrote 1000 images to /tmp/madlib_81JT2Bqk6q/train_gte50003.tmp\n",
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50003.tmp\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50004.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50004.tmp\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50004.tmp\n",
-      "PoolWorker-14: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Wrote 1000 images to /tmp/madlib_W4MvrjG6AB/train_gte50005.tmp\n",
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50004.tmp\n",
-      "PoolWorker-14: Wrote 1000 images to /tmp/madlib_81JT2Bqk6q/train_gte50004.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-13: Wrote 1000 images to /tmp/madlib_LRF1X1Nbjw/train_gte50005.tmp\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Wrote 1000 images to /tmp/madlib_xjoS5riF15/train_gte50005.tmp\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-14: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-14: Wrote 404 images to /tmp/madlib_81JT2Bqk6q/train_gte50005.tmp\n",
-      "PoolWorker-15: Wrote 1000 images to /tmp/madlib_cw8IBZoiUb/train_gte50005.tmp\n",
-      "PoolWorker-13: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-12: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-14: Loaded 404 images into train_gte5\n",
-      "PoolWorker-15: Loaded 1000 images into train_gte5\n",
-      "PoolWorker-11: Removed temporary directory /tmp/madlib_W4MvrjG6AB\n",
-      "PoolWorker-14: Removed temporary directory /tmp/madlib_81JT2Bqk6q\n",
-      "PoolWorker-13: Removed temporary directory /tmp/madlib_LRF1X1Nbjw\n",
-      "PoolWorker-12: Removed temporary directory /tmp/madlib_xjoS5riF15\n",
-      "PoolWorker-15: Removed temporary directory /tmp/madlib_cw8IBZoiUb\n",
-      "Done!  Loaded 29404 images in 68.5753850937s\n",
-      "5 workers terminated.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE test_gte5 (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table test_gte5 in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-16 [pid 32159]\n",
-      "PoolWorker-16: Created temporary directory /tmp/madlib_u7tI3bg7jU\n",
-      "Initializing PoolWorker-17 [pid 32160]\n",
-      "PoolWorker-17: Created temporary directory /tmp/madlib_2bBkL2sPMZ\n",
-      "Initializing PoolWorker-18 [pid 32161]\n",
-      "PoolWorker-18: Created temporary directory /tmp/madlib_kOLOpYin2F\n",
-      "Initializing PoolWorker-19 [pid 32162]\n",
-      "PoolWorker-19: Created temporary directory /tmp/madlib_Nd5O8pUMIS\n",
-      "Initializing PoolWorker-20 [pid 32163]\n",
-      "PoolWorker-20: Created temporary directory /tmp/madlib_TmWQybahi2\n",
-      "PoolWorker-16: Connected to madlib db.\n",
-      "PoolWorker-20: Connected to madlib db.\n",
-      "PoolWorker-18: Connected to madlib db.\n",
-      "PoolWorker-19: Connected to madlib db.\n",
-      "PoolWorker-17: Connected to madlib db.\n",
-      "PoolWorker-17: Wrote 861 images to /tmp/madlib_2bBkL2sPMZ/test_gte50000.tmp\n",
-      "PoolWorker-16: Wrote 1000 images to /tmp/madlib_u7tI3bg7jU/test_gte50000.tmp\n",
-      "PoolWorker-18: Wrote 1000 images to /tmp/madlib_kOLOpYin2F/test_gte50000.tmp\n",
-      "PoolWorker-20: Wrote 1000 images to /tmp/madlib_TmWQybahi2/test_gte50000.tmp\n",
-      "PoolWorker-19: Wrote 1000 images to /tmp/madlib_Nd5O8pUMIS/test_gte50000.tmp\n",
-      "PoolWorker-17: Loaded 861 images into test_gte5\n",
-      "PoolWorker-16: Loaded 1000 images into test_gte5\n",
-      "PoolWorker-20: Loaded 1000 images into test_gte5\n",
-      "PoolWorker-19: Loaded 1000 images into test_gte5\n",
-      "PoolWorker-18: Loaded 1000 images into test_gte5\n",
-      "PoolWorker-20: Removed temporary directory /tmp/madlib_TmWQybahi2\n",
-      "PoolWorker-16: Removed temporary directory /tmp/madlib_u7tI3bg7jU\n",
-      "PoolWorker-17: Removed temporary directory /tmp/madlib_2bBkL2sPMZ\n",
-      "PoolWorker-19: Removed temporary directory /tmp/madlib_Nd5O8pUMIS\n",
-      "PoolWorker-18: Removed temporary directory /tmp/madlib_kOLOpYin2F\n",
-      "Done!  Loaded 4861 images in 11.068821907s\n",
-      "5 workers terminated.\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Drop tables\n",
-    "%sql DROP TABLE IF EXISTS train_lt5, test_lt5, train_gte5, test_gte5\n",
-    "\n",
-    "# Save images to temporary directories and load into database\n",
-    "iloader.load_dataset_from_np(x_train_lt5, y_train_lt5, 'train_lt5', append=False)\n",
-    "iloader.load_dataset_from_np(x_test_lt5, y_test_lt5, 'test_lt5', append=False)\n",
-    "iloader.load_dataset_from_np(x_train_gte5, y_train_gte5, 'train_gte5', append=False)\n",
-    "iloader.load_dataset_from_np(x_test_gte5, y_test_gte5, 'test_gte5', append=False)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"image_preproc\"></a>\n",
-    "# 3. Call image preprocessor\n",
-    "\n",
-    "Transforms from one image per row to multiple images per row for batch optimization.  Also normalizes and one-hot encodes.\n",
-    "\n",
-    "Training dataset < 5"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 23,
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>train_lt5</td>\n",
-       "        <td>train_lt5_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>text</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>1000</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'train_lt5', u'train_lt5_packed', u'y', u'x', u'text', [u'0', u'1', u'2', u'3', u'4'], 1000, 255.0, 5, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 23,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS train_lt5_packed, train_lt5_packed_summary;\n",
-    "\n",
-    "SELECT madlib.training_preprocessor_dl('train_lt5',               -- Source table\n",
-    "                                       'train_lt5_packed',        -- Output table\n",
-    "                                       'y',                       -- Dependent variable\n",
-    "                                       'x',                       -- Independent variable\n",
-    "                                        1000,                     -- Buffer size\n",
-    "                                        255                       -- Normalizing constant\n",
-    "                                        );\n",
-    "\n",
-    "SELECT * FROM train_lt5_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Test dataset < 5"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 24,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>test_lt5</td>\n",
-       "        <td>test_lt5_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>text</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>2570</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'test_lt5', u'test_lt5_packed', u'y', u'x', u'text', [u'0', u'1', u'2', u'3', u'4'], 2570, 255.0, 5, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 24,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS test_lt5_packed, test_lt5_packed_summary;\n",
-    "\n",
-    "SELECT madlib.validation_preprocessor_dl('test_lt5',                -- Source table\n",
-    "                                         'test_lt5_packed',         -- Output table\n",
-    "                                         'y',                       -- Dependent variable\n",
-    "                                         'x',                       -- Independent variable\n",
-    "                                         'train_lt5_packed'         -- Training preproc table\n",
-    "                                        );\n",
-    "\n",
-    "SELECT * FROM test_lt5_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Training dataset >= 5"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>train_gte5</td>\n",
-       "        <td>train_gte5_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>text</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>1000</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'train_gte5', u'train_gte5_packed', u'y', u'x', u'text', [u'0', u'1', u'2', u'3', u'4'], 1000, 255.0, 5, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS train_gte5_packed, train_gte5_packed_summary;\n",
-    "\n",
-    "SELECT madlib.training_preprocessor_dl('train_gte5',              -- Source table\n",
-    "                                       'train_gte5_packed',       -- Output table\n",
-    "                                       'y',                       -- Dependent variable\n",
-    "                                       'x',                       -- Independent variable\n",
-    "                                        1000,                     -- Buffer size\n",
-    "                                        255                       -- Normalizing constant\n",
-    "                                        );\n",
-    "\n",
-    "SELECT * FROM train_gte5_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Test dataset >= 5"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>test_gte5</td>\n",
-       "        <td>test_gte5_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>text</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>2431</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
-       "        <td>all_segments</td>\n",
-       "        <td>all_segments</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'test_gte5', u'test_gte5_packed', u'y', u'x', u'text', [u'0', u'1', u'2', u'3', u'4'], 2431, 255.0, 5, 'all_segments', 'all_segments')]"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS test_gte5_packed, test_gte5_packed_summary;\n",
-    "\n",
-    "SELECT madlib.validation_preprocessor_dl('test_gte5',             -- Source table\n",
-    "                                         'test_gte5_packed',      -- Output table\n",
-    "                                         'y',                     -- Dependent variable\n",
-    "                                         'x',                     -- Independent variable\n",
-    "                                         'train_gte5_packed'      -- Training preproc table\n",
-    "                                        );\n",
-    "\n",
-    "SELECT * FROM test_gte5_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"define_and_load_model\"></a>\n",
-    "# 4. Define and load model architecture\n",
-    "\n",
-    "Model with feature and classification layers trainable"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "conv2d_1 (Conv2D)            (None, 26, 26, 32)        320       \n",
-      "_________________________________________________________________\n",
-      "activation_1 (Activation)    (None, 26, 26, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_2 (Conv2D)            (None, 24, 24, 32)        9248      \n",
-      "_________________________________________________________________\n",
-      "activation_2 (Activation)    (None, 24, 24, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_1 (MaxPooling2 (None, 12, 12, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "dropout_1 (Dropout)          (None, 12, 12, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "flatten_1 (Flatten)          (None, 4608)              0         \n",
-      "_________________________________________________________________\n",
-      "dense_1 (Dense)              (None, 128)               589952    \n",
-      "_________________________________________________________________\n",
-      "activation_3 (Activation)    (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dropout_2 (Dropout)          (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 5)                 645       \n",
-      "_________________________________________________________________\n",
-      "activation_4 (Activation)    (None, 5)                 0         \n",
-      "=================================================================\n",
-      "Total params: 600,165\n",
-      "Trainable params: 600,165\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "# define two groups of layers: feature (convolutions) and classification (dense)\n",
-    "feature_layers = [\n",
-    "    Conv2D(filters, kernel_size,\n",
-    "           padding='valid',\n",
-    "           input_shape=input_shape),\n",
-    "    Activation('relu'),\n",
-    "    Conv2D(filters, kernel_size),\n",
-    "    Activation('relu'),\n",
-    "    MaxPooling2D(pool_size=pool_size),\n",
-    "    Dropout(0.25),\n",
-    "    Flatten(),\n",
-    "]\n",
-    "\n",
-    "classification_layers = [\n",
-    "    Dense(128),\n",
-    "    Activation('relu'),\n",
-    "    Dropout(0.5),\n",
-    "    Dense(num_classes),\n",
-    "    Activation('softmax')\n",
-    "]\n",
-    "\n",
-    "# create complete model\n",
-    "model = Sequential(feature_layers + classification_layers)\n",
-    "\n",
-    "model.summary()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load into model architecture table using psycopg2"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>name</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>feature + classification layers trainable</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, u'feature + classification layers trainable')]"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "import psycopg2 as p2\n",
-    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
-    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
-    "cur = conn.cursor()\n",
-    "\n",
-    "%sql DROP TABLE IF EXISTS model_arch_library;\n",
-    "query = \"SELECT madlib.load_keras_model('model_arch_library', %s, NULL, %s)\"\n",
-    "cur.execute(query,[model.to_json(), \"feature + classification layers trainable\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check model loaded OK\n",
-    "%sql SELECT model_id, name FROM model_arch_library;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Model with feature layers frozen"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 30,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "conv2d_1 (Conv2D)            (None, 26, 26, 32)        320       \n",
-      "_________________________________________________________________\n",
-      "activation_1 (Activation)    (None, 26, 26, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_2 (Conv2D)            (None, 24, 24, 32)        9248      \n",
-      "_________________________________________________________________\n",
-      "activation_2 (Activation)    (None, 24, 24, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_1 (MaxPooling2 (None, 12, 12, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "dropout_1 (Dropout)          (None, 12, 12, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "flatten_1 (Flatten)          (None, 4608)              0         \n",
-      "_________________________________________________________________\n",
-      "dense_1 (Dense)              (None, 128)               589952    \n",
-      "_________________________________________________________________\n",
-      "activation_3 (Activation)    (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dropout_2 (Dropout)          (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 5)                 645       \n",
-      "_________________________________________________________________\n",
-      "activation_4 (Activation)    (None, 5)                 0         \n",
-      "=================================================================\n",
-      "Total params: 600,165\n",
-      "Trainable params: 590,597\n",
-      "Non-trainable params: 9,568\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "# freeze feature layers\n",
-    "for l in feature_layers:\n",
-    "    l.trainable = False\n",
-    "\n",
-    "model.summary()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load into transfer model architecture table using psycopg2"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 31,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "2 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>name</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>feature + classification layers trainable</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>only classification layers trainable</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, u'feature + classification layers trainable'),\n",
-       " (2, u'only classification layers trainable')]"
-      ]
-     },
-     "execution_count": 31,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "cur.execute(query,[model.to_json(), \"only classification layers trainable\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check model loaded OK\n",
-    "%sql SELECT model_id, name FROM model_arch_library ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"train\"></a>\n",
-    "# 5.  Train\n",
-    "Train the model for 5-digit classification [0..4]  "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 32,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 32,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mnist_model, mnist_model_summary;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit('train_lt5_packed',    -- source table\n",
-    "                               'mnist_model',         -- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                1,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
-    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
-    "                                5                     -- num_iterations\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 33,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>train_lt5_packed</td>\n",
-       "        <td>mnist_model</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>1</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']</td>\n",
-       "        <td> batch_size=128, epochs=1 </td>\n",
-       "        <td>5</td>\n",
-       "        <td>None</td>\n",
-       "        <td>5</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>2344.43066406</td>\n",
-       "        <td>2019-12-18 22:08:33.212149</td>\n",
-       "        <td>2019-12-18 22:10:33.354468</td>\n",
-       "        <td>[120.142242193222]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>5</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>text</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.994607150555</td>\n",
-       "        <td>0.0173618607223</td>\n",
-       "        <td>[0.994607150554657]</td>\n",
-       "        <td>[0.0173618607223034]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>[5]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'train_lt5_packed', u'mnist_model', u'y', u'x', u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']\", u' batch_size=128, epochs=1 ', 5, None, 5, None, None, u'madlib_keras', 2344.43066406, datetime.datetime(2019, 12, 18, 22, 8, 33, 212149), datetime.datetime(2019, 12, 18, 22, 10, 33, 354468), [120.142242193222], u'1.17-dev', 5, [u'0', u'1', u'2', u'3', u'4'], u'text', 255.0, [u'accuracy'], 0.994607150555, 0.0173618607223, [0.994607150554657], [0.0173618607223034], None, None, None, None, [5])]"
-      ]
-     },
-     "execution_count": 33,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM mnist_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Evaluate using test data"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 34,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>loss</th>\n",
-       "        <th>metric</th>\n",
-       "        <th>metrics_type</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0.0107044409961</td>\n",
-       "        <td>0.995719015598</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0.0107044409960508, 0.995719015598297, [u'accuracy'])]"
-      ]
-     },
-     "execution_count": 34,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mnist_validate;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_evaluate('mnist_model',      -- model\n",
-    "                                   'test_lt5_packed',   -- test table\n",
-    "                                   'mnist_validate'     -- output table\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM mnist_validate;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"transfer_learning\"></a>\n",
-    "# 6. Transfer learning"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Use UPDATE to load trained weights from previous run into the model library table:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 39,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 39,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "UPDATE model_arch_library\n",
-    "SET model_weights = mnist_model.model_weights\n",
-    "FROM mnist_model\n",
-    "WHERE model_arch_library.model_id = 2;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Transfer: train dense layers for new classification task [5..9]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 40,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>madlib_keras_fit</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td></td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[('',)]"
-      ]
-     },
-     "execution_count": 40,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mnist_transfer_model, mnist_transfer_model_summary;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_fit('train_gte5_packed',   -- source table\n",
-    "                               'mnist_transfer_model',-- model output table\n",
-    "                               'model_arch_library',  -- model arch table\n",
-    "                                2,                    -- model arch id\n",
-    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
-    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
-    "                                5                     -- num_iterations\n",
-    "                              );"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "View the model summary"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 41,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>model</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>validation_table</th>\n",
-       "        <th>metrics_compute_frequency</th>\n",
-       "        <th>name</th>\n",
-       "        <th>description</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>madlib_version</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>metrics_iters</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>train_gte5_packed</td>\n",
-       "        <td>mnist_transfer_model</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>model_arch_library</td>\n",
-       "        <td>2</td>\n",
-       "        <td> loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']</td>\n",
-       "        <td> batch_size=128, epochs=1 </td>\n",
-       "        <td>5</td>\n",
-       "        <td>None</td>\n",
-       "        <td>5</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>2344.43066406</td>\n",
-       "        <td>2019-12-18 22:12:24.949576</td>\n",
-       "        <td>2019-12-18 22:13:10.273382</td>\n",
-       "        <td>[45.3237240314484]</td>\n",
-       "        <td>1.17-dev</td>\n",
-       "        <td>5</td>\n",
-       "        <td>[u'0', u'1', u'2', u'3', u'4']</td>\n",
-       "        <td>text</td>\n",
-       "        <td>255.0</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.991259694099</td>\n",
-       "        <td>0.0289842225611</td>\n",
-       "        <td>[0.991259694099426]</td>\n",
-       "        <td>[0.028984222561121]</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>None</td>\n",
-       "        <td>[5]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'train_gte5_packed', u'mnist_transfer_model', u'y', u'x', u'model_arch_library', 2, u\" loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']\", u' batch_size=128, epochs=1 ', 5, None, 5, None, None, u'madlib_keras', 2344.43066406, datetime.datetime(2019, 12, 18, 22, 12, 24, 949576), datetime.datetime(2019, 12, 18, 22, 13, 10, 273382), [45.3237240314484], u'1.17-dev', 5, [u'0', u'1', u'2', u'3', u'4'], u'text', 255.0, [u'accuracy'], 0.991259694099, 0.0289842225611, [0.991259694099426], [0.028984222561121], None, None, None, None, [5])]"
-      ]
-     },
-     "execution_count": 41,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM mnist_transfer_model_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Evaluate using test data"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 42,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>loss</th>\n",
-       "        <th>metric</th>\n",
-       "        <th>metrics_type</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0.0291066691279</td>\n",
-       "        <td>0.990536928177</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0.0291066691279411, 0.99053692817688, [u'accuracy'])]"
-      ]
-     },
-     "execution_count": 42,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS mnist_transfer_validate;\n",
-    "\n",
-    "SELECT madlib.madlib_keras_evaluate('mnist_transfer_model',      -- model\n",
-    "                                   'test_gte5_packed',           -- test table\n",
-    "                                   'mnist_transfer_validate'     -- output table\n",
-    "                                   );\n",
-    "\n",
-    "SELECT * FROM mnist_transfer_validate;"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.10"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}
diff --git a/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb
new file mode 100755
index 0000000..f1d301b
--- /dev/null
+++ b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-custom-functions-v1-checkpoint.ipynb
@@ -0,0 +1,531 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Define custom functions\n",
+    "\n",
+    "This function loads custom Python functions into a table for use by deep learning algorithms.\n",
+    "\n",
+    "Custom functions can be useful if, for example, you need loss functions or metrics that are not built into the standard libraries. The functions to be loaded must be in the form of serialized Python objects created using Dill, which extends Python's pickle module to the majority of the built-in Python types.\n",
+    "\n",
+    "Custom functions are also used to return top k categorical accuracy rate in the case that you want a different k value than the default from Keras. This module includes a helper function to create the custom function automatically for a specified k.\n",
+    "\n",
+    "This method was added in MADlib 1.18.0.\n",
+    "\n",
+    "## <em>Warning</em>\n",
+    "<em>For security reasons there are controls on custom functions in MADlib. You must be a superuser to create custom functions because they could theoretically allow execution of any untrusted Python code. Regular users with MADlib USAGE permission can use existing custom functions but cannot create new ones or update existing ones.</em>\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#load_psycopg2\">1. Load object using psycopg2</a>\n",
+    "\n",
+    "<a href=\"#load_plpython\">2. Load object using a PL/Python function</a>\n",
+    "\n",
+    "<a href=\"#delete_object\">3. Delete object</a>\n",
+    "\n",
+    "<a href=\"#top_k\">4. Top k accuracy function</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_psycopg2\"></a>\n",
+    "# 1. Load object using psycopg2\n",
+    "Psycopg is a PostgreSQL database adapter for the Python programming language. Note need to use the psycopg2.Binary() method to pass as bytes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import database connector psycopg2 and create connection cursor\n",
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "# import Dill and define functions\n",
+    "import dill\n",
+    "\n",
+    "# custom loss\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "\n",
+    "# custom metric\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "\n",
+    "# call load function\n",
+    "cur.execute(\"DROP TABLE IF EXISTS madlib.custom_function_table\")\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'squared_error', 'squared error')\", [p2.Binary(pb_squared_error)])\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'rmse', 'root mean square error')\", [p2.Binary(pb_rmse)])\n",
+    "conn.commit()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_plpython\"></a>\n",
+    "# 2. Load object using a PL/Python function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "CREATE OR REPLACE FUNCTION custom_function_squared_error()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "return pb_squared_error\n",
+    "$$ language plpythonu;\n",
+    "CREATE OR REPLACE FUNCTION custom_function_rmse()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "return pb_rmse\n",
+    "$$ language plpythonu;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>load_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_squared_error(), \n",
+    "                                   'squared_error', \n",
+    "                                   'squared error');\n",
+    "\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_rmse(), \n",
+    "                                   'rmse', \n",
+    "                                   'root mean square error');"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"delete_object\"></a>\n",
+    "# 3. Delete object\n",
+    "Delete by id:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 1);\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Delete by name:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>delete_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 'rmse');"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Since this was the last object in the table, if you delete it then the table will also be dropped."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"top_k\"></a>\n",
+    "# 4. Top k accuracy function\n",
+    "Load top 3 accuracy function followed by a top 10 accuracy function:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>top_3_accuracy</td>\n",
+       "        <td>returns top_3_accuracy</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>top_10_accuracy</td>\n",
+       "        <td>returns top_10_accuracy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'top_3_accuracy', u'returns top_3_accuracy'),\n",
+       " (2, u'top_10_accuracy', u'returns top_10_accuracy')]"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           3);\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           10);\n",
+    "\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-model-architecture-v2-checkpoint.ipynb
similarity index 68%
copy from community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
copy to community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-model-architecture-v2-checkpoint.ipynb
index 8aa3716..b823f09 100644
--- a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Define-model-architecture-v2-checkpoint.ipynb
@@ -4,10 +4,16 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# Load model architecture\n",
-    "This utility function loads model architectures and weights into a table for use by deep learning algorithms in Keras.  \n",
+    "# Define model architecture\n",
+    "This function loads model architectures and weights into a table for use by deep learning algorithms.\n",
     "\n",
-    "The model architecture loader was added in MADlib 1.16.\n",
+    "Model architecture is in JSON form and model weights are in the form of PostgreSQL binary data types (bytea). If the output table already exists, a new row is inserted into the table so it can act as a repository for multiple model architectures and weights.\n",
+    "\n",
+    "There is also a function to delete a model from the table.\n",
+    "\n",
+    "MADlib's deep learning methods are designed to use the TensorFlow package and its built in Keras functions. To ensure consistency, please use tensorflow.keras objects (models, layers, etc.) instead of importing Keras and using its objects.\n",
+    "\n",
+    "The model architecture loader was added in MADlib 1.16 and updated after that.\n",
     "\n",
     "## Table of contents\n",
     "\n",
@@ -25,17 +31,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 34,
    "metadata": {},
    "outputs": [
     {
-     "name": "stderr",
+     "name": "stdout",
      "output_type": "stream",
      "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
      ]
     }
    ],
@@ -45,24 +49,10 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 35,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -72,7 +62,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 36,
    "metadata": {},
    "outputs": [
     {
@@ -90,15 +80,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 36,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -120,28 +110,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 37,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
    ]
   },
   {
@@ -153,21 +128,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 38,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
+      "Model: \"sequential_3\"\n",
       "_________________________________________________________________\n",
       "Layer (type)                 Output Shape              Param #   \n",
       "=================================================================\n",
-      "dense_1 (Dense)              (None, 10)                50        \n",
+      "dense_9 (Dense)              (None, 10)                50        \n",
       "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                110       \n",
+      "dense_10 (Dense)             (None, 10)                110       \n",
       "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 3)                 33        \n",
+      "dense_11 (Dense)             (None, 3)                 33        \n",
       "=================================================================\n",
       "Total params: 193\n",
       "Trainable params: 193\n",
@@ -182,21 +158,21 @@
     "model.add(Dense(10, activation='relu'))\n",
     "model.add(Dense(3, activation='softmax'))\n",
     "    \n",
-    "model.summary()"
+    "model.summary();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 39,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_9\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_10\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_11\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_3\"}, \"backend\": \"tensorflow\"}'"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 39,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -225,7 +201,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 40,
    "metadata": {},
    "outputs": [
     {
@@ -255,15 +231,15 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 40,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -294,7 +270,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 41,
    "metadata": {},
    "outputs": [
     {
@@ -323,7 +299,7 @@
        "        <td>None</td>\n",
        "        <td>Maria</td>\n",
        "        <td>Also a simple model</td>\n",
-       "        <td>__madlib_temp_36064316_1576692433_8110861__</td>\n",
+       "        <td>__madlib_temp_87665369_1614901189_11144097__</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
@@ -331,16 +307,16 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_36064316_1576692433_8110861__'),\n",
-       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_87665369_1614901189_11144097__'),\n",
+       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 41,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -376,7 +352,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 42,
    "metadata": {},
    "outputs": [
     {
@@ -384,7 +360,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "1 rows affected.\n"
+      "2 rows affected.\n"
      ]
     },
     {
@@ -392,18 +368,31 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1L,)]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 42,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -416,7 +405,7 @@
     "WHERE model_arch_library.model_id = 2;\n",
     "\n",
     "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -430,7 +419,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 43,
    "metadata": {},
    "outputs": [
     {
@@ -438,7 +427,6 @@
      "output_type": "stream",
      "text": [
       "Done.\n",
-      "1 rows affected.\n",
       "1 rows affected.\n"
      ]
     },
@@ -447,18 +435,18 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>load_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>2</td>\n",
+       "        <td></td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2L,)]"
+       "[('',)]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 43,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -467,8 +455,8 @@
     "%%sql\n",
     "CREATE OR REPLACE FUNCTION load_weights() RETURNS VOID AS\n",
     "$$\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "import plpy\n",
     "\n",
@@ -493,15 +481,12 @@
     "$$ language plpythonu;\n",
     "\n",
     "-- Call load function\n",
-    "SELECT load_weights();\n",
-    "\n",
-    "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT load_weights();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 44,
    "metadata": {},
    "outputs": [
     {
@@ -518,33 +503,43 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 44,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -560,45 +555,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 45,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(2L,)]"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import psycopg2 as p2\n",
-    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
-    "conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
     "cur = conn.cursor()\n",
     "\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "\n",
     "# create model\n",
@@ -615,22 +581,19 @@
     "\n",
     "query = \"SELECT madlib.load_keras_model('model_arch_library', %s,%s,%s,%s)\"\n",
     "cur.execute(query,[model.to_json(), weights_bytea, \"Grace\", \"Model y\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check weights loaded OK\n",
-    "%sql SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "conn.commit()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 46,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "3 rows affected.\n"
+      "4 rows affected.\n"
      ]
     },
     {
@@ -640,33 +603,50 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 16,
+     "execution_count": 46,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -679,7 +659,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 47,
    "metadata": {},
    "outputs": [
     {
@@ -687,7 +667,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "2 rows affected.\n"
+      "3 rows affected.\n"
      ]
     },
     {
@@ -697,22 +677,36 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, u'Maria'), (3, u'Ella')]"
+       "[(2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 47,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -722,7 +716,7 @@
     "SELECT madlib.delete_keras_model('model_arch_library',   -- Output table\n",
     "                                  1                      -- Model id\n",
     "                                );\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   }
  ],
@@ -742,7 +736,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
similarity index 98%
copy from community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
copy to community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
index b457303..0ae2b4c 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-distribution-rules-v1-checkpoint.ipynb
@@ -1198,7 +1198,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1465,7 +1465,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1657,7 +1657,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1805,7 +1805,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1938,7 +1938,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
    ]
   }
  ],
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
similarity index 60%
copy from community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
copy to community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
index cb76d1e..5fd5a69 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/.ipynb_checkpoints/Preprocessor-for-images-v2-checkpoint.ipynb
@@ -5,11 +5,11 @@
    "metadata": {},
    "source": [
     "# Preprocessor for image data\n",
-    "This is a mini-batch preprocessor utility for image data:\n",
+    "This preprocessor prepares training data for deep learning.\n",
     "* training_preprocessor_dl() for training datasets\n",
     "* validation_preprocessor_dl() for validation datasets\n",
     "\n",
-    "Note that there is a separate mini-batch preprocessor utility for general use cases\n",
+    "Note that there is a separate mini-batch preprocessor utility for non deep learning use cases\n",
     "http://madlib.apache.org/docs/latest/group__grp__minibatch__preprocessing.html\n",
     "\n",
     "The preprocessor for image data was added in MADlib 1.16.\n",
@@ -39,42 +39,17 @@
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 3,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -84,7 +59,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -102,15 +77,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -132,7 +107,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -153,271 +128,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]]</td>\n",
+       "        <td>[[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]]</td>\n",
+       "        <td>[[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]]</td>\n",
+       "        <td>[[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]]</td>\n",
+       "        <td>[[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]]</td>\n",
+       "        <td>[[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]]</td>\n",
+       "        <td>[[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]]</td>\n",
+       "        <td>[[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]]</td>\n",
+       "        <td>[[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]]</td>\n",
+       "        <td>[[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]]</td>\n",
+       "        <td>[[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]]</td>\n",
+       "        <td>[[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]]</td>\n",
+       "        <td>[[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]]</td>\n",
+       "        <td>[[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]]</td>\n",
+       "        <td>[[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]]</td>\n",
+       "        <td>[[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]]</td>\n",
+       "        <td>[[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]]</td>\n",
+       "        <td>[[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]]</td>\n",
+       "        <td>[[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]]</td>\n",
+       "        <td>[[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]]</td>\n",
+       "        <td>[[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]], u'cat'),\n",
-       " ([[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]], u'cat'),\n",
-       " ([[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]], u'cat'),\n",
-       " ([[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]], u'bird'),\n",
-       " ([[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]], u'bird'),\n",
-       " ([[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]], u'dog'),\n",
-       " ([[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]], u'bird'),\n",
-       " ([[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]], u'bird'),\n",
-       " ([[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]], u'dog'),\n",
-       " ([[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]], u'bird'),\n",
-       " ([[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]], u'cat'),\n",
-       " ([[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]], u'dog'),\n",
-       " ([[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]], u'bird'),\n",
-       " ([[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]], u'bird'),\n",
-       " ([[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]], u'dog'),\n",
-       " ([[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]], u'bird'),\n",
-       " ([[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]], u'bird'),\n",
-       " ([[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]], u'dog'),\n",
-       " ([[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]], u'bird'),\n",
-       " ([[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]], u'bird'),\n",
-       " ([[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]], u'cat'),\n",
-       " ([[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]], u'bird'),\n",
-       " ([[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]], u'bird'),\n",
-       " ([[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]], u'bird'),\n",
-       " ([[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]], u'bird'),\n",
-       " ([[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]], u'dog'),\n",
-       " ([[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]], u'bird'),\n",
-       " ([[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]], u'bird'),\n",
-       " ([[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]], u'dog'),\n",
-       " ([[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]], u'bird'),\n",
-       " ([[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]], u'bird'),\n",
-       " ([[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]], u'dog'),\n",
-       " ([[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]], u'cat'),\n",
-       " ([[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]], u'bird'),\n",
-       " ([[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]], u'cat'),\n",
-       " ([[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]], u'cat'),\n",
-       " ([[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]], u'cat'),\n",
-       " ([[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]], u'dog'),\n",
-       " ([[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]], u'bird'),\n",
-       " ([[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]], u'bird'),\n",
-       " ([[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]], u'bird'),\n",
-       " ([[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]], u'bird'),\n",
-       " ([[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]], u'bird'),\n",
-       " ([[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]], u'cat'),\n",
-       " ([[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]], u'dog'),\n",
-       " ([[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]], u'dog'),\n",
-       " ([[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]], u'bird'),\n",
-       " ([[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]], u'dog'),\n",
-       " ([[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]], u'bird'),\n",
-       " ([[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]], u'cat'),\n",
-       " ([[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]], u'bird'),\n",
-       " ([[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]], u'bird')]"
+       "[([[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]], u'bird'),\n",
+       " ([[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]], u'cat'),\n",
+       " ([[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]], u'bird'),\n",
+       " ([[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]], u'dog'),\n",
+       " ([[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]], u'dog'),\n",
+       " ([[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]], u'bird'),\n",
+       " ([[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]], u'bird'),\n",
+       " ([[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]], u'dog'),\n",
+       " ([[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]], u'dog'),\n",
+       " ([[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]], u'cat'),\n",
+       " ([[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]], u'cat'),\n",
+       " ([[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]], u'dog'),\n",
+       " ([[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]], u'bird'),\n",
+       " ([[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]], u'bird'),\n",
+       " ([[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]], u'dog'),\n",
+       " ([[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]], u'cat'),\n",
+       " ([[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]], u'cat'),\n",
+       " ([[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]], u'dog'),\n",
+       " ([[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]], u'bird'),\n",
+       " ([[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]], u'cat'),\n",
+       " ([[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]], u'dog'),\n",
+       " ([[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]], u'bird'),\n",
+       " ([[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]], u'bird'),\n",
+       " ([[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]], u'bird'),\n",
+       " ([[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]], u'cat'),\n",
+       " ([[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]], u'cat'),\n",
+       " ([[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]], u'cat'),\n",
+       " ([[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]], u'cat'),\n",
+       " ([[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]], u'dog'),\n",
+       " ([[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]], u'cat'),\n",
+       " ([[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]], u'cat'),\n",
+       " ([[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]], u'bird'),\n",
+       " ([[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]], u'bird'),\n",
+       " ([[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]], u'cat'),\n",
+       " ([[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]], u'dog'),\n",
+       " ([[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]], u'cat'),\n",
+       " ([[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]], u'dog'),\n",
+       " ([[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]], u'cat'),\n",
+       " ([[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]], u'bird'),\n",
+       " ([[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]], u'bird'),\n",
+       " ([[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]], u'dog'),\n",
+       " ([[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]], u'dog'),\n",
+       " ([[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]], u'bird'),\n",
+       " ([[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]], u'dog'),\n",
+       " ([[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]], u'bird'),\n",
+       " ([[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]], u'bird'),\n",
+       " ([[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]], u'bird'),\n",
+       " ([[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]], u'dog'),\n",
+       " ([[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]], u'bird'),\n",
+       " ([[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]], u'dog'),\n",
+       " ([[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]], u'cat'),\n",
+       " ([[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]], u'bird')]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -463,7 +438,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -480,8 +455,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -500,7 +475,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -517,7 +492,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -531,7 +506,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -551,7 +526,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -561,23 +536,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -599,7 +574,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -616,8 +591,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -636,7 +611,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -644,6 +619,7 @@
    "source": [
     "%%sql\n",
     "DROP TABLE IF EXISTS val_image_data_packed, val_image_data_packed_summary;\n",
+    "\n",
     "SELECT madlib.validation_preprocessor_dl(\n",
     "      'image_data',             -- Source table\n",
     "      'val_image_data_packed',  -- Output table\n",
@@ -652,7 +628,8 @@
     "      'image_data_packed',      -- From training preprocessor step\n",
     "      NULL                      -- Buffer size\n",
     "      ); \n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "\n",
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -664,7 +641,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -684,7 +661,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -694,23 +671,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>val_image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'val_image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'val_image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -731,7 +708,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -752,271 +729,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188]</td>\n",
+       "        <td>[168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200]</td>\n",
+       "        <td>[24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165]</td>\n",
+       "        <td>[14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170]</td>\n",
+       "        <td>[131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35]</td>\n",
+       "        <td>[211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184]</td>\n",
+       "        <td>[26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208]</td>\n",
+       "        <td>[18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208]</td>\n",
+       "        <td>[56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188]</td>\n",
+       "        <td>[17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215]</td>\n",
-       "        <td>cat</td>\n",
+       "        <td>[186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254]</td>\n",
+       "        <td>[53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54]</td>\n",
+       "        <td>[222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213]</td>\n",
+       "        <td>[64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1]</td>\n",
+       "        <td>[96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153]</td>\n",
+       "        <td>[88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163]</td>\n",
+       "        <td>[105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161]</td>\n",
+       "        <td>[230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86]</td>\n",
+       "        <td>[247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126]</td>\n",
+       "        <td>[110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90]</td>\n",
+       "        <td>[63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3]</td>\n",
-       "        <td>bird</td>\n",
+       "        <td>[94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121]</td>\n",
+       "        <td>[246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0]</td>\n",
+       "        <td>[106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205]</td>\n",
+       "        <td>[1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1]</td>\n",
+       "        <td>[81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114]</td>\n",
+       "        <td>[126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47]</td>\n",
+       "        <td>[10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188], u'cat'),\n",
-       " ([49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78], u'dog'),\n",
-       " ([203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200], u'bird'),\n",
-       " ([157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187], u'dog'),\n",
-       " ([248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165], u'bird'),\n",
-       " ([201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170], u'cat'),\n",
-       " ([29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35], u'dog'),\n",
-       " ([187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170], u'dog'),\n",
-       " ([9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153], u'dog'),\n",
-       " ([78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168], u'dog'),\n",
-       " ([105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25], u'cat'),\n",
-       " ([93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184], u'bird'),\n",
-       " ([12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208], u'bird'),\n",
-       " ([133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208], u'bird'),\n",
-       " ([143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76], u'dog'),\n",
-       " ([91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100], u'dog'),\n",
-       " ([136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203], u'dog'),\n",
-       " ([126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188], u'bird'),\n",
-       " ([198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215], u'cat'),\n",
-       " ([151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254], u'bird'),\n",
-       " ([246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54], u'cat'),\n",
-       " ([156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16], u'dog'),\n",
-       " ([152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194], u'dog'),\n",
-       " ([169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213], u'bird'),\n",
-       " ([67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153], u'cat'),\n",
-       " ([172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113], u'cat'),\n",
-       " ([225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1], u'dog'),\n",
-       " ([137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206], u'dog'),\n",
-       " ([166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153], u'cat'),\n",
-       " ([249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78], u'dog'),\n",
-       " ([45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126], u'dog'),\n",
-       " ([190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127], u'cat'),\n",
-       " ([56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225], u'dog'),\n",
-       " ([6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223], u'cat'),\n",
-       " ([245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48], u'cat'),\n",
-       " ([82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163], u'bird'),\n",
-       " ([21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161], u'cat'),\n",
-       " ([35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30], u'dog'),\n",
-       " ([144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86], u'cat'),\n",
-       " ([126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126], u'bird'),\n",
-       " ([168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90], u'bird'),\n",
-       " ([170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3], u'bird'),\n",
-       " ([43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121], u'cat'),\n",
-       " ([95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70], u'dog'),\n",
-       " ([96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232], u'bird'),\n",
-       " ([104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14], u'dog'),\n",
-       " ([33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27], u'dog'),\n",
-       " ([176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0], u'cat'),\n",
-       " ([249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205], u'bird'),\n",
-       " ([25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1], u'bird'),\n",
-       " ([142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114], u'dog'),\n",
-       " ([204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47], u'dog')]"
+       "[([168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99], u'dog'),\n",
+       " ([20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140], u'dog'),\n",
+       " ([125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95], u'cat'),\n",
+       " ([24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104], u'bird'),\n",
+       " ([14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191], u'bird'),\n",
+       " ([131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248], u'cat'),\n",
+       " ([211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28], u'dog'),\n",
+       " ([26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45], u'bird'),\n",
+       " ([18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126], u'bird'),\n",
+       " ([56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218], u'bird'),\n",
+       " ([17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227], u'bird'),\n",
+       " ([186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25], u'dog'),\n",
+       " ([53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126], u'dog'),\n",
+       " ([255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227], u'dog'),\n",
+       " ([144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222], u'bird'),\n",
+       " ([222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128], u'cat'),\n",
+       " ([64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213], u'bird'),\n",
+       " ([96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67], u'dog'),\n",
+       " ([88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242], u'cat'),\n",
+       " ([105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231], u'bird'),\n",
+       " ([230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188], u'dog'),\n",
+       " ([127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69], u'dog'),\n",
+       " ([162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174], u'cat'),\n",
+       " ([247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98], u'cat'),\n",
+       " ([110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244], u'bird'),\n",
+       " ([63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28], u'bird'),\n",
+       " ([94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131], u'dog'),\n",
+       " ([246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63], u'dog'),\n",
+       " ([46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204], u'cat'),\n",
+       " ([106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137], u'cat'),\n",
+       " ([1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100], u'bird'),\n",
+       " ([81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160], u'cat'),\n",
+       " ([202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177], u'dog'),\n",
+       " ([61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201], u'bird'),\n",
+       " ([126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220], u'dog'),\n",
+       " ([10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42], u'dog'),\n",
+       " ([98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245], u'dog'),\n",
+       " ([7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251], u'bird'),\n",
+       " ([78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252], u'bird'),\n",
+       " ([82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255], u'bird'),\n",
+       " ([106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132], u'bird'),\n",
+       " ([24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10], u'bird'),\n",
+       " ([168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188], u'cat'),\n",
+       " ([205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74], u'dog'),\n",
+       " ([149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179], u'dog'),\n",
+       " ([15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250], u'dog'),\n",
+       " ([113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229], u'dog'),\n",
+       " ([81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18], u'cat'),\n",
+       " ([84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44], u'dog'),\n",
+       " ([71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16], u'cat'),\n",
+       " ([62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28], u'cat'),\n",
+       " ([65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143], u'cat')]"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1058,7 +1035,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -1075,8 +1052,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1095,7 +1072,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1112,7 +1089,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1127,7 +1104,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -1144,8 +1121,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1164,7 +1141,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1182,7 +1159,7 @@
     "    NULL                      -- Buffer size\n",
     "    );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1197,7 +1174,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -1214,13 +1191,13 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[9, 12]</td>\n",
+       "        <td>[9, 3]</td>\n",
        "        <td>0</td>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1244,22 +1221,22 @@
        "        <td>4</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[7, 12]</td>\n",
+       "        <td>[7, 3]</td>\n",
        "        <td>5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([8, 12], [8, 3], 0),\n",
+       "[([9, 12], [9, 3], 0),\n",
        " ([9, 12], [9, 3], 1),\n",
        " ([9, 12], [9, 3], 2),\n",
        " ([9, 12], [9, 3], 3),\n",
        " ([9, 12], [9, 3], 4),\n",
-       " ([8, 12], [8, 3], 5)]"
+       " ([7, 12], [7, 3], 5)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1276,7 +1253,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1288,7 +1265,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -1308,7 +1285,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1318,23 +1295,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
-       "        <td>10</td>\n",
+       "        <td>9</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 10, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 9, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1356,7 +1333,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -1373,8 +1350,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1393,7 +1370,7 @@
        "[([26, 12], [26, 5], 0), ([26, 12], [26, 5], 1)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1408,15 +1385,15 @@
     "                                        'rgb',                -- Independent variable\n",
     "                                        NULL,                 -- Buffer size\n",
     "                                        255,                  -- Normalizing constant\n",
-    "                                        5                     -- Number of desired class values\n",
+    "                                        ARRAY[5]              -- Number of desired class values\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
@@ -1436,7 +1413,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1446,23 +1423,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog', None, None]</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
+       "        <td>[5]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog', None, None], 26, 255.0, 5, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog', None, None], 26, 255.0, [5], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 15,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1513,7 +1490,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -1538,7 +1515,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1548,23 +1525,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>[2, 3]</td>\n",
        "        <td>[0, 1]</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, [2, 3], [0, 1])]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], [2, 3], [0, 1])]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1610,7 +1587,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Model-preparation/Define-custom-functions-v1.ipynb b/community-artifacts/Deep-learning/Model-preparation/Define-custom-functions-v1.ipynb
new file mode 100755
index 0000000..f1d301b
--- /dev/null
+++ b/community-artifacts/Deep-learning/Model-preparation/Define-custom-functions-v1.ipynb
@@ -0,0 +1,531 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Define custom functions\n",
+    "\n",
+    "This function loads custom Python functions into a table for use by deep learning algorithms.\n",
+    "\n",
+    "Custom functions can be useful if, for example, you need loss functions or metrics that are not built into the standard libraries. The functions to be loaded must be in the form of serialized Python objects created using Dill, which extends Python's pickle module to the majority of the built-in Python types.\n",
+    "\n",
+    "Custom functions are also used to return top k categorical accuracy rate in the case that you want a different k value than the default from Keras. This module includes a helper function to create the custom function automatically for a specified k.\n",
+    "\n",
+    "This method was added in MADlib 1.18.0.\n",
+    "\n",
+    "## <em>Warning</em>\n",
+    "<em>For security reasons there are controls on custom functions in MADlib. You must be a superuser to create custom functions because they could theoretically allow execution of any untrusted Python code. Regular users with MADlib USAGE permission can use existing custom functions but cannot create new ones or update existing ones.</em>\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#load_psycopg2\">1. Load object using psycopg2</a>\n",
+    "\n",
+    "<a href=\"#load_plpython\">2. Load object using a PL/Python function</a>\n",
+    "\n",
+    "<a href=\"#delete_object\">3. Delete object</a>\n",
+    "\n",
+    "<a href=\"#top_k\">4. Top k accuracy function</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_psycopg2\"></a>\n",
+    "# 1. Load object using psycopg2\n",
+    "Psycopg is a PostgreSQL database adapter for the Python programming language. Note need to use the psycopg2.Binary() method to pass as bytes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import database connector psycopg2 and create connection cursor\n",
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "# import Dill and define functions\n",
+    "import dill\n",
+    "\n",
+    "# custom loss\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "\n",
+    "# custom metric\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import keras.backend as K \n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "\n",
+    "# call load function\n",
+    "cur.execute(\"DROP TABLE IF EXISTS madlib.custom_function_table\")\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'squared_error', 'squared error')\", [p2.Binary(pb_squared_error)])\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'rmse', 'root mean square error')\", [p2.Binary(pb_rmse)])\n",
+    "conn.commit()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_plpython\"></a>\n",
+    "# 2. Load object using a PL/Python function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "CREATE OR REPLACE FUNCTION custom_function_squared_error()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "return pb_squared_error\n",
+    "$$ language plpythonu;\n",
+    "CREATE OR REPLACE FUNCTION custom_function_rmse()\n",
+    "RETURNS BYTEA AS\n",
+    "$$\n",
+    "import dill\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "return pb_rmse\n",
+    "$$ language plpythonu;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>load_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_squared_error(), \n",
+    "                                   'squared_error', \n",
+    "                                   'squared error');\n",
+    "\n",
+    "SELECT madlib.load_custom_function('custom_function_table', \n",
+    "                                   custom_function_rmse(), \n",
+    "                                   'rmse', \n",
+    "                                   'root mean square error');"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>squared_error</td>\n",
+       "        <td>squared error</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'squared_error', u'squared error'),\n",
+       " (2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"delete_object\"></a>\n",
+    "# 3. Delete object\n",
+    "Delete by id:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>rmse</td>\n",
+       "        <td>root mean square error</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, u'rmse', u'root mean square error')]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 1);\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Delete by name:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>delete_custom_function</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.delete_custom_function( 'custom_function_table', 'rmse');"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Since this was the last object in the table, if you delete it then the table will also be dropped."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"top_k\"></a>\n",
+    "# 4. Top k accuracy function\n",
+    "Load top 3 accuracy function followed by a top 10 accuracy function:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>top_3_accuracy</td>\n",
+       "        <td>returns top_3_accuracy</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>top_10_accuracy</td>\n",
+       "        <td>returns top_10_accuracy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'top_3_accuracy', u'returns top_3_accuracy'),\n",
+       " (2, u'top_10_accuracy', u'returns top_10_accuracy')]"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS madlib.custom_function_table;\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           3);\n",
+    "\n",
+    "SELECT madlib.load_top_k_accuracy_function('custom_function_table',\n",
+    "                                           10);\n",
+    "\n",
+    "SELECT id, name, description FROM madlib.custom_function_table ORDER BY id;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb b/community-artifacts/Deep-learning/Model-preparation/Define-model-architecture-v2.ipynb
similarity index 68%
copy from community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
copy to community-artifacts/Deep-learning/Model-preparation/Define-model-architecture-v2.ipynb
index 8aa3716..b823f09 100644
--- a/community-artifacts/Deep-learning/Load-model-architecture-v2.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/Define-model-architecture-v2.ipynb
@@ -4,10 +4,16 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# Load model architecture\n",
-    "This utility function loads model architectures and weights into a table for use by deep learning algorithms in Keras.  \n",
+    "# Define model architecture\n",
+    "This function loads model architectures and weights into a table for use by deep learning algorithms.\n",
     "\n",
-    "The model architecture loader was added in MADlib 1.16.\n",
+    "Model architecture is in JSON form and model weights are in the form of PostgreSQL binary data types (bytea). If the output table already exists, a new row is inserted into the table so it can act as a repository for multiple model architectures and weights.\n",
+    "\n",
+    "There is also a function to delete a model from the table.\n",
+    "\n",
+    "MADlib's deep learning methods are designed to use the TensorFlow package and its built in Keras functions. To ensure consistency, please use tensorflow.keras objects (models, layers, etc.) instead of importing Keras and using its objects.\n",
+    "\n",
+    "The model architecture loader was added in MADlib 1.16 and updated after that.\n",
     "\n",
     "## Table of contents\n",
     "\n",
@@ -25,17 +31,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 34,
    "metadata": {},
    "outputs": [
     {
-     "name": "stderr",
+     "name": "stdout",
      "output_type": "stream",
      "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
      ]
     }
    ],
@@ -45,24 +49,10 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 35,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -72,7 +62,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 36,
    "metadata": {},
    "outputs": [
     {
@@ -90,15 +80,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 36,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -120,28 +110,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 37,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "import keras\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense"
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
    ]
   },
   {
@@ -153,21 +128,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 38,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
+      "Model: \"sequential_3\"\n",
       "_________________________________________________________________\n",
       "Layer (type)                 Output Shape              Param #   \n",
       "=================================================================\n",
-      "dense_1 (Dense)              (None, 10)                50        \n",
+      "dense_9 (Dense)              (None, 10)                50        \n",
       "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                110       \n",
+      "dense_10 (Dense)             (None, 10)                110       \n",
       "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 3)                 33        \n",
+      "dense_11 (Dense)             (None, 3)                 33        \n",
       "=================================================================\n",
       "Total params: 193\n",
       "Trainable params: 193\n",
@@ -182,21 +158,21 @@
     "model.add(Dense(10, activation='relu'))\n",
     "model.add(Dense(3, activation='softmax'))\n",
     "    \n",
-    "model.summary()"
+    "model.summary();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 39,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_9\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_10\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_11\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_3\"}, \"backend\": \"tensorflow\"}'"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 39,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -225,7 +201,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 40,
    "metadata": {},
    "outputs": [
     {
@@ -255,15 +231,15 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 40,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -294,7 +270,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 41,
    "metadata": {},
    "outputs": [
     {
@@ -323,7 +299,7 @@
        "        <td>None</td>\n",
        "        <td>Maria</td>\n",
        "        <td>Also a simple model</td>\n",
-       "        <td>__madlib_temp_36064316_1576692433_8110861__</td>\n",
+       "        <td>__madlib_temp_87665369_1614901189_11144097__</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
@@ -331,16 +307,16 @@
        "        <td>None</td>\n",
        "        <td>Sophie</td>\n",
        "        <td>A simple model</td>\n",
-       "        <td>__madlib_temp_19839392_1576692433_56744839__</td>\n",
+       "        <td>__madlib_temp_27065614_1614901189_16021319__</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_36064316_1576692433_8110861__'),\n",
-       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_19839392_1576692433_56744839__')]"
+       "[(2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'Also a simple model', u'__madlib_temp_87665369_1614901189_11144097__'),\n",
+       " (1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'A simple model', u'__madlib_temp_27065614_1614901189_16021319__')]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 41,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -376,7 +352,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 42,
    "metadata": {},
    "outputs": [
     {
@@ -384,7 +360,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "1 rows affected.\n"
+      "2 rows affected.\n"
      ]
     },
     {
@@ -392,18 +368,31 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1L,)]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 42,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -416,7 +405,7 @@
     "WHERE model_arch_library.model_id = 2;\n",
     "\n",
     "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -430,7 +419,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 43,
    "metadata": {},
    "outputs": [
     {
@@ -438,7 +427,6 @@
      "output_type": "stream",
      "text": [
       "Done.\n",
-      "1 rows affected.\n",
       "1 rows affected.\n"
      ]
     },
@@ -447,18 +435,18 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>count</th>\n",
+       "        <th>load_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>2</td>\n",
+       "        <td></td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2L,)]"
+       "[('',)]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 43,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -467,8 +455,8 @@
     "%%sql\n",
     "CREATE OR REPLACE FUNCTION load_weights() RETURNS VOID AS\n",
     "$$\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "import plpy\n",
     "\n",
@@ -493,15 +481,12 @@
     "$$ language plpythonu;\n",
     "\n",
     "-- Call load function\n",
-    "SELECT load_weights();\n",
-    "\n",
-    "-- Check weights loaded OK\n",
-    "SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "SELECT load_weights();"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 44,
    "metadata": {},
    "outputs": [
     {
@@ -518,33 +503,43 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 44,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -560,45 +555,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 45,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(2L,)]"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "import psycopg2 as p2\n",
-    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
-    "conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
     "cur = conn.cursor()\n",
     "\n",
-    "from keras.layers import *\n",
-    "from keras import Sequential\n",
+    "from tensorflow.keras.layers import *\n",
+    "from tensorflow.keras import Sequential\n",
     "import numpy as np\n",
     "\n",
     "# create model\n",
@@ -615,22 +581,19 @@
     "\n",
     "query = \"SELECT madlib.load_keras_model('model_arch_library', %s,%s,%s,%s)\"\n",
     "cur.execute(query,[model.to_json(), weights_bytea, \"Grace\", \"Model y\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check weights loaded OK\n",
-    "%sql SELECT COUNT(*) FROM model_arch_library WHERE model_weights IS NOT NULL;"
+    "conn.commit()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 46,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "3 rows affected.\n"
+      "4 rows affected.\n"
      ]
     },
     {
@@ -640,33 +603,50 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>1</td>\n",
        "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "        <td>False</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(1, u'Sophie'), (2, u'Maria'), (3, u'Ella')]"
+       "[(1, u'Sophie', u'A simple model', False),\n",
+       " (2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 16,
+     "execution_count": 46,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "%%sql\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   },
   {
@@ -679,7 +659,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 47,
    "metadata": {},
    "outputs": [
     {
@@ -687,7 +667,7 @@
      "output_type": "stream",
      "text": [
       "1 rows affected.\n",
-      "2 rows affected.\n"
+      "3 rows affected.\n"
      ]
     },
     {
@@ -697,22 +677,36 @@
        "    <tr>\n",
        "        <th>model_id</th>\n",
        "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>has_model_weights</th>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>2</td>\n",
        "        <td>Maria</td>\n",
+       "        <td>Also a simple model</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "        <td>3</td>\n",
        "        <td>Ella</td>\n",
+       "        <td>Model x</td>\n",
+       "        <td>True</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>Grace</td>\n",
+       "        <td>Model y</td>\n",
+       "        <td>True</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(2, u'Maria'), (3, u'Ella')]"
+       "[(2, u'Maria', u'Also a simple model', True),\n",
+       " (3, u'Ella', u'Model x', True),\n",
+       " (4, u'Grace', u'Model y', True)]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 47,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -722,7 +716,7 @@
     "SELECT madlib.delete_keras_model('model_arch_library',   -- Output table\n",
     "                                  1                      -- Model id\n",
     "                                );\n",
-    "SELECT model_id, name from model_arch_library ORDER BY model_id;"
+    "SELECT model_id, name, description, (model_weights IS NOT NULL) AS has_model_weights FROM model_arch_library ORDER BY model_id;"
    ]
   }
  ],
@@ -742,7 +736,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb b/community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-distribution-rules-v1.ipynb
similarity index 98%
copy from community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
copy to community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-distribution-rules-v1.ipynb
index b457303..0ae2b4c 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-distribution-rules-v1.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-distribution-rules-v1.ipynb
@@ -1198,7 +1198,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1465,7 +1465,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1657,7 +1657,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1805,7 +1805,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_train_packed ORDER BY __dist_key__;"
    ]
   },
   {
@@ -1938,7 +1938,7 @@
    ],
    "source": [
     "%%sql\n",
-    "SELECT __dist_key__, independent_var_shape, dependent_var_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
+    "SELECT __dist_key__, x_shape, y_shape, buffer_id FROM image_data_val_packed ORDER BY __dist_key__;"
    ]
   }
  ],
diff --git a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb b/community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-v2.ipynb
similarity index 61%
rename from community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
rename to community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-v2.ipynb
index cb76d1e..5fd5a69 100644
--- a/community-artifacts/Deep-learning/Preprocessor-for-images-v2.ipynb
+++ b/community-artifacts/Deep-learning/Model-preparation/Preprocessor-for-images-v2.ipynb
@@ -5,11 +5,11 @@
    "metadata": {},
    "source": [
     "# Preprocessor for image data\n",
-    "This is a mini-batch preprocessor utility for image data:\n",
+    "This preprocessor prepares training data for deep learning.\n",
     "* training_preprocessor_dl() for training datasets\n",
     "* validation_preprocessor_dl() for validation datasets\n",
     "\n",
-    "Note that there is a separate mini-batch preprocessor utility for general use cases\n",
+    "Note that there is a separate mini-batch preprocessor utility for non deep learning use cases\n",
     "http://madlib.apache.org/docs/latest/group__grp__minibatch__preprocessing.html\n",
     "\n",
     "The preprocessor for image data was added in MADlib 1.16.\n",
@@ -39,42 +39,17 @@
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 3,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -84,7 +59,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -102,15 +77,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-85-g4bac900, cmake configuration time: Wed Mar  3 20:37:11 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -132,7 +107,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -153,271 +128,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]]</td>\n",
+       "        <td>[[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]]</td>\n",
+       "        <td>[[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]]</td>\n",
+       "        <td>[[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]]</td>\n",
+       "        <td>[[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]]</td>\n",
+       "        <td>[[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]]</td>\n",
+       "        <td>[[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]]</td>\n",
+       "        <td>[[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]]</td>\n",
+       "        <td>[[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]]</td>\n",
+       "        <td>[[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]]</td>\n",
+       "        <td>[[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]]</td>\n",
+       "        <td>[[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]]</td>\n",
+       "        <td>[[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]]</td>\n",
+       "        <td>[[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]]</td>\n",
+       "        <td>[[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]]</td>\n",
+       "        <td>[[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]]</td>\n",
+       "        <td>[[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]]</td>\n",
+       "        <td>[[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]]</td>\n",
+       "        <td>[[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]]</td>\n",
+       "        <td>[[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]]</td>\n",
+       "        <td>[[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([[[152, 186, 35], [102, 145, 138]], [[40, 249, 108], [175, 207, 70]]], u'cat'),\n",
-       " ([[[234, 110, 251], [147, 18, 158]], [[55, 79, 14], [140, 50, 143]]], u'cat'),\n",
-       " ([[[179, 202, 20], [219, 198, 173]], [[149, 233, 18], [38, 115, 59]]], u'cat'),\n",
-       " ([[[223, 234, 239], [37, 253, 217]], [[147, 248, 108], [166, 150, 162]]], u'bird'),\n",
-       " ([[[164, 46, 39], [51, 130, 218]], [[253, 150, 181], [195, 66, 75]]], u'bird'),\n",
-       " ([[[85, 113, 32], [144, 145, 255]], [[122, 127, 36], [118, 88, 183]]], u'dog'),\n",
-       " ([[[195, 93, 4], [102, 81, 168]], [[148, 120, 219], [21, 82, 217]]], u'bird'),\n",
-       " ([[[8, 156, 237], [82, 72, 66]], [[196, 104, 210], [84, 103, 75]]], u'bird'),\n",
-       " ([[[139, 194, 43], [66, 48, 239]], [[159, 52, 84], [240, 220, 232]]], u'dog'),\n",
-       " ([[[183, 253, 187], [144, 168, 194]], [[44, 150, 21], [116, 216, 216]]], u'bird'),\n",
-       " ([[[170, 44, 68], [245, 256, 207]], [[183, 43, 17], [231, 25, 176]]], u'cat'),\n",
-       " ([[[110, 160, 246], [85, 9, 173]], [[82, 195, 61], [251, 134, 105]]], u'dog'),\n",
-       " ([[[154, 222, 104], [114, 186, 18]], [[159, 254, 7], [158, 205, 190]]], u'bird'),\n",
-       " ([[[222, 165, 227], [142, 191, 80]], [[46, 182, 165], [55, 99, 248]]], u'bird'),\n",
-       " ([[[161, 243, 128], [10, 131, 26]], [[232, 235, 141], [162, 253, 43]]], u'dog'),\n",
-       " ([[[4, 202, 109], [194, 147, 75]], [[103, 117, 217], [39, 197, 8]]], u'bird'),\n",
-       " ([[[107, 63, 64], [99, 57, 224]], [[86, 185, 234], [216, 212, 210]]], u'bird'),\n",
-       " ([[[96, 116, 192], [140, 21, 196]], [[85, 130, 135], [232, 206, 238]]], u'dog'),\n",
-       " ([[[167, 20, 35], [174, 241, 142]], [[237, 48, 241], [38, 16, 70]]], u'bird'),\n",
-       " ([[[251, 31, 179], [205, 226, 19]], [[65, 162, 159], [86, 103, 244]]], u'bird'),\n",
-       " ([[[237, 220, 166], [219, 58, 77]], [[239, 93, 251], [224, 235, 232]]], u'cat'),\n",
-       " ([[[219, 14, 33], [34, 237, 28]], [[64, 160, 232], [34, 180, 41]]], u'bird'),\n",
-       " ([[[83, 127, 43], [71, 87, 24]], [[35, 253, 243], [93, 74, 227]]], u'bird'),\n",
-       " ([[[69, 195, 165], [45, 212, 129]], [[59, 245, 162], [40, 16, 226]]], u'bird'),\n",
-       " ([[[248, 5, 124], [34, 201, 206]], [[161, 244, 21], [248, 13, 57]]], u'bird'),\n",
-       " ([[[0, 150, 63], [227, 80, 132]], [[166, 245, 176], [121, 118, 235]]], u'dog'),\n",
-       " ([[[104, 42, 37], [143, 227, 111]], [[96, 135, 172], [12, 207, 100]]], u'bird'),\n",
-       " ([[[221, 150, 126], [143, 129, 93]], [[92, 235, 60], [174, 100, 100]]], u'bird'),\n",
-       " ([[[216, 163, 35], [249, 33, 139]], [[35, 70, 26], [6, 181, 122]]], u'dog'),\n",
-       " ([[[97, 134, 93], [198, 94, 57]], [[92, 219, 200], [221, 56, 35]]], u'bird'),\n",
-       " ([[[116, 210, 44], [216, 129, 4]], [[123, 164, 253], [156, 47, 32]]], u'bird'),\n",
-       " ([[[73, 39, 151], [196, 180, 248]], [[74, 16, 190], [168, 74, 26]]], u'dog'),\n",
-       " ([[[18, 246, 187], [53, 190, 47]], [[7, 234, 8], [136, 238, 131]]], u'cat'),\n",
-       " ([[[235, 31, 91], [11, 1, 164]], [[49, 152, 103], [229, 144, 177]]], u'bird'),\n",
-       " ([[[78, 89, 63], [104, 220, 81]], [[94, 151, 134], [28, 199, 141]]], u'cat'),\n",
-       " ([[[206, 21, 244], [81, 65, 223]], [[112, 155, 234], [113, 63, 27]]], u'cat'),\n",
-       " ([[[166, 1, 152], [88, 246, 230]], [[176, 54, 78], [140, 135, 172]]], u'cat'),\n",
-       " ([[[13, 200, 234], [155, 207, 185]], [[176, 195, 10], [240, 162, 122]]], u'dog'),\n",
-       " ([[[140, 235, 202], [167, 244, 113]], [[168, 140, 200], [158, 114, 121]]], u'bird'),\n",
-       " ([[[192, 5, 91], [108, 41, 104]], [[52, 19, 3], [3, 204, 178]]], u'bird'),\n",
-       " ([[[214, 162, 103], [80, 46, 243]], [[60, 248, 154], [47, 105, 65]]], u'bird'),\n",
-       " ([[[49, 223, 45], [170, 179, 237]], [[175, 14, 89], [216, 118, 141]]], u'bird'),\n",
-       " ([[[121, 144, 183], [43, 86, 141]], [[205, 189, 221], [251, 176, 25]]], u'bird'),\n",
-       " ([[[74, 72, 92], [139, 3, 141]], [[106, 48, 55], [29, 30, 230]]], u'cat'),\n",
-       " ([[[119, 190, 161], [4, 168, 25]], [[148, 95, 68], [234, 236, 17]]], u'dog'),\n",
-       " ([[[201, 13, 87], [226, 256, 161]], [[42, 92, 44], [45, 233, 150]]], u'dog'),\n",
-       " ([[[33, 179, 122], [7, 222, 241]], [[196, 127, 246], [108, 152, 138]]], u'bird'),\n",
-       " ([[[220, 116, 183], [237, 27, 128]], [[250, 115, 98], [250, 19, 140]]], u'dog'),\n",
-       " ([[[64, 184, 64], [214, 21, 96]], [[137, 143, 103], [103, 129, 43]]], u'bird'),\n",
-       " ([[[118, 151, 126], [1, 99, 90]], [[117, 26, 71], [144, 154, 65]]], u'cat'),\n",
-       " ([[[252, 59, 22], [136, 146, 86]], [[64, 209, 43], [85, 49, 181]]], u'bird'),\n",
-       " ([[[152, 28, 101], [195, 2, 220]], [[91, 128, 220], [189, 218, 81]]], u'bird')]"
+       "[([[[17, 201, 110], [175, 136, 179]], [[102, 57, 24], [110, 199, 64]]], u'bird'),\n",
+       " ([[[205, 85, 56], [209, 11, 117]], [[86, 82, 41], [226, 192, 132]]], u'cat'),\n",
+       " ([[[209, 227, 160], [86, 88, 177]], [[31, 198, 96], [167, 122, 198]]], u'bird'),\n",
+       " ([[[146, 52, 167], [210, 33, 116]], [[38, 89, 69], [50, 207, 155]]], u'dog'),\n",
+       " ([[[247, 125, 68], [124, 196, 20]], [[95, 100, 107], [183, 21, 138]]], u'dog'),\n",
+       " ([[[117, 49, 248], [59, 18, 137]], [[110, 186, 91], [143, 46, 129]]], u'bird'),\n",
+       " ([[[115, 179, 183], [14, 54, 175]], [[138, 122, 42], [79, 142, 137]]], u'bird'),\n",
+       " ([[[249, 65, 200], [131, 191, 61]], [[180, 182, 119], [199, 63, 230]]], u'dog'),\n",
+       " ([[[154, 117, 174], [27, 94, 33]], [[206, 21, 46], [4, 196, 185]]], u'dog'),\n",
+       " ([[[238, 8, 12], [120, 187, 4]], [[184, 130, 135], [119, 191, 59]]], u'cat'),\n",
+       " ([[[55, 2, 109], [28, 130, 7]], [[146, 48, 34], [240, 81, 240]]], u'cat'),\n",
+       " ([[[128, 244, 200], [57, 113, 182]], [[64, 125, 46], [251, 129, 230]]], u'dog'),\n",
+       " ([[[8, 93, 61], [67, 139, 115]], [[69, 248, 144], [199, 255, 33]]], u'bird'),\n",
+       " ([[[33, 17, 73], [17, 21, 201]], [[5, 222, 1], [118, 148, 66]]], u'bird'),\n",
+       " ([[[194, 61, 116], [168, 187, 124]], [[6, 247, 192], [145, 106, 5]]], u'dog'),\n",
+       " ([[[250, 204, 135], [27, 196, 168]], [[44, 12, 185], [65, 213, 190]]], u'cat'),\n",
+       " ([[[215, 52, 179], [25, 39, 117]], [[86, 155, 29], [16, 24, 35]]], u'cat'),\n",
+       " ([[[215, 180, 113], [220, 61, 107]], [[168, 196, 134], [108, 108, 178]]], u'dog'),\n",
+       " ([[[38, 244, 77], [228, 19, 36]], [[24, 198, 60], [63, 59, 146]]], u'bird'),\n",
+       " ([[[89, 162, 242], [124, 169, 202]], [[48, 26, 166], [109, 134, 78]]], u'cat'),\n",
+       " ([[[12, 185, 157], [191, 49, 195]], [[178, 126, 167], [197, 162, 191]]], u'dog'),\n",
+       " ([[[222, 254, 199], [112, 217, 32]], [[18, 203, 156], [187, 148, 204]]], u'bird'),\n",
+       " ([[[58, 56, 91], [136, 105, 103]], [[65, 6, 38], [114, 201, 216]]], u'bird'),\n",
+       " ([[[111, 157, 147], [46, 41, 113]], [[44, 240, 226], [5, 15, 244]]], u'bird'),\n",
+       " ([[[171, 175, 100], [119, 132, 158]], [[175, 224, 37], [24, 71, 102]]], u'cat'),\n",
+       " ([[[174, 243, 194], [14, 219, 228]], [[86, 254, 177], [214, 92, 119]]], u'cat'),\n",
+       " ([[[24, 120, 130], [256, 167, 172]], [[142, 93, 141], [165, 156, 239]]], u'cat'),\n",
+       " ([[[81, 253, 127], [77, 53, 45]], [[64, 246, 59], [27, 219, 145]]], u'cat'),\n",
+       " ([[[140, 103, 118], [4, 127, 142]], [[124, 1, 142], [35, 173, 28]]], u'dog'),\n",
+       " ([[[58, 193, 28], [41, 201, 109]], [[38, 72, 186], [90, 116, 250]]], u'cat'),\n",
+       " ([[[176, 21, 44], [65, 47, 184]], [[168, 165, 187], [39, 50, 55]]], u'cat'),\n",
+       " ([[[192, 90, 212], [220, 218, 14]], [[157, 246, 55], [102, 99, 93]]], u'bird'),\n",
+       " ([[[29, 183, 34], [23, 8, 210]], [[44, 51, 19], [91, 235, 187]]], u'bird'),\n",
+       " ([[[166, 226, 50], [222, 9, 242]], [[56, 222, 206], [18, 236, 108]]], u'cat'),\n",
+       " ([[[35, 210, 106], [127, 127, 134]], [[55, 162, 157], [62, 115, 201]]], u'dog'),\n",
+       " ([[[134, 36, 93], [65, 36, 4]], [[35, 86, 225], [44, 73, 25]]], u'cat'),\n",
+       " ([[[23, 42, 246], [130, 49, 24]], [[84, 155, 152], [212, 34, 206]]], u'dog'),\n",
+       " ([[[191, 13, 233], [136, 126, 111]], [[173, 220, 176], [209, 223, 211]]], u'cat'),\n",
+       " ([[[192, 255, 112], [217, 8, 134]], [[3, 254, 9], [53, 22, 93]]], u'bird'),\n",
+       " ([[[174, 48, 241], [124, 166, 176]], [[136, 142, 56], [7, 253, 229]]], u'bird'),\n",
+       " ([[[173, 181, 193], [127, 220, 130]], [[126, 76, 91], [135, 210, 94]]], u'dog'),\n",
+       " ([[[219, 147, 155], [56, 99, 72]], [[104, 84, 196], [14, 4, 77]]], u'dog'),\n",
+       " ([[[60, 83, 153], [33, 54, 70]], [[214, 247, 197], [179, 121, 67]]], u'bird'),\n",
+       " ([[[212, 202, 209], [50, 78, 172]], [[196, 233, 227], [39, 49, 76]]], u'dog'),\n",
+       " ([[[246, 89, 127], [66, 245, 187]], [[150, 142, 220], [203, 212, 178]]], u'bird'),\n",
+       " ([[[153, 101, 60], [220, 100, 15]], [[166, 52, 65], [245, 224, 5]]], u'bird'),\n",
+       " ([[[195, 44, 15], [15, 167, 4]], [[104, 38, 71], [94, 225, 220]]], u'bird'),\n",
+       " ([[[189, 168, 192], [112, 107, 89]], [[213, 166, 54], [56, 181, 220]]], u'dog'),\n",
+       " ([[[246, 208, 77], [251, 174, 16]], [[39, 189, 31], [206, 193, 135]]], u'bird'),\n",
+       " ([[[8, 229, 214], [228, 209, 147]], [[140, 146, 3], [247, 235, 215]]], u'dog'),\n",
+       " ([[[33, 16, 82], [252, 124, 72]], [[205, 201, 68], [123, 217, 107]]], u'cat'),\n",
+       " ([[[248, 57, 249], [127, 46, 1]], [[100, 3, 229], [54, 150, 113]]], u'bird')]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -463,7 +438,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -480,8 +455,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -500,7 +475,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -517,7 +492,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -531,7 +506,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -551,7 +526,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -561,23 +536,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -599,7 +574,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -616,8 +591,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -636,7 +611,7 @@
        "[([26, 2, 2, 3], [26, 3], 0), ([26, 2, 2, 3], [26, 3], 1)]"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -644,6 +619,7 @@
    "source": [
     "%%sql\n",
     "DROP TABLE IF EXISTS val_image_data_packed, val_image_data_packed_summary;\n",
+    "\n",
     "SELECT madlib.validation_preprocessor_dl(\n",
     "      'image_data',             -- Source table\n",
     "      'val_image_data_packed',  -- Output table\n",
@@ -652,7 +628,8 @@
     "      'image_data_packed',      -- From training preprocessor step\n",
     "      NULL                      -- Buffer size\n",
     "      ); \n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "\n",
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -664,7 +641,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -684,7 +661,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -694,23 +671,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>val_image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'val_image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'val_image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -731,7 +708,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -752,271 +729,271 @@
        "        <th>species</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188]</td>\n",
+       "        <td>[168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200]</td>\n",
+       "        <td>[24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165]</td>\n",
+       "        <td>[14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170]</td>\n",
+       "        <td>[131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35]</td>\n",
+       "        <td>[211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184]</td>\n",
+       "        <td>[26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208]</td>\n",
+       "        <td>[18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208]</td>\n",
+       "        <td>[56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188]</td>\n",
+       "        <td>[17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215]</td>\n",
-       "        <td>cat</td>\n",
+       "        <td>[186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254]</td>\n",
+       "        <td>[53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54]</td>\n",
+       "        <td>[222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213]</td>\n",
+       "        <td>[64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1]</td>\n",
+       "        <td>[96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153]</td>\n",
+       "        <td>[88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48]</td>\n",
-       "        <td>cat</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163]</td>\n",
+       "        <td>[105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161]</td>\n",
+       "        <td>[230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86]</td>\n",
+       "        <td>[247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126]</td>\n",
+       "        <td>[110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90]</td>\n",
+       "        <td>[63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3]</td>\n",
-       "        <td>bird</td>\n",
+       "        <td>[94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131]</td>\n",
+       "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121]</td>\n",
+       "        <td>[246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232]</td>\n",
-       "        <td>bird</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27]</td>\n",
-       "        <td>dog</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0]</td>\n",
+       "        <td>[106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137]</td>\n",
        "        <td>cat</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205]</td>\n",
+       "        <td>[1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1]</td>\n",
+       "        <td>[81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201]</td>\n",
        "        <td>bird</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114]</td>\n",
+       "        <td>[126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47]</td>\n",
+       "        <td>[10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42]</td>\n",
        "        <td>dog</td>\n",
        "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10]</td>\n",
+       "        <td>bird</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44]</td>\n",
+       "        <td>dog</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143]</td>\n",
+       "        <td>cat</td>\n",
+       "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([19, 126, 250, 219, 119, 255, 86, 152, 200, 36, 57, 188], u'cat'),\n",
-       " ([49, 201, 114, 38, 201, 8, 101, 172, 88, 233, 82, 78], u'dog'),\n",
-       " ([203, 196, 132, 57, 220, 151, 183, 214, 113, 46, 213, 200], u'bird'),\n",
-       " ([157, 236, 255, 90, 38, 48, 35, 152, 86, 236, 160, 187], u'dog'),\n",
-       " ([248, 164, 234, 70, 61, 181, 10, 193, 238, 229, 88, 165], u'bird'),\n",
-       " ([201, 210, 145, 145, 152, 46, 125, 151, 135, 163, 199, 170], u'cat'),\n",
-       " ([29, 150, 219, 216, 46, 211, 124, 24, 25, 186, 205, 35], u'dog'),\n",
-       " ([187, 8, 211, 95, 196, 156, 50, 84, 45, 202, 130, 170], u'dog'),\n",
-       " ([9, 77, 40, 179, 136, 69, 74, 98, 29, 120, 53, 153], u'dog'),\n",
-       " ([78, 83, 93, 113, 206, 23, 121, 160, 119, 61, 60, 168], u'dog'),\n",
-       " ([105, 114, 19, 19, 211, 28, 96, 251, 208, 232, 64, 25], u'cat'),\n",
-       " ([93, 145, 128, 246, 33, 206, 73, 126, 63, 22, 150, 184], u'bird'),\n",
-       " ([12, 245, 243, 181, 134, 92, 39, 153, 112, 250, 181, 208], u'bird'),\n",
-       " ([133, 184, 53, 158, 3, 145, 47, 130, 135, 81, 80, 208], u'bird'),\n",
-       " ([143, 230, 101, 71, 156, 113, 61, 143, 37, 195, 235, 76], u'dog'),\n",
-       " ([91, 70, 17, 43, 59, 150, 227, 111, 53, 229, 0, 100], u'dog'),\n",
-       " ([136, 181, 184, 87, 132, 71, 61, 232, 143, 218, 89, 203], u'dog'),\n",
-       " ([126, 142, 84, 203, 234, 175, 17, 251, 217, 75, 145, 188], u'bird'),\n",
-       " ([198, 162, 187, 42, 9, 67, 223, 193, 154, 99, 9, 215], u'cat'),\n",
-       " ([151, 177, 164, 98, 25, 35, 240, 109, 237, 218, 28, 254], u'bird'),\n",
-       " ([246, 73, 102, 178, 4, 45, 84, 191, 87, 93, 2, 54], u'cat'),\n",
-       " ([156, 153, 39, 115, 228, 190, 35, 136, 32, 61, 171, 16], u'dog'),\n",
-       " ([152, 234, 198, 149, 191, 188, 222, 37, 110, 226, 82, 194], u'dog'),\n",
-       " ([169, 31, 163, 222, 61, 62, 119, 100, 177, 91, 34, 213], u'bird'),\n",
-       " ([67, 17, 141, 83, 188, 37, 61, 130, 187, 252, 62, 153], u'cat'),\n",
-       " ([172, 123, 115, 110, 28, 28, 140, 191, 250, 202, 253, 113], u'cat'),\n",
-       " ([225, 113, 99, 228, 109, 158, 250, 245, 47, 79, 52, 1], u'dog'),\n",
-       " ([137, 50, 48, 110, 202, 76, 211, 142, 78, 174, 232, 206], u'dog'),\n",
-       " ([166, 168, 219, 125, 201, 188, 238, 44, 160, 92, 202, 153], u'cat'),\n",
-       " ([249, 233, 133, 249, 100, 14, 43, 147, 124, 246, 223, 78], u'dog'),\n",
-       " ([45, 253, 108, 251, 135, 18, 163, 98, 143, 108, 30, 126], u'dog'),\n",
-       " ([190, 217, 97, 87, 41, 90, 64, 174, 84, 164, 188, 127], u'cat'),\n",
-       " ([56, 117, 22, 134, 249, 67, 130, 101, 62, 9, 119, 225], u'dog'),\n",
-       " ([6, 78, 138, 132, 230, 72, 93, 71, 159, 134, 161, 223], u'cat'),\n",
-       " ([245, 131, 240, 116, 186, 40, 233, 209, 174, 226, 20, 48], u'cat'),\n",
-       " ([82, 57, 189, 52, 165, 195, 129, 46, 71, 103, 118, 163], u'bird'),\n",
-       " ([21, 41, 79, 244, 93, 68, 120, 78, 184, 50, 117, 161], u'cat'),\n",
-       " ([35, 131, 23, 83, 201, 105, 140, 134, 157, 48, 73, 30], u'dog'),\n",
-       " ([144, 133, 213, 51, 51, 234, 93, 130, 222, 186, 198, 86], u'cat'),\n",
-       " ([126, 136, 125, 31, 139, 160, 161, 162, 242, 106, 11, 126], u'bird'),\n",
-       " ([168, 174, 58, 198, 13, 202, 75, 226, 254, 126, 204, 90], u'bird'),\n",
-       " ([170, 20, 197, 1, 28, 67, 137, 153, 97, 20, 57, 3], u'bird'),\n",
-       " ([43, 109, 193, 169, 94, 105, 88, 152, 46, 101, 98, 121], u'cat'),\n",
-       " ([95, 247, 19, 186, 247, 189, 206, 188, 190, 234, 254, 70], u'dog'),\n",
-       " ([96, 90, 188, 98, 16, 231, 207, 209, 145, 45, 58, 232], u'bird'),\n",
-       " ([104, 77, 39, 226, 148, 134, 217, 166, 64, 207, 99, 14], u'dog'),\n",
-       " ([33, 248, 137, 103, 124, 233, 194, 56, 75, 210, 32, 27], u'dog'),\n",
-       " ([176, 72, 221, 152, 12, 70, 229, 51, 39, 121, 185, 0], u'cat'),\n",
-       " ([249, 207, 131, 7, 90, 164, 255, 228, 11, 123, 205, 205], u'bird'),\n",
-       " ([25, 160, 211, 51, 67, 131, 123, 33, 28, 135, 102, 1], u'bird'),\n",
-       " ([142, 122, 115, 142, 154, 108, 93, 29, 115, 184, 193, 114], u'dog'),\n",
-       " ([204, 237, 105, 153, 161, 129, 57, 116, 181, 124, 247, 47], u'dog')]"
+       "[([168, 228, 110, 3, 51, 104, 192, 23, 120, 249, 96, 99], u'dog'),\n",
+       " ([20, 145, 109, 135, 149, 100, 39, 66, 124, 102, 77, 140], u'dog'),\n",
+       " ([125, 32, 244, 23, 201, 156, 251, 55, 159, 47, 160, 95], u'cat'),\n",
+       " ([24, 88, 166, 123, 193, 186, 12, 46, 65, 161, 145, 104], u'bird'),\n",
+       " ([14, 206, 47, 154, 85, 172, 186, 73, 196, 131, 229, 191], u'bird'),\n",
+       " ([131, 238, 90, 227, 51, 114, 59, 217, 237, 252, 147, 248], u'cat'),\n",
+       " ([211, 153, 187, 59, 123, 200, 10, 171, 98, 95, 87, 28], u'dog'),\n",
+       " ([26, 159, 140, 217, 89, 15, 199, 179, 242, 250, 37, 45], u'bird'),\n",
+       " ([18, 41, 102, 10, 82, 57, 163, 13, 116, 30, 213, 126], u'bird'),\n",
+       " ([56, 221, 31, 84, 132, 58, 243, 16, 19, 76, 31, 218], u'bird'),\n",
+       " ([17, 212, 36, 62, 167, 54, 103, 13, 64, 185, 70, 227], u'bird'),\n",
+       " ([186, 1, 155, 56, 201, 211, 21, 233, 38, 153, 34, 25], u'dog'),\n",
+       " ([53, 101, 200, 15, 101, 217, 227, 137, 23, 138, 191, 126], u'dog'),\n",
+       " ([255, 54, 220, 226, 252, 150, 227, 151, 207, 172, 105, 227], u'dog'),\n",
+       " ([144, 124, 183, 169, 37, 237, 14, 237, 252, 115, 198, 222], u'bird'),\n",
+       " ([222, 104, 188, 92, 254, 187, 146, 219, 157, 142, 113, 128], u'cat'),\n",
+       " ([64, 44, 142, 35, 193, 30, 159, 120, 199, 196, 101, 213], u'bird'),\n",
+       " ([96, 72, 120, 63, 69, 86, 167, 0, 177, 165, 187, 67], u'dog'),\n",
+       " ([88, 210, 241, 216, 246, 48, 4, 132, 83, 197, 162, 242], u'cat'),\n",
+       " ([105, 182, 162, 62, 104, 2, 134, 223, 65, 203, 53, 231], u'bird'),\n",
+       " ([230, 140, 134, 42, 12, 223, 251, 252, 183, 241, 44, 188], u'dog'),\n",
+       " ([127, 129, 24, 113, 190, 129, 40, 96, 191, 143, 98, 69], u'dog'),\n",
+       " ([162, 16, 163, 137, 219, 137, 21, 97, 179, 33, 64, 174], u'cat'),\n",
+       " ([247, 159, 74, 179, 21, 201, 51, 45, 58, 241, 175, 98], u'cat'),\n",
+       " ([110, 241, 179, 179, 96, 85, 195, 3, 222, 158, 140, 244], u'bird'),\n",
+       " ([63, 21, 63, 237, 50, 54, 140, 124, 233, 162, 69, 28], u'bird'),\n",
+       " ([94, 111, 234, 231, 203, 73, 118, 97, 57, 254, 209, 131], u'dog'),\n",
+       " ([246, 73, 151, 78, 201, 43, 59, 1, 215, 155, 138, 63], u'dog'),\n",
+       " ([46, 186, 18, 158, 254, 111, 13, 232, 86, 216, 49, 204], u'cat'),\n",
+       " ([106, 202, 9, 238, 104, 256, 55, 255, 78, 0, 42, 137], u'cat'),\n",
+       " ([1, 35, 139, 64, 121, 185, 250, 139, 87, 248, 250, 100], u'bird'),\n",
+       " ([81, 59, 17, 29, 116, 124, 231, 125, 105, 79, 124, 160], u'cat'),\n",
+       " ([202, 160, 119, 83, 161, 120, 118, 44, 183, 239, 230, 177], u'dog'),\n",
+       " ([61, 169, 117, 160, 136, 197, 220, 153, 226, 79, 21, 201], u'bird'),\n",
+       " ([126, 23, 73, 30, 100, 19, 191, 219, 102, 96, 83, 220], u'dog'),\n",
+       " ([10, 203, 113, 187, 70, 174, 99, 186, 78, 235, 128, 42], u'dog'),\n",
+       " ([98, 122, 154, 42, 70, 24, 66, 143, 54, 166, 161, 245], u'dog'),\n",
+       " ([7, 84, 211, 227, 224, 221, 174, 82, 152, 244, 255, 251], u'bird'),\n",
+       " ([78, 230, 46, 120, 106, 144, 241, 4, 186, 55, 28, 252], u'bird'),\n",
+       " ([82, 162, 103, 71, 35, 110, 156, 246, 81, 124, 211, 255], u'bird'),\n",
+       " ([106, 243, 205, 101, 161, 26, 75, 207, 146, 181, 94, 132], u'bird'),\n",
+       " ([24, 187, 213, 20, 129, 39, 182, 232, 110, 217, 86, 10], u'bird'),\n",
+       " ([168, 134, 161, 167, 83, 12, 154, 32, 113, 58, 58, 188], u'cat'),\n",
+       " ([205, 113, 103, 80, 42, 128, 11, 255, 148, 140, 39, 74], u'dog'),\n",
+       " ([149, 34, 203, 159, 241, 114, 37, 146, 25, 120, 158, 179], u'dog'),\n",
+       " ([15, 237, 210, 202, 246, 159, 59, 94, 239, 101, 221, 250], u'dog'),\n",
+       " ([113, 134, 139, 187, 250, 32, 222, 197, 192, 206, 55, 229], u'dog'),\n",
+       " ([81, 93, 255, 4, 244, 13, 241, 198, 215, 231, 101, 18], u'cat'),\n",
+       " ([84, 120, 34, 78, 220, 147, 212, 103, 79, 206, 136, 44], u'dog'),\n",
+       " ([71, 251, 203, 44, 91, 28, 136, 90, 31, 124, 103, 16], u'cat'),\n",
+       " ([62, 248, 167, 81, 60, 251, 200, 95, 72, 164, 242, 28], u'cat'),\n",
+       " ([65, 235, 147, 109, 126, 219, 103, 73, 6, 195, 101, 143], u'cat')]"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1058,7 +1035,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -1075,8 +1052,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1095,7 +1072,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1112,7 +1089,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1127,7 +1104,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -1144,8 +1121,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1164,7 +1141,7 @@
        "[([26, 12], [26, 3], 0), ([26, 12], [26, 3], 1)]"
       ]
      },
-     "execution_count": 11,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1182,7 +1159,7 @@
     "    NULL                      -- Buffer size\n",
     "    );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM val_image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1197,7 +1174,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -1214,13 +1191,13 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[9, 12]</td>\n",
+       "        <td>[9, 3]</td>\n",
        "        <td>0</td>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1244,22 +1221,22 @@
        "        <td>4</td>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>[8, 12]</td>\n",
-       "        <td>[8, 3]</td>\n",
+       "        <td>[7, 12]</td>\n",
+       "        <td>[7, 3]</td>\n",
        "        <td>5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[([8, 12], [8, 3], 0),\n",
+       "[([9, 12], [9, 3], 0),\n",
        " ([9, 12], [9, 3], 1),\n",
        " ([9, 12], [9, 3], 2),\n",
        " ([9, 12], [9, 3], 3),\n",
        " ([9, 12], [9, 3], 4),\n",
-       " ([8, 12], [8, 3], 5)]"
+       " ([7, 12], [7, 3], 5)]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1276,7 +1253,7 @@
     "                                        255                   -- Normalizing constant\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
@@ -1288,7 +1265,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -1308,7 +1285,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1318,23 +1295,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
-       "        <td>10</td>\n",
+       "        <td>9</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 10, 255.0, 3, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 9, 255.0, [3], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 13,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1356,7 +1333,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -1373,8 +1350,8 @@
       "text/html": [
        "<table>\n",
        "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
+       "        <th>rgb_shape</th>\n",
+       "        <th>species_shape</th>\n",
        "        <th>buffer_id</th>\n",
        "    </tr>\n",
        "    <tr>\n",
@@ -1393,7 +1370,7 @@
        "[([26, 12], [26, 5], 0), ([26, 12], [26, 5], 1)]"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1408,15 +1385,15 @@
     "                                        'rgb',                -- Independent variable\n",
     "                                        NULL,                 -- Buffer size\n",
     "                                        255,                  -- Normalizing constant\n",
-    "                                        5                     -- Number of desired class values\n",
+    "                                        ARRAY[5]              -- Number of desired class values\n",
     "                                        );\n",
     "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
+    "SELECT rgb_shape, species_shape, buffer_id FROM image_data_packed ORDER BY buffer_id;"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
@@ -1436,7 +1413,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1446,23 +1423,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog', None, None]</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>5</td>\n",
+       "        <td>[5]</td>\n",
        "        <td>all_segments</td>\n",
        "        <td>all_segments</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog', None, None], 26, 255.0, 5, 'all_segments', 'all_segments')]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog', None, None], 26, 255.0, [5], 'all_segments', 'all_segments')]"
       ]
      },
-     "execution_count": 15,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1513,7 +1490,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -1538,7 +1515,7 @@
        "        <th>dependent_varname</th>\n",
        "        <th>independent_varname</th>\n",
        "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
+       "        <th>species_class_values</th>\n",
        "        <th>buffer_size</th>\n",
        "        <th>normalizing_const</th>\n",
        "        <th>num_classes</th>\n",
@@ -1548,23 +1525,23 @@
        "    <tr>\n",
        "        <td>image_data</td>\n",
        "        <td>image_data_packed</td>\n",
-       "        <td>species</td>\n",
-       "        <td>rgb</td>\n",
-       "        <td>text</td>\n",
+       "        <td>[u'species']</td>\n",
+       "        <td>[u'rgb']</td>\n",
+       "        <td>[u'text']</td>\n",
        "        <td>[u'bird', u'cat', u'dog']</td>\n",
        "        <td>26</td>\n",
        "        <td>255.0</td>\n",
-       "        <td>3</td>\n",
+       "        <td>[3]</td>\n",
        "        <td>[2, 3]</td>\n",
        "        <td>[0, 1]</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'image_data', u'image_data_packed', u'species', u'rgb', u'text', [u'bird', u'cat', u'dog'], 26, 255.0, 3, [2, 3], [0, 1])]"
+       "[(u'image_data', u'image_data_packed', [u'species'], [u'rgb'], [u'text'], [u'bird', u'cat', u'dog'], 26, 255.0, [3], [2, 3], [0, 1])]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1610,7 +1587,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Train-multiple-models/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb b/community-artifacts/Deep-learning/Train-multiple-models/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb
new file mode 100644
index 0000000..4ae9eae
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-multiple-models/.ipynb_checkpoints/MADlib-Keras-model-selection-MLP-v1-checkpoint.ipynb
@@ -0,0 +1,6279 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Model Selection for Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP for different hyperparameters and model architectures.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples please refer to the deep learning notebooks at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#def_mst\">4. Define and load model selection tuples</a>\n",
+    "\n",
+    "* <a href=\"#train\">5. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">6. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">7. Predict</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',        -- Dependent variable\n",
+    "                                       'attributes'         -- Independent variable\n",
+    "                                        ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
+      "Model: \"sequential\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense (Dense)                (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_1 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_2 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_6 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_4017958_1614991901_4240024__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_28416680_1614991901_72274844__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_4017958_1614991901_4240024__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_28416680_1614991901_72274844__')]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"def_mst\"></a>\n",
+    "# 4.  Define and load model selection tuples"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Generate model configurations using grid search. The output table for grid search contains the unique combinations of model architectures, compile and fit parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8')]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'],\n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam'], 'lr': [0.001, 0.01, 0.1]} ],\n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid\n",
+    "                                         $$\n",
+    "                                         { 'batch_size': [4, 8],\n",
+    "                                           'epochs': [1]\n",
+    "                                         }\n",
+    "                                         $$,                  -- fit_param_grid\n",
+    "                                         'grid'               -- search_type\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "This is the name of the model architecture table that corresponds to the model selection table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>object_table</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'model_arch_library', None)]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mst_table_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 5.  Train\n",
+    "Train multiple models:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                              10,                     -- num_iterations\n",
+    "                                              FALSE                   -- use gpus\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>10</td>\n",
+       "        <td>False</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2021-03-06 00:51:48.452654</td>\n",
+       "        <td>2021-03-06 00:53:20.221035</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', None, u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 10, False, None, None, datetime.datetime(2021, 3, 6, 0, 51, 48, 452654), datetime.datetime(2021, 3, 6, 0, 53, 20, 221035), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [10])]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View results for each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.2427790164948]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.983333349228</td>\n",
+       "        <td>0.201789721847</td>\n",
+       "        <td>[0.983333349227905]</td>\n",
+       "        <td>[0.201789721846581]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[88.9964590072632]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.134730249643</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.134730249643326]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[88.7690601348877]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.402144879103</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.402144879102707]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.9196391105652]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.416792035103</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.416792035102844]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.534707069397]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.19042557478</td>\n",
+       "        <td>[0.908333361148834]</td>\n",
+       "        <td>[0.19042557477951]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.273796081543]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.181902274489</td>\n",
+       "        <td>[0.899999976158142]</td>\n",
+       "        <td>[0.181902274489403]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.4800100326538]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.824999988079</td>\n",
+       "        <td>0.303107827902</td>\n",
+       "        <td>[0.824999988079071]</td>\n",
+       "        <td>[0.30310782790184]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.7936120033264]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.808333337307</td>\n",
+       "        <td>0.300039559603</td>\n",
+       "        <td>[0.808333337306976]</td>\n",
+       "        <td>[0.300039559602737]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.0158791542053]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.658333361149</td>\n",
+       "        <td>0.869387447834</td>\n",
+       "        <td>[0.658333361148834]</td>\n",
+       "        <td>[0.869387447834015]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[91.1929490566254]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.558333337307</td>\n",
+       "        <td>0.84612262249</td>\n",
+       "        <td>[0.558333337306976]</td>\n",
+       "        <td>[0.846122622489929]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[91.7660541534424]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.341666668653</td>\n",
+       "        <td>1.10138702393</td>\n",
+       "        <td>[0.341666668653488]</td>\n",
+       "        <td>[1.10138702392578]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[91.5026919841766]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.341666668653</td>\n",
+       "        <td>1.10163521767</td>\n",
+       "        <td>[0.341666668653488]</td>\n",
+       "        <td>[1.10163521766663]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.2427790164948], [u'accuracy'], u'categorical_crossentropy', 0.983333349227905, 0.201789721846581, [0.983333349227905], [0.201789721846581], None, None, None, None),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [88.9964590072632], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.134730249643326, [0.933333337306976], [0.134730249643326], None, None, None, None),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [88.7690601348877], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.402144879102707, [0.933333337306976], [0.402144879102707], None, None, None, None),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [90.9196391105652], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.416792035102844, [0.933333337306976], [0.416792035102844], None, None, None, None),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [89.534707069397], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.19042557477951, [0.908333361148834], [0.19042557477951], None, None, None, None),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [89.273796081543], [u'accuracy'], u'categorical_crossentropy', 0.899999976158142, 0.181902274489403, [0.899999976158142], [0.181902274489403], None, None, None, None),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.4800100326538], [u'accuracy'], u'categorical_crossentropy', 0.824999988079071, 0.30310782790184, [0.824999988079071], [0.30310782790184], None, None, None, None),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [89.7936120033264], [u'accuracy'], u'categorical_crossentropy', 0.808333337306976, 0.300039559602737, [0.808333337306976], [0.300039559602737], None, None, None, None),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.0158791542053], [u'accuracy'], u'categorical_crossentropy', 0.658333361148834, 0.869387447834015, [0.658333361148834], [0.869387447834015], None, None, None, None),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [91.1929490566254], [u'accuracy'], u'categorical_crossentropy', 0.558333337306976, 0.846122622489929, [0.558333337306976], [0.846122622489929], None, None, None, None),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [91.7660541534424], [u'accuracy'], u'categorical_crossentropy', 0.341666668653488, 1.10138702392578, [0.341666668653488], [1.10138702392578], None, None, None, None),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [91.5026919841766], [u'accuracy'], u'categorical_crossentropy', 0.341666668653488, 1.10163521766663, [0.341666668653488], [1.10163521766663], None, None, None, None)]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY training_metrics_final DESC, training_loss_final;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 6. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.194916069508</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.194916069507599, 0.899999976158142, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_multi_model',  -- model\n",
+    "                                    'iris_test_packed',  -- test table\n",
+    "                                    'iris_validate',     -- output table\n",
+    "                                     NULL,               -- use gpus\n",
+    "                                     9                   -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 7. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.99069124</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9864196</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9983382</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9991603</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9974559</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60661113</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9940832</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9987955</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7598468</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8414144</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.715776</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9163472</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5081183</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.85080105</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9842195</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6804195</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.81555897</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.92707217</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7158722</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.55272627</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7662018</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (10, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (12, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (14, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (18, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (20, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (49, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (55, u'class_text', u'Iris-versicolor', 0.99069124),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.9864196),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9983382),\n",
+       " (76, u'class_text', u'Iris-versicolor', 0.9991603),\n",
+       " (82, u'class_text', u'Iris-versicolor', 0.9974559),\n",
+       " (84, u'class_text', u'Iris-versicolor', 0.60661113),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.9940832),\n",
+       " (98, u'class_text', u'Iris-versicolor', 0.9987955),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.7598468),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.8414144),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.715776),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.9163472),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.5081183),\n",
+       " (121, u'class_text', u'Iris-virginica', 0.85080105),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.9842195),\n",
+       " (125, u'class_text', u'Iris-virginica', 0.6804195),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.81555897),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.92707217),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.7158722),\n",
+       " (148, u'class_text', u'Iris-versicolor', 0.55272627),\n",
+       " (149, u'class_text', u'Iris-virginica', 0.7662018)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'response',        -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    9                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
+    "WHERE iris_predict.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               10,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               3,                     -- metrics compute frequency\n",
+    "                                               FALSE,                 -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Model selection for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>3</td>\n",
+       "        <td>False</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Model selection for iris dataset</td>\n",
+       "        <td>2021-03-06 00:53:31.218406</td>\n",
+       "        <td>2021-03-06 00:55:25.621208</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3, 6, 9, 10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 3, False, u'Sophie L.', u'Model selection for iris dataset', datetime.datetime(2021, 3, 6, 0, 53, 31, 218406), datetime.datetime(2021, 3, 6, 0, 55, 25, 621208), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [3, 6, 9, 10])]"
+      ]
+     },
+     "execution_count": 26,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.5490398406982, 64.223620891571, 97.8899219036102, 113.156138896942]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.991666674614</td>\n",
+       "        <td>0.177691921592</td>\n",
+       "        <td>[0.824999988079071, 0.975000023841858, 0.933333337306976, 0.991666674613953]</td>\n",
+       "        <td>[0.508709609508514, 0.290052831172943, 0.217903628945351, 0.177691921591759]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.20564225316</td>\n",
+       "        <td>[0.833333313465118, 0.966666638851166, 0.933333337306976, 0.966666638851166]</td>\n",
+       "        <td>[0.516587793827057, 0.316147029399872, 0.228292018175125, 0.205642253160477]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.4000718593597, 62.9767029285431, 96.690801858902, 112.145288944244]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.203085869551</td>\n",
+       "        <td>[0.933333337306976, 0.808333337306976, 0.958333313465118, 0.908333361148834]</td>\n",
+       "        <td>[0.372362315654755, 0.304766088724136, 0.11820487678051, 0.203085869550705]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.190864190459</td>\n",
+       "        <td>[0.966666638851166, 0.833333313465118, 0.966666638851166, 0.933333337306976]</td>\n",
+       "        <td>[0.347199022769928, 0.290798246860504, 0.110275268554688, 0.190864190459251]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[30.875373840332, 63.4593389034271, 97.1958589553833, 112.702126979828]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.883333325386</td>\n",
+       "        <td>0.692279815674</td>\n",
+       "        <td>[0.533333361148834, 0.616666674613953, 0.875, 0.883333325386047]</td>\n",
+       "        <td>[1.08197057247162, 0.851473987102509, 0.729827761650085, 0.692279815673828]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.674779772758</td>\n",
+       "        <td>[0.600000023841858, 0.666666686534882, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[1.05298256874084, 0.817528009414673, 0.710631787776947, 0.674779772758484]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[29.8903229236603, 62.4677069187164, 96.1764039993286, 111.539803981781]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.925000011921</td>\n",
+       "        <td>0.176520362496</td>\n",
+       "        <td>[0.833333313465118, 0.925000011920929, 0.774999976158142, 0.925000011920929]</td>\n",
+       "        <td>[0.324734181165695, 0.182637020945549, 0.468331128358841, 0.176520362496376]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.2585529387</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.866666674613953, 0.899999976158142]</td>\n",
+       "        <td>[0.341204434633255, 0.261798053979874, 0.45467621088028, 0.258552938699722]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.7836039066315, 64.4592599868774, 98.1328208446503, 113.377946853638]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.797108471394</td>\n",
+       "        <td>[0.341666668653488, 0.491666674613953, 0.916666686534882, 0.891666650772095]</td>\n",
+       "        <td>[1.09786474704742, 0.967048287391663, 0.838281869888306, 0.797108471393585]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.800795376301</td>\n",
+       "        <td>[0.300000011920929, 0.433333337306976, 0.933333337306976, 0.899999976158142]</td>\n",
+       "        <td>[1.07609903812408, 0.962578594684601, 0.834975183010101, 0.800795376300812]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.1456639766693, 62.722916841507, 96.4333670139313, 111.892151832581]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.816666662693</td>\n",
+       "        <td>0.734887838364</td>\n",
+       "        <td>[0.850000023841858, 0.958333313465118, 0.966666638851166, 0.816666662693024]</td>\n",
+       "        <td>[0.335647404193878, 0.0894104242324829, 0.0672163665294647, 0.734887838363647]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.665323019028</td>\n",
+       "        <td>[0.866666674613953, 0.966666638851166, 0.966666638851166, 0.866666674613953]</td>\n",
+       "        <td>[0.320426166057587, 0.154994085431099, 0.204012081027031, 0.66532301902771]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[32.0452349185944, 64.7241299152374, 98.4015560150146, 113.899842977524]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.791666686535</td>\n",
+       "        <td>0.772948563099</td>\n",
+       "        <td>[0.316666662693024, 0.349999994039536, 0.725000023841858, 0.791666686534882]</td>\n",
+       "        <td>[1.01266825199127, 0.905348658561707, 0.807280421257019, 0.772948563098907]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.740880072117</td>\n",
+       "        <td>[0.400000005960464, 0.466666668653488, 0.800000011920929, 0.866666674613953]</td>\n",
+       "        <td>[0.964996755123138, 0.868514597415924, 0.771895349025726, 0.740880072116852]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.6602540016174, 63.2428169250488, 96.9531948566437, 112.484740972519]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.501820206642</td>\n",
+       "        <td>[0.658333361148834, 0.658333361148834, 0.658333361148834, 0.691666662693024]</td>\n",
+       "        <td>[0.654709756374359, 0.581917643547058, 1.33844769001007, 0.501820206642151]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.457984447479</td>\n",
+       "        <td>[0.699999988079071, 0.699999988079071, 0.699999988079071, 0.766666650772095]</td>\n",
+       "        <td>[0.592061340808868, 0.525563180446625, 1.17788350582123, 0.457984447479248]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.0910878181458, 63.7646949291229, 97.4185988903046, 112.939773797989]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.666666686535</td>\n",
+       "        <td>0.50052946806</td>\n",
+       "        <td>[0.433333337306976, 0.641666650772095, 0.649999976158142, 0.666666686534882]</td>\n",
+       "        <td>[0.850135624408722, 0.611121952533722, 0.509139358997345, 0.50052946805954]</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.459399551153</td>\n",
+       "        <td>[0.466666668653488, 0.699999988079071, 0.699999988079071, 0.733333349227905]</td>\n",
+       "        <td>[0.802468597888947, 0.571285247802734, 0.492577910423279, 0.459399551153183]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[29.6670269966125, 62.2440509796143, 95.9554150104523, 111.311369895935]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.821944594383</td>\n",
+       "        <td>[0.341666668653488, 0.341666668653488, 0.658333361148834, 0.733333349227905]</td>\n",
+       "        <td>[1.06431686878204, 0.996406197547913, 0.869706034660339, 0.82194459438324]</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.852133929729</td>\n",
+       "        <td>[0.300000011920929, 0.300000011920929, 0.699999988079071, 0.699999988079071]</td>\n",
+       "        <td>[1.09268116950989, 1.01670277118683, 0.891825795173645, 0.852133929729462]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[32.5322558879852, 65.2217888832092, 98.9477097988129, 114.400418996811]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.683333337307</td>\n",
+       "        <td>0.455871999264</td>\n",
+       "        <td>[0.725000023841858, 0.683333337306976, 0.683333337306976, 0.683333337306976]</td>\n",
+       "        <td>[0.383917421102524, 0.457853585481644, 0.455943495035172, 0.455871999263763]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.488439053297</td>\n",
+       "        <td>[0.800000011920929, 0.600000023841858, 0.600000023841858, 0.600000023841858]</td>\n",
+       "        <td>[0.388951361179352, 0.50080794095993, 0.487448841333389, 0.488439053297043]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[32.2720308303833, 64.9502189159393, 98.6836059093475, 114.134181976318]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.675000011921</td>\n",
+       "        <td>0.452209770679</td>\n",
+       "        <td>[0.683333337306976, 0.675000011920929, 0.683333337306976, 0.675000011920929]</td>\n",
+       "        <td>[0.492754250764847, 0.469423890113831, 0.571796059608459, 0.452209770679474]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.464268505573</td>\n",
+       "        <td>[0.733333349227905, 0.766666650772095, 0.600000023841858, 0.600000023841858]</td>\n",
+       "        <td>[0.438488334417343, 0.390993624925613, 0.690678656101227, 0.464268505573273]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [31.5490398406982, 64.223620891571, 97.8899219036102, 113.156138896942], [u'accuracy'], u'categorical_crossentropy', 0.991666674613953, 0.177691921591759, [0.824999988079071, 0.975000023841858, 0.933333337306976, 0.991666674613953], [0.508709609508514, 0.290052831172943, 0.217903628945351, 0.177691921591759], 0.966666638851166, 0.205642253160477, [0.833333313465118, 0.966666638851166, 0.933333337306976, 0.966666638851166], [0.516587793827057, 0.316147029399872, 0.228292018175125, 0.205642253160477]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [30.4000718593597, 62.9767029285431, 96.690801858902, 112.145288944244], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.203085869550705, [0.933333337306976, 0.808333337306976, 0.958333313465118, 0.908333361148834], [0.372362315654755, 0.304766088724136, 0.11820487678051, 0.203085869550705], 0.933333337306976, 0.190864190459251, [0.966666638851166, 0.833333313465118, 0.966666638851166, 0.933333337306976], [0.347199022769928, 0.290798246860504, 0.110275268554688, 0.190864190459251]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [30.875373840332, 63.4593389034271, 97.1958589553833, 112.702126979828], [u'accuracy'], u'categorical_crossentropy', 0.883333325386047, 0.692279815673828, [0.533333361148834, 0.616666674613953, 0.875, 0.883333325386047], [1.08197057247162, 0.851473987102509, 0.729827761650085, 0.692279815673828], 0.899999976158142, 0.674779772758484, [0.600000023841858, 0.666666686534882, 0.899999976158142, 0.899999976158142], [1.05298256874084, 0.817528009414673, 0.710631787776947, 0.674779772758484]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [29.8903229236603, 62.4677069187164, 96.1764039993286, 111.539803981781], [u'accuracy'], u'categorical_crossentropy', 0.925000011920929, 0.176520362496376, [0.833333313465118, 0.925000011920929, 0.774999976158142, 0.925000011920929], [0.324734181165695, 0.182637020945549, 0.468331128358841, 0.176520362496376], 0.899999976158142, 0.258552938699722, [0.866666674613953, 0.866666674613953, 0.866666674613953, 0.899999976158142], [0.341204434633255, 0.261798053979874, 0.45467621088028, 0.258552938699722]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [31.7836039066315, 64.4592599868774, 98.1328208446503, 113.377946853638], [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.797108471393585, [0.341666668653488, 0.491666674613953, 0.916666686534882, 0.891666650772095], [1.09786474704742, 0.967048287391663, 0.838281869888306, 0.797108471393585], 0.899999976158142, 0.800795376300812, [0.300000011920929, 0.433333337306976, 0.933333337306976, 0.899999976158142], [1.07609903812408, 0.962578594684601, 0.834975183010101, 0.800795376300812]),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [30.1456639766693, 62.722916841507, 96.4333670139313, 111.892151832581], [u'accuracy'], u'categorical_crossentropy', 0.816666662693024, 0.734887838363647, [0.850000023841858, 0.958333313465118, 0.966666638851166, 0.816666662693024], [0.335647404193878, 0.0894104242324829, 0.0672163665294647, 0.734887838363647], 0.866666674613953, 0.66532301902771, [0.866666674613953, 0.966666638851166, 0.966666638851166, 0.866666674613953], [0.320426166057587, 0.154994085431099, 0.204012081027031, 0.66532301902771]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [32.0452349185944, 64.7241299152374, 98.4015560150146, 113.899842977524], [u'accuracy'], u'categorical_crossentropy', 0.791666686534882, 0.772948563098907, [0.316666662693024, 0.349999994039536, 0.725000023841858, 0.791666686534882], [1.01266825199127, 0.905348658561707, 0.807280421257019, 0.772948563098907], 0.866666674613953, 0.740880072116852, [0.400000005960464, 0.466666668653488, 0.800000011920929, 0.866666674613953], [0.964996755123138, 0.868514597415924, 0.771895349025726, 0.740880072116852]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [30.6602540016174, 63.2428169250488, 96.9531948566437, 112.484740972519], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.501820206642151, [0.658333361148834, 0.658333361148834, 0.658333361148834, 0.691666662693024], [0.654709756374359, 0.581917643547058, 1.33844769001007, 0.501820206642151], 0.766666650772095, 0.457984447479248, [0.699999988079071, 0.699999988079071, 0.699999988079071, 0.766666650772095], [0.592061340808868, 0.525563180446625, 1.17788350582123, 0.457984447479248]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [31.0910878181458, 63.7646949291229, 97.4185988903046, 112.939773797989], [u'accuracy'], u'categorical_crossentropy', 0.666666686534882, 0.50052946805954, [0.433333337306976, 0.641666650772095, 0.649999976158142, 0.666666686534882], [0.850135624408722, 0.611121952533722, 0.509139358997345, 0.50052946805954], 0.733333349227905, 0.459399551153183, [0.466666668653488, 0.699999988079071, 0.699999988079071, 0.733333349227905], [0.802468597888947, 0.571285247802734, 0.492577910423279, 0.459399551153183]),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [29.6670269966125, 62.2440509796143, 95.9554150104523, 111.311369895935], [u'accuracy'], u'categorical_crossentropy', 0.733333349227905, 0.82194459438324, [0.341666668653488, 0.341666668653488, 0.658333361148834, 0.733333349227905], [1.06431686878204, 0.996406197547913, 0.869706034660339, 0.82194459438324], 0.699999988079071, 0.852133929729462, [0.300000011920929, 0.300000011920929, 0.699999988079071, 0.699999988079071], [1.09268116950989, 1.01670277118683, 0.891825795173645, 0.852133929729462]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [32.5322558879852, 65.2217888832092, 98.9477097988129, 114.400418996811], [u'accuracy'], u'categorical_crossentropy', 0.683333337306976, 0.455871999263763, [0.725000023841858, 0.683333337306976, 0.683333337306976, 0.683333337306976], [0.383917421102524, 0.457853585481644, 0.455943495035172, 0.455871999263763], 0.600000023841858, 0.488439053297043, [0.800000011920929, 0.600000023841858, 0.600000023841858, 0.600000023841858], [0.388951361179352, 0.50080794095993, 0.487448841333389, 0.488439053297043]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [32.2720308303833, 64.9502189159393, 98.6836059093475, 114.134181976318], [u'accuracy'], u'categorical_crossentropy', 0.675000011920929, 0.452209770679474, [0.683333337306976, 0.675000011920929, 0.683333337306976, 0.675000011920929], [0.492754250764847, 0.469423890113831, 0.571796059608459, 0.452209770679474], 0.600000023841858, 0.464268505573273, [0.733333349227905, 0.766666650772095, 0.600000023841858, 0.600000023841858], [0.438488334417343, 0.390993624925613, 0.690678656101227, 0.464268505573273])]"
+      ]
+     },
+     "execution_count": 27,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "from matplotlib.ticker import MaxNLocator\n",
+    "from collections import defaultdict\n",
+    "import pandas as pd\n",
+    "import seaborn as sns\n",
+    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
+    "plt.rcParams.update({'font.size': 12})\n",
+    "pd.set_option('display.max_colwidth', -1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2.  Predict probabilities\n",
+    "\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999932</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>6.7611923e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.2535056e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999808</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.9209425e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>4.433645e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99998367</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.6334934e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>4.3492965e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999931</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>6.9504345e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.9190094e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99999726</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>2.719827e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>2.4018267e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999982</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.8036015e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.515534e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99996376</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>3.623055e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.4014193e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99995685</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>4.3105167e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.541236e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99999833</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.6733742e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.0720992e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.97456545</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.025385397</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.912654e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8837083</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.11627731</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.4444132e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9832433</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.016161945</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0005947249</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9934144</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.006202936</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00038262276</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9880006</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.01050145</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0014980072</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.743757</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.25624287</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.1804799e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9489498</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.050999135</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.1051586e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9882598</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.011410431</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00032975432</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7122672</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2864844</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0012483773</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8344315</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.16556835</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.9313943e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7617606</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23823881</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.2156596e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.85601324</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.1439867</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.4068247e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.76065344</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23934652</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.0775706e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.65924823</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.34075174</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.7877243e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.968423</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.031577036</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.5606285e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.72842705</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2715729</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.7875385e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8053533</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.19464317</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.5179064e-06</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7297866</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2702134</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>2.8784607e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5341273</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4658725</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>2.3799986e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6266347</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3733647</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.7692125e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5517554</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4482443</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.1108453e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3, u'class_text', u'Iris-setosa', 0.9999932, 1),\n",
+       " (3, u'class_text', u'Iris-versicolor', 6.7611923e-06, 2),\n",
+       " (3, u'class_text', u'Iris-virginica', 1.2535056e-10, 3),\n",
+       " (10, u'class_text', u'Iris-setosa', 0.9999808, 1),\n",
+       " (10, u'class_text', u'Iris-versicolor', 1.9209425e-05, 2),\n",
+       " (10, u'class_text', u'Iris-virginica', 4.433645e-10, 3),\n",
+       " (12, u'class_text', u'Iris-setosa', 0.99998367, 1),\n",
+       " (12, u'class_text', u'Iris-versicolor', 1.6334934e-05, 2),\n",
+       " (12, u'class_text', u'Iris-virginica', 4.3492965e-10, 3),\n",
+       " (14, u'class_text', u'Iris-setosa', 0.9999931, 1),\n",
+       " (14, u'class_text', u'Iris-versicolor', 6.9504345e-06, 2),\n",
+       " (14, u'class_text', u'Iris-virginica', 1.9190094e-10, 3),\n",
+       " (18, u'class_text', u'Iris-setosa', 0.99999726, 1),\n",
+       " (18, u'class_text', u'Iris-versicolor', 2.719827e-06, 2),\n",
+       " (18, u'class_text', u'Iris-virginica', 2.4018267e-11, 3),\n",
+       " (20, u'class_text', u'Iris-setosa', 0.9999982, 1),\n",
+       " (20, u'class_text', u'Iris-versicolor', 1.8036015e-06, 2),\n",
+       " (20, u'class_text', u'Iris-virginica', 1.515534e-11, 3),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.99996376, 1),\n",
+       " (30, u'class_text', u'Iris-versicolor', 3.623055e-05, 2),\n",
+       " (30, u'class_text', u'Iris-virginica', 1.4014193e-09, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.99995685, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 4.3105167e-05, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 1.541236e-09, 3),\n",
+       " (49, u'class_text', u'Iris-setosa', 0.99999833, 1),\n",
+       " (49, u'class_text', u'Iris-versicolor', 1.6733742e-06, 2),\n",
+       " (49, u'class_text', u'Iris-virginica', 1.0720992e-11, 3),\n",
+       " (55, u'class_text', u'Iris-versicolor', 0.97456545, 1),\n",
+       " (55, u'class_text', u'Iris-virginica', 0.025385397, 2),\n",
+       " (55, u'class_text', u'Iris-setosa', 4.912654e-05, 3),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.8837083, 1),\n",
+       " (64, u'class_text', u'Iris-virginica', 0.11627731, 2),\n",
+       " (64, u'class_text', u'Iris-setosa', 1.4444132e-05, 3),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9832433, 1),\n",
+       " (70, u'class_text', u'Iris-virginica', 0.016161945, 2),\n",
+       " (70, u'class_text', u'Iris-setosa', 0.0005947249, 3),\n",
+       " (76, u'class_text', u'Iris-versicolor', 0.9934144, 1),\n",
+       " (76, u'class_text', u'Iris-virginica', 0.006202936, 2),\n",
+       " (76, u'class_text', u'Iris-setosa', 0.00038262276, 3),\n",
+       " (82, u'class_text', u'Iris-versicolor', 0.9880006, 1),\n",
+       " (82, u'class_text', u'Iris-virginica', 0.01050145, 2),\n",
+       " (82, u'class_text', u'Iris-setosa', 0.0014980072, 3),\n",
+       " (84, u'class_text', u'Iris-virginica', 0.743757, 1),\n",
+       " (84, u'class_text', u'Iris-versicolor', 0.25624287, 2),\n",
+       " (84, u'class_text', u'Iris-setosa', 1.1804799e-07, 3),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.9489498, 1),\n",
+       " (92, u'class_text', u'Iris-virginica', 0.050999135, 2),\n",
+       " (92, u'class_text', u'Iris-setosa', 5.1051586e-05, 3),\n",
+       " (98, u'class_text', u'Iris-versicolor', 0.9882598, 1),\n",
+       " (98, u'class_text', u'Iris-virginica', 0.011410431, 2),\n",
+       " (98, u'class_text', u'Iris-setosa', 0.00032975432, 3),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.7122672, 1),\n",
+       " (99, u'class_text', u'Iris-setosa', 0.2864844, 2),\n",
+       " (99, u'class_text', u'Iris-virginica', 0.0012483773, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.8344315, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.16556835, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 4.9313943e-08, 3),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.7617606, 1),\n",
+       " (107, u'class_text', u'Iris-versicolor', 0.23823881, 2),\n",
+       " (107, u'class_text', u'Iris-setosa', 6.2156596e-07, 3),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.85601324, 1),\n",
+       " (114, u'class_text', u'Iris-versicolor', 0.1439867, 2),\n",
+       " (114, u'class_text', u'Iris-setosa', 3.4068247e-08, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.76065344, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.23934652, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 4.0775706e-08, 3),\n",
+       " (121, u'class_text', u'Iris-virginica', 0.65924823, 1),\n",
+       " (121, u'class_text', u'Iris-versicolor', 0.34075174, 2),\n",
+       " (121, u'class_text', u'Iris-setosa', 3.7877243e-08, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.968423, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.031577036, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 1.5606285e-11, 3),\n",
+       " (125, u'class_text', u'Iris-virginica', 0.72842705, 1),\n",
+       " (125, u'class_text', u'Iris-versicolor', 0.2715729, 2),\n",
+       " (125, u'class_text', u'Iris-setosa', 3.7875385e-08, 3),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.8053533, 1),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.19464317, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 3.5179064e-06, 3),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.7297866, 1),\n",
+       " (145, u'class_text', u'Iris-versicolor', 0.2702134, 2),\n",
+       " (145, u'class_text', u'Iris-setosa', 2.8784607e-08, 3),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.5341273, 1),\n",
+       " (147, u'class_text', u'Iris-versicolor', 0.4658725, 2),\n",
+       " (147, u'class_text', u'Iris-setosa', 2.3799986e-07, 3),\n",
+       " (148, u'class_text', u'Iris-versicolor', 0.6266347, 1),\n",
+       " (148, u'class_text', u'Iris-virginica', 0.3733647, 2),\n",
+       " (148, u'class_text', u'Iris-setosa', 5.7692125e-07, 3),\n",
+       " (149, u'class_text', u'Iris-virginica', 0.5517554, 1),\n",
+       " (149, u'class_text', u'Iris-versicolor', 0.4482443, 2),\n",
+       " (149, u'class_text', u'Iris-setosa', 3.1108453e-07, 3)]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'prob',            -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    3                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3.  Warm start\n",
+    "\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               3,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               1,                     -- metrics compute frequency\n",
+    "                                               TRUE,                  -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Simple MLP for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>True</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>2021-03-06 00:55:34.010762</td>\n",
+       "        <td>2021-03-06 00:56:20.576330</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[1, 2, 3]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 3, 1, True, u'Sophie L.', u'Simple MLP for iris dataset', datetime.datetime(2021, 3, 6, 0, 55, 34, 10762), datetime.datetime(2021, 3, 6, 0, 56, 20, 576330), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [1, 2, 3])]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.8246030807495, 28.3149819374084, 43.8511519432068]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.125932246447</td>\n",
+       "        <td>[0.983333349227905, 0.908333361148834, 0.949999988079071]</td>\n",
+       "        <td>[0.0759517326951027, 0.280529856681824, 0.125932246446609]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.262804627419</td>\n",
+       "        <td>[0.966666638851166, 0.933333337306976, 0.966666638851166]</td>\n",
+       "        <td>[0.115140154957771, 0.282798647880554, 0.262804627418518]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.3267669677734, 27.5790538787842, 43.3719210624695]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.958333313465</td>\n",
+       "        <td>0.646220803261</td>\n",
+       "        <td>[0.916666686534882, 0.774999976158142, 0.958333313465118]</td>\n",
+       "        <td>[0.760809063911438, 0.70676600933075, 0.646220803260803]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.676706075668</td>\n",
+       "        <td>[0.899999976158142, 0.699999988079071, 0.966666638851166]</td>\n",
+       "        <td>[0.789911270141602, 0.741125166416168, 0.676706075668335]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.8655989170074, 29.3921880722046, 45.186311006546]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.161019146442</td>\n",
+       "        <td>[0.608333349227905, 0.975000023841858, 0.966666638851166]</td>\n",
+       "        <td>[0.656926870346069, 0.154457986354828, 0.161019146442413]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.184286847711</td>\n",
+       "        <td>[0.666666686534882, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.60343611240387, 0.166501134634018, 0.184286847710609]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.5584180355072, 27.7957689762115, 43.5938129425049]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.925000011921</td>\n",
+       "        <td>0.125614732504</td>\n",
+       "        <td>[0.850000023841858, 0.908333361148834, 0.925000011920929]</td>\n",
+       "        <td>[0.311796188354492, 0.228279903531075, 0.125614732503891]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.205575048923</td>\n",
+       "        <td>[0.699999988079071, 0.899999976158142, 0.933333337306976]</td>\n",
+       "        <td>[0.434732705354691, 0.278642177581787, 0.205575048923492]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.3016650676727, 29.8289239406586, 45.6773319244385]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.680241525173</td>\n",
+       "        <td>[0.899999976158142, 0.899999976158142, 0.916666686534882]</td>\n",
+       "        <td>[0.75947380065918, 0.717410624027252, 0.680241525173187]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.685820519924</td>\n",
+       "        <td>[0.933333337306976, 0.933333337306976, 0.933333337306976]</td>\n",
+       "        <td>[0.764581918716431, 0.718774557113647, 0.685820519924164]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.6457929611206, 29.1624140739441, 44.9534199237823]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.590237081051</td>\n",
+       "        <td>[0.824999988079071, 0.783333361148834, 0.891666650772095]</td>\n",
+       "        <td>[0.666068911552429, 0.633061707019806, 0.590237081050873]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.576045572758</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.899999976158142]</td>\n",
+       "        <td>[0.645683944225311, 0.608498632907867, 0.576045572757721]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.0837008953094, 29.6097829341888, 45.4142129421234]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.174454689026</td>\n",
+       "        <td>[0.949999988079071, 0.958333313465118, 0.916666686534882]</td>\n",
+       "        <td>[0.166735425591469, 0.141851797699928, 0.174454689025879]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.219132959843</td>\n",
+       "        <td>[0.966666638851166, 0.933333337306976, 0.899999976158142]</td>\n",
+       "        <td>[0.186790466308594, 0.176578417420387, 0.219132959842682]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.1594960689545, 28.5860660076141, 44.1881170272827]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.285291582346</td>\n",
+       "        <td>[0.774999976158142, 0.949999988079071, 0.866666674613953]</td>\n",
+       "        <td>[0.441815197467804, 0.140827313065529, 0.285291582345963]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.246576815844</td>\n",
+       "        <td>[0.766666650772095, 0.966666638851166, 0.866666674613953]</td>\n",
+       "        <td>[0.4128278195858, 0.146319955587387, 0.246576815843582]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[14.5546190738678, 30.0798380374908, 45.94082903862]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.850000023842</td>\n",
+       "        <td>0.675731360912</td>\n",
+       "        <td>[0.791666686534882, 0.841666638851166, 0.850000023841858]</td>\n",
+       "        <td>[0.746130049228668, 0.706377267837524, 0.675731360912323]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.650432705879</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.866666674613953]</td>\n",
+       "        <td>[0.712817847728729, 0.677974581718445, 0.650432705879211]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[15.3575170040131, 30.5435180664062, 46.5635209083557]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.658333361149</td>\n",
+       "        <td>0.45723798871</td>\n",
+       "        <td>[0.658333361148834, 0.683333337306976, 0.658333361148834]</td>\n",
+       "        <td>[0.457635939121246, 0.455960959196091, 0.457237988710403]</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.48275628686</td>\n",
+       "        <td>[0.699999988079071, 0.600000023841858, 0.699999988079071]</td>\n",
+       "        <td>[0.48207613825798, 0.491984754800797, 0.482756286859512]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.8466219902039, 30.2953569889069, 46.1656670570374]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.683333337307</td>\n",
+       "        <td>0.456283688545</td>\n",
+       "        <td>[0.925000011920929, 0.899999976158142, 0.683333337306976]</td>\n",
+       "        <td>[0.224153310060501, 0.295417010784149, 0.456283688545227]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.494575560093</td>\n",
+       "        <td>[0.966666638851166, 0.899999976158142, 0.600000023841858]</td>\n",
+       "        <td>[0.227903217077255, 0.345975488424301, 0.494575560092926]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.4095330238342, 28.938658952713, 44.7153990268707]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.528191685677</td>\n",
+       "        <td>[0.708333313465118, 0.966666638851166, 0.691666662693024]</td>\n",
+       "        <td>[0.395545929670334, 0.100506067276001, 0.528191685676575]</td>\n",
+       "        <td>0.566666662693</td>\n",
+       "        <td>0.720313131809</td>\n",
+       "        <td>[0.633333325386047, 0.966666638851166, 0.566666662693024]</td>\n",
+       "        <td>[0.508394777774811, 0.130626574158669, 0.720313131809235]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.8246030807495, 28.3149819374084, 43.8511519432068], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.125932246446609, [0.983333349227905, 0.908333361148834, 0.949999988079071], [0.0759517326951027, 0.280529856681824, 0.125932246446609], 0.966666638851166, 0.262804627418518, [0.966666638851166, 0.933333337306976, 0.966666638851166], [0.115140154957771, 0.282798647880554, 0.262804627418518]),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.3267669677734, 27.5790538787842, 43.3719210624695], [u'accuracy'], u'categorical_crossentropy', 0.958333313465118, 0.646220803260803, [0.916666686534882, 0.774999976158142, 0.958333313465118], [0.760809063911438, 0.70676600933075, 0.646220803260803], 0.966666638851166, 0.676706075668335, [0.899999976158142, 0.699999988079071, 0.966666638851166], [0.789911270141602, 0.741125166416168, 0.676706075668335]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.8655989170074, 29.3921880722046, 45.186311006546], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.161019146442413, [0.608333349227905, 0.975000023841858, 0.966666638851166], [0.656926870346069, 0.154457986354828, 0.161019146442413], 0.966666638851166, 0.184286847710609, [0.666666686534882, 0.966666638851166, 0.966666638851166], [0.60343611240387, 0.166501134634018, 0.184286847710609]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [12.5584180355072, 27.7957689762115, 43.5938129425049], [u'accuracy'], u'categorical_crossentropy', 0.925000011920929, 0.125614732503891, [0.850000023841858, 0.908333361148834, 0.925000011920929], [0.311796188354492, 0.228279903531075, 0.125614732503891], 0.933333337306976, 0.205575048923492, [0.699999988079071, 0.899999976158142, 0.933333337306976], [0.434732705354691, 0.278642177581787, 0.205575048923492]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [14.3016650676727, 29.8289239406586, 45.6773319244385], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.680241525173187, [0.899999976158142, 0.899999976158142, 0.916666686534882], [0.75947380065918, 0.717410624027252, 0.680241525173187], 0.933333337306976, 0.685820519924164, [0.933333337306976, 0.933333337306976, 0.933333337306976], [0.764581918716431, 0.718774557113647, 0.685820519924164]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.6457929611206, 29.1624140739441, 44.9534199237823], [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.590237081050873, [0.824999988079071, 0.783333361148834, 0.891666650772095], [0.666068911552429, 0.633061707019806, 0.590237081050873], 0.899999976158142, 0.576045572757721, [0.866666674613953, 0.866666674613953, 0.899999976158142], [0.645683944225311, 0.608498632907867, 0.576045572757721]),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [14.0837008953094, 29.6097829341888, 45.4142129421234], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.174454689025879, [0.949999988079071, 0.958333313465118, 0.916666686534882], [0.166735425591469, 0.141851797699928, 0.174454689025879], 0.899999976158142, 0.219132959842682, [0.966666638851166, 0.933333337306976, 0.899999976158142], [0.186790466308594, 0.176578417420387, 0.219132959842682]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.1594960689545, 28.5860660076141, 44.1881170272827], [u'accuracy'], u'categorical_crossentropy', 0.866666674613953, 0.285291582345963, [0.774999976158142, 0.949999988079071, 0.866666674613953], [0.441815197467804, 0.140827313065529, 0.285291582345963], 0.866666674613953, 0.246576815843582, [0.766666650772095, 0.966666638851166, 0.866666674613953], [0.4128278195858, 0.146319955587387, 0.246576815843582]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [14.5546190738678, 30.0798380374908, 45.94082903862], [u'accuracy'], u'categorical_crossentropy', 0.850000023841858, 0.675731360912323, [0.791666686534882, 0.841666638851166, 0.850000023841858], [0.746130049228668, 0.706377267837524, 0.675731360912323], 0.866666674613953, 0.650432705879211, [0.866666674613953, 0.866666674613953, 0.866666674613953], [0.712817847728729, 0.677974581718445, 0.650432705879211]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [15.3575170040131, 30.5435180664062, 46.5635209083557], [u'accuracy'], u'categorical_crossentropy', 0.658333361148834, 0.457237988710403, [0.658333361148834, 0.683333337306976, 0.658333361148834], [0.457635939121246, 0.455960959196091, 0.457237988710403], 0.699999988079071, 0.482756286859512, [0.699999988079071, 0.600000023841858, 0.699999988079071], [0.48207613825798, 0.491984754800797, 0.482756286859512]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [14.8466219902039, 30.2953569889069, 46.1656670570374], [u'accuracy'], u'categorical_crossentropy', 0.683333337306976, 0.456283688545227, [0.925000011920929, 0.899999976158142, 0.683333337306976], [0.224153310060501, 0.295417010784149, 0.456283688545227], 0.600000023841858, 0.494575560092926, [0.966666638851166, 0.899999976158142, 0.600000023841858], [0.227903217077255, 0.345975488424301, 0.494575560092926]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.4095330238342, 28.938658952713, 44.7153990268707], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.528191685676575, [0.708333313465118, 0.966666638851166, 0.691666662693024], [0.395545929670334, 0.100506067276001, 0.528191685676575], 0.566666662693024, 0.720313131809235, [0.633333325386047, 0.966666638851166, 0.566666662693024], [0.508394777774811, 0.130626574158669, 0.720313131809235])]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Train-multiple-models/AutoML-MLP-v1.ipynb b/community-artifacts/Deep-learning/Train-multiple-models/AutoML-MLP-v1.ipynb
new file mode 100755
index 0000000..c679b3c
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-multiple-models/AutoML-MLP-v1.ipynb
@@ -0,0 +1,6937 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# AutoML for Multilayer Perceptron\n",
+    "\n",
+    "E2E classification example using autoML methods for optimizing hyperparameters and model architectures.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples please refer to the deep learning notebooks at\n",
+    "https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "<a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "<a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "<a href=\"#hyperband\">4. Hyperband</a>\n",
+    "\n",
+    "<a href=\"#hyperopt\">5. Hyperopt</a>\n",
+    "\n",
+    "<a href=\"#pred\">6. Predict</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP (PM demo machine) - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',        -- Dependent variable\n",
+    "                                       'attributes'         -- Independent variable\n",
+    "                                        ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
+      "Model: \"sequential\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense (Dense)                (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_1 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_2 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_6 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_71395301_1614988659_10232289__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_60560187_1614988660_9612153__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_71395301_1614988659_10232289__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_60560187_1614988660_9612153__')]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"hyperband\"></a>\n",
+    "# 4.  Hyperband"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Print schedule for run:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "6 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>s</th>\n",
+       "        <th>i</th>\n",
+       "        <th>n_i</th>\n",
+       "        <th>r_i</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "        <td>9</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>9</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>0</td>\n",
+       "        <td>3</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>9</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>0</td>\n",
+       "        <td>3</td>\n",
+       "        <td>9</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2, 0, 9, 1),\n",
+       " (2, 1, 3, 3),\n",
+       " (2, 2, 1, 9),\n",
+       " (1, 0, 3, 3),\n",
+       " (1, 1, 1, 9),\n",
+       " (0, 0, 3, 9)]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS hb_schedule;\n",
+    "SELECT madlib.hyperband_schedule ('hb_schedule', \n",
+    "                                   9,\n",
+    "                                   3,\n",
+    "                                   0);\n",
+    "SELECT * FROM hb_schedule ORDER BY s DESC, i;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_automl</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS automl_output, automl_output_info, automl_output_summary, automl_mst_table, automl_mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_automl('iris_train_packed',                -- source table\n",
+    "                                  'automl_output',                    -- model output table\n",
+    "                                  'model_arch_library',               -- model architecture table\n",
+    "                                  'automl_mst_table',                 -- model selection output table\n",
+    "                                  ARRAY[1,2],                         -- model IDs\n",
+    "                                  $${\n",
+    "                                      'loss': ['categorical_crossentropy'], \n",
+    "                                      'optimizer_params_list': [ \n",
+    "                                          {'optimizer': ['Adam'],'lr': [0.001, 0.1, 'log']},\n",
+    "                                          {'optimizer': ['RMSprop'],'lr': [0.001, 0.1, 'log']}\n",
+    "                                      ],\n",
+    "                                      'metrics': ['accuracy']\n",
+    "                                  } $$,                               -- compile param grid\n",
+    "                                  $${'batch_size': [4, 8], 'epochs': [1]}$$,  -- fit params grid\n",
+    "                                  'hyperband',                        -- autoML method\n",
+    "                                  'R=9, eta=3, skip_last=0',          -- autoML params\n",
+    "                                  NULL,                               -- random state\n",
+    "                                  NULL,                               -- object table\n",
+    "                                  FALSE,                              -- use GPUs\n",
+    "                                  'iris_test_packed',                 -- validation table\n",
+    "                                  1,                                  -- metrics compute freq\n",
+    "                                  NULL,                               -- name\n",
+    "                                  NULL);                              -- descr"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>automl_method</th>\n",
+       "        <th>automl_params</th>\n",
+       "        <th>random_state</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>use_gpus</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>automl_output</td>\n",
+       "        <td>automl_output_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>automl_mst_table</td>\n",
+       "        <td>hyperband</td>\n",
+       "        <td>R=9, eta=3, skip_last=0</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>False</td>\n",
+       "        <td>1</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2021-03-05 23:57:44</td>\n",
+       "        <td>2021-03-05 23:59:24</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'automl_output', u'automl_output_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'automl_mst_table', u'hyperband', u'R=9, eta=3, skip_last=0', None, None, False, 1, None, None, datetime.datetime(2021, 3, 5, 23, 57, 44), datetime.datetime(2021, 3, 5, 23, 59, 24), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0)]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM automl_output_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View results for each model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "15 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>s</th>\n",
+       "        <th>i</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.04232194170481019)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[21.911346912384, 29.2674539089203, 36.8268938064575, 44.9022789001465, 51.1760609149933, 57.6593999862671, 64.184476852417, 70.5566418170929, 77.0253269672394, 83.4826798439026, 90.1138219833374, 96.4566838741302]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.0775080993772</td>\n",
+       "        <td>[0.791666686534882, 0.608333349227905, 0.966666638851166, 0.975000023841858, 0.966666638851166, 0.800000011920929, 0.975000023841858, 0.683333337306976, 0.733333349227905, 0.949999988079071, 0.949999988079071, 0.975000023841858]</td>\n",
+       "        <td>[0.374035209417343, 0.732228577136993, 0.170820266008377, 0.112313792109489, 0.172022193670273, 0.384404003620148, 0.115418829023838, 0.450868725776672, 0.457187473773956, 0.140348106622696, 0.15950845181942, 0.0775080993771553]</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0.0383280552924</td>\n",
+       "        <td>[0.899999976158142, 0.566666662693024, 0.966666638851166, 1.0, 1.0, 0.800000011920929, 0.966666638851166, 0.833333313465118, 0.899999976158142, 1.0, 0.899999976158142, 1.0]</td>\n",
+       "        <td>[0.273769021034241, 0.709117114543915, 0.154145583510399, 0.093109056353569, 0.130981177091599, 0.318724304437637, 0.102762393653393, 0.268609821796417, 0.253254026174545, 0.103913448750973, 0.194639429450035, 0.0383280552923679]</td>\n",
+       "        <td>[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.009905852828976726)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[44.6836378574371, 50.92365193367, 57.3649659156799, 63.7576060295105, 70.1174209117889, 76.788703918457, 83.2217078208923, 89.8764188289642, 96.2273638248444]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.0799522325397</td>\n",
+       "        <td>[0.949999988079071, 0.791666686534882, 0.800000011920929, 0.850000023841858, 0.958333313465118, 0.975000023841858, 0.899999976158142, 0.975000023841858, 0.975000023841858]</td>\n",
+       "        <td>[0.447714686393738, 0.36309215426445, 0.324623554944992, 0.301780551671982, 0.142947062849998, 0.120139442384243, 0.255296260118484, 0.0816238224506378, 0.0799522325396538]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.0760450512171</td>\n",
+       "        <td>[0.966666638851166, 0.899999976158142, 0.800000011920929, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 1.0, 0.966666638851166]</td>\n",
+       "        <td>[0.370463252067566, 0.25237438082695, 0.317549884319305, 0.187985330820084, 0.104904659092426, 0.112288065254688, 0.160248279571533, 0.0687147378921509, 0.0760450512170792]</td>\n",
+       "        <td>[5, 6, 7, 8, 9, 10, 11, 12, 13]</td>\n",
+       "        <td>0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01678679876224294)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[11.5813798904419, 21.0226759910583, 28.4713099002838, 35.9315679073334, 44.4656569957733, 50.7044010162354, 57.1448848247528, 63.4595718383789, 69.8967549800873, 76.3639938831329, 82.7779839038849, 89.6248579025269, 95.9936518669128]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.958333313465</td>\n",
+       "        <td>0.113370150328</td>\n",
+       "        <td>[0.641666650772095, 0.908333361148834, 0.891666650772095, 0.891666650772095, 0.866666674613953, 0.941666662693024, 0.941666662693024, 0.933333337306976, 0.933333337306976, 0.858333349227905, 0.966666638851166, 0.958333313465118, 0.958333313465118]</td>\n",
+       "        <td>[0.656313836574554, 0.41341444849968, 0.324400961399078, 0.304112106561661, 0.336616456508636, 0.160554125905037, 0.135852053761482, 0.159805878996849, 0.174078181385994, 0.316538035869598, 0.104411341249943, 0.105065681040287, 0.113370150327682]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.121701933444</td>\n",
+       "        <td>[0.766666650772095, 0.933333337306976, 0.866666674613953, 0.866666674613953, 0.899999976158142, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.563848853111267, 0.330921590328217, 0.292684972286224, 0.273869335651398, 0.317834258079529, 0.144475534558296, 0.147552534937859, 0.153202146291733, 0.158350095152855, 0.22741986811161, 0.114596471190453, 0.117612592875957, 0.121701933443546]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.01930169481426345)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[44.2033138275146, 50.4514999389648, 56.8880548477173, 63.2074518203735, 69.5435798168182, 76.1080069541931, 82.519660949707, 89.1418299674988, 95.518424987793]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.941666662693</td>\n",
+       "        <td>0.206491559744</td>\n",
+       "        <td>[0.566666662693024, 0.916666686534882, 0.883333325386047, 0.958333313465118, 0.841666638851166, 0.875, 0.783333361148834, 0.766666650772095, 0.941666662693024]</td>\n",
+       "        <td>[0.774700284004211, 0.651901543140411, 0.496851295232773, 0.405008375644684, 0.356276631355286, 0.340960919857025, 0.381286114454269, 0.388935476541519, 0.206491559743881]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.170937761664</td>\n",
+       "        <td>[0.733333349227905, 0.933333337306976, 0.866666674613953, 0.933333337306976, 0.866666674613953, 0.866666674613953, 0.833333313465118, 0.833333313465118, 0.966666638851166]</td>\n",
+       "        <td>[0.76544976234436, 0.657529413700104, 0.4853755235672, 0.377188384532928, 0.356318116188049, 0.332274377346039, 0.372768431901932, 0.397462010383606, 0.170937761664391]</td>\n",
+       "        <td>[5, 6, 7, 8, 9, 10, 11, 12, 13]</td>\n",
+       "        <td>0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.011578246765795313)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.2524900436401, 22.163911819458, 29.4894979000092, 37.043762922287]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.791666686535</td>\n",
+       "        <td>0.595036566257</td>\n",
+       "        <td>[0.0333333350718021, 0.633333325386047, 0.816666662693024, 0.791666686534882]</td>\n",
+       "        <td>[0.947992205619812, 0.782966256141663, 0.679944217205048, 0.595036566257477]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.56917822361</td>\n",
+       "        <td>[0.100000001490116, 0.766666650772095, 0.933333337306976, 0.899999976158142]</td>\n",
+       "        <td>[0.972650408744812, 0.776390075683594, 0.681758761405945, 0.569178223609924]</td>\n",
+       "        <td>[1, 2, 3, 4]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0699102360375282)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[22.5178759098053, 29.7163498401642, 37.2609059810638]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.389858365059</td>\n",
+       "        <td>[0.641666650772095, 0.641666650772095, 0.699999988079071]</td>\n",
+       "        <td>[0.79219126701355, 0.460052192211151, 0.389858365058899]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.250768661499</td>\n",
+       "        <td>[0.766666650772095, 0.766666650772095, 0.866666674613953]</td>\n",
+       "        <td>[0.765598654747009, 0.334016799926758, 0.250768661499023]</td>\n",
+       "        <td>[2, 3, 4]</td>\n",
+       "        <td>1</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.024714880320122704)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.0343589782715, 21.4979238510132, 29.0434989929199, 36.4899458885193]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.649999976158</td>\n",
+       "        <td>0.673553228378</td>\n",
+       "        <td>[0.691666662693024, 0.841666638851166, 0.983333349227905, 0.649999976158142]</td>\n",
+       "        <td>[0.388701051473618, 0.424284487962723, 0.180928915739059, 0.673553228378296]</td>\n",
+       "        <td>0.800000011921</td>\n",
+       "        <td>0.384207844734</td>\n",
+       "        <td>[0.833333313465118, 0.800000011920929, 0.966666638851166, 0.800000011920929]</td>\n",
+       "        <td>[0.255310624837875, 0.357394397258759, 0.147510275244713, 0.384207844734192]</td>\n",
+       "        <td>[1, 2, 3, 4]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.05573574908119242)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[45.168872833252, 51.7013738155365, 58.1221590042114, 64.4642739295959, 70.8308379650116, 77.295382976532, 83.7621510028839, 90.3811860084534, 96.7183079719543]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.816666662693</td>\n",
+       "        <td>0.457783430815</td>\n",
+       "        <td>[0.358333319425583, 0.925000011920929, 0.675000011920929, 0.733333349227905, 0.949999988079071, 0.666666686534882, 0.741666674613953, 0.908333361148834, 0.816666662693024]</td>\n",
+       "        <td>[1.03486049175262, 0.43449866771698, 0.842896223068237, 0.392013370990753, 0.195524752140045, 0.572380185127258, 0.43743160367012, 0.278554767370224, 0.457783430814743]</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.670406579971</td>\n",
+       "        <td>[0.233333334326744, 0.966666638851166, 0.866666674613953, 0.866666674613953, 0.966666638851166, 0.666666686534882, 0.899999976158142, 0.933333337306976, 0.733333349227905]</td>\n",
+       "        <td>[1.05548679828644, 0.372740298509598, 0.427788466215134, 0.282503575086594, 0.135918349027634, 0.589654743671417, 0.253296822309494, 0.159830048680305, 0.670406579971313]</td>\n",
+       "        <td>[5, 6, 7, 8, 9, 10, 11, 12, 13]</td>\n",
+       "        <td>0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.09641245863612281)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.7177708148956]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.658333361149</td>\n",
+       "        <td>1.25986480713</td>\n",
+       "        <td>[0.658333361148834]</td>\n",
+       "        <td>[1.25986480712891]</td>\n",
+       "        <td>0.633333325386</td>\n",
+       "        <td>1.26717245579</td>\n",
+       "        <td>[0.633333325386047]</td>\n",
+       "        <td>[1.26717245578766]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.003730347382813742)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[11.1050899028778]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>1.23435640335</td>\n",
+       "        <td>[0.600000023841858]</td>\n",
+       "        <td>[1.23435640335083]</td>\n",
+       "        <td>0.5</td>\n",
+       "        <td>1.37250542641</td>\n",
+       "        <td>[0.5]</td>\n",
+       "        <td>[1.37250542640686]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0018352035707327032)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[11.3283720016479]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.466666668653</td>\n",
+       "        <td>1.01645076275</td>\n",
+       "        <td>[0.466666668653488]</td>\n",
+       "        <td>[1.01645076274872]</td>\n",
+       "        <td>0.433333337307</td>\n",
+       "        <td>1.01912522316</td>\n",
+       "        <td>[0.433333337306976]</td>\n",
+       "        <td>[1.01912522315979]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.03837714620063437)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.5016968250275]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.308333337307</td>\n",
+       "        <td>1.0995465517</td>\n",
+       "        <td>[0.308333337306976]</td>\n",
+       "        <td>[1.09954655170441]</td>\n",
+       "        <td>0.433333337307</td>\n",
+       "        <td>1.0980553627</td>\n",
+       "        <td>[0.433333337306976]</td>\n",
+       "        <td>[1.09805536270142]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.0017052377620857802)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[10.8097839355469]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.341666668653</td>\n",
+       "        <td>1.28075575829</td>\n",
+       "        <td>[0.341666668653488]</td>\n",
+       "        <td>[1.28075575828552]</td>\n",
+       "        <td>0.366666674614</td>\n",
+       "        <td>1.43494951725</td>\n",
+       "        <td>[0.366666674613953]</td>\n",
+       "        <td>[1.43494951725006]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.0015217424326594508)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[21.2741727828979, 28.7427089214325, 36.1846778392792]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.333333343267</td>\n",
+       "        <td>1.07403242588</td>\n",
+       "        <td>[0.474999994039536, 0.358333319425583, 0.333333343267441]</td>\n",
+       "        <td>[1.08657968044281, 1.07721281051636, 1.07403242588043]</td>\n",
+       "        <td>0.333333343267</td>\n",
+       "        <td>1.09314000607</td>\n",
+       "        <td>[0.433333337306976, 0.300000011920929, 0.333333343267441]</td>\n",
+       "        <td>[1.11294913291931, 1.10347521305084, 1.09314000606537]</td>\n",
+       "        <td>[2, 3, 4]</td>\n",
+       "        <td>1</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.051964270528848694)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[11.8142108917236]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.333333343267</td>\n",
+       "        <td>1.09948420525</td>\n",
+       "        <td>[0.333333343267441]</td>\n",
+       "        <td>[1.09948420524597]</td>\n",
+       "        <td>0.333333343267</td>\n",
+       "        <td>1.09620642662</td>\n",
+       "        <td>[0.333333343267441]</td>\n",
+       "        <td>[1.09620642662048]</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>2</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(10, 1, u\"optimizer='Adam(lr=0.04232194170481019)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [21.911346912384, 29.2674539089203, 36.8268938064575, 44.9022789001465, 51.1760609149933, 57.6593999862671, 64.184476852417, 70.5566418170929, 77.0253269672394, 83.4826798439026, 90.1138219833374, 96.4566838741302], [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.0775080993771553, [0.791666686534882, 0.608333349227905, 0.966666638851166, 0.975000023841858, 0.966666638851166, 0.800000011920929, 0.975000023841858, 0.683333337306976, 0.733333349227905, 0.949999988079071, 0.949999988079071, 0.975000023841858], [0.374035209417343, 0.732228577136993, 0.170820266008377, 0.112313792109489, 0.172022193670273, 0.384404003620148, 0.115418829023838, 0.450868725776672, 0.457187473773956, 0.140348106622696, 0.15950845181942, 0.0775080993771553], 1.0, 0.0383280552923679, [0.899999976158142, 0.566666662693024, 0.966666638851166, 1.0, 1.0, 0.800000011920929, 0.966666638851166, 0.833333313465118, 0.899999976158142, 1.0, 0.899999976158142, 1.0], [0.273769021034241, 0.709117114543915, 0.154145583510399, 0.093109056353569, 0.130981177091599, 0.318724304437637, 0.102762393653393, 0.268609821796417, 0.253254026174545, 0.103913448750973, 0.194639429450035, 0.0383280552923679], [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], 1, 1),\n",
+       " (13, 1, u\"optimizer='Adam(lr=0.009905852828976726)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [44.6836378574371, 50.92365193367, 57.3649659156799, 63.7576060295105, 70.1174209117889, 76.788703918457, 83.2217078208923, 89.8764188289642, 96.2273638248444], [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.0799522325396538, [0.949999988079071, 0.791666686534882, 0.800000011920929, 0.850000023841858, 0.958333313465118, 0.975000023841858, 0.899999976158142, 0.975000023841858, 0.975000023841858], [0.447714686393738, 0.36309215426445, 0.324623554944992, 0.301780551671982, 0.142947062849998, 0.120139442384243, 0.255296260118484, 0.0816238224506378, 0.0799522325396538], 0.966666638851166, 0.0760450512170792, [0.966666638851166, 0.899999976158142, 0.800000011920929, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 1.0, 0.966666638851166], [0.370463252067566, 0.25237438082695, 0.317549884319305, 0.187985330820084, 0.104904659092426, 0.112288065254688, 0.160248279571533, 0.0687147378921509, 0.0760450512170792], [5, 6, 7, 8, 9, 10, 11, 12, 13], 0, 0),\n",
+       " (5, 2, u\"optimizer='Adam(lr=0.01678679876224294)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [11.5813798904419, 21.0226759910583, 28.4713099002838, 35.9315679073334, 44.4656569957733, 50.7044010162354, 57.1448848247528, 63.4595718383789, 69.8967549800873, 76.3639938831329, 82.7779839038849, 89.6248579025269, 95.9936518669128], [u'accuracy'], u'categorical_crossentropy', 0.958333313465118, 0.113370150327682, [0.641666650772095, 0.908333361148834, 0.891666650772095, 0.891666650772095, 0.866666674613953, 0.941666662693024, 0.941666662693024, 0.933333337306976, 0.933333337306976, 0.858333349227905, 0.966666638851166, 0.958333313465118, 0.958333313465118], [0.656313836574554, 0.41341444849968, 0.324400961399078, 0.304112106561661, 0.336616456508636, 0.160554125905037, 0.135852053761482, 0.159805878996849, 0.174078181385994, 0.316538035869598, 0.104411341249943, 0.105065681040287, 0.113370150327682], 0.966666638851166, 0.121701933443546, [0.766666650772095, 0.933333337306976, 0.866666674613953, 0.866666674613953, 0.899999976158142, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.563848853111267, 0.330921590328217, 0.292684972286224, 0.273869335651398, 0.317834258079529, 0.144475534558296, 0.147552534937859, 0.153202146291733, 0.158350095152855, 0.22741986811161, 0.114596471190453, 0.117612592875957, 0.121701933443546], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], 2, 2),\n",
+       " (14, 2, u\"optimizer='RMSprop(lr=0.01930169481426345)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [44.2033138275146, 50.4514999389648, 56.8880548477173, 63.2074518203735, 69.5435798168182, 76.1080069541931, 82.519660949707, 89.1418299674988, 95.518424987793], [u'accuracy'], u'categorical_crossentropy', 0.941666662693024, 0.206491559743881, [0.566666662693024, 0.916666686534882, 0.883333325386047, 0.958333313465118, 0.841666638851166, 0.875, 0.783333361148834, 0.766666650772095, 0.941666662693024], [0.774700284004211, 0.651901543140411, 0.496851295232773, 0.405008375644684, 0.356276631355286, 0.340960919857025, 0.381286114454269, 0.388935476541519, 0.206491559743881], 0.966666638851166, 0.170937761664391, [0.733333349227905, 0.933333337306976, 0.866666674613953, 0.933333337306976, 0.866666674613953, 0.866666674613953, 0.833333313465118, 0.833333313465118, 0.966666638851166], [0.76544976234436, 0.657529413700104, 0.4853755235672, 0.377188384532928, 0.356318116188049, 0.332274377346039, 0.372768431901932, 0.397462010383606, 0.170937761664391], [5, 6, 7, 8, 9, 10, 11, 12, 13], 0, 0),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.011578246765795313)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [12.2524900436401, 22.163911819458, 29.4894979000092, 37.043762922287], [u'accuracy'], u'categorical_crossentropy', 0.791666686534882, 0.595036566257477, [0.0333333350718021, 0.633333325386047, 0.816666662693024, 0.791666686534882], [0.947992205619812, 0.782966256141663, 0.679944217205048, 0.595036566257477], 0.899999976158142, 0.569178223609924, [0.100000001490116, 0.766666650772095, 0.933333337306976, 0.899999976158142], [0.972650408744812, 0.776390075683594, 0.681758761405945, 0.569178223609924], [1, 2, 3, 4], 2, 1),\n",
+       " (12, 1, u\"optimizer='Adam(lr=0.0699102360375282)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [22.5178759098053, 29.7163498401642, 37.2609059810638], [u'accuracy'], u'categorical_crossentropy', 0.699999988079071, 0.389858365058899, [0.641666650772095, 0.641666650772095, 0.699999988079071], [0.79219126701355, 0.460052192211151, 0.389858365058899], 0.866666674613953, 0.250768661499023, [0.766666650772095, 0.766666650772095, 0.866666674613953], [0.765598654747009, 0.334016799926758, 0.250768661499023], [2, 3, 4], 1, 0),\n",
+       " (1, 1, u\"optimizer='RMSprop(lr=0.024714880320122704)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [12.0343589782715, 21.4979238510132, 29.0434989929199, 36.4899458885193], [u'accuracy'], u'categorical_crossentropy', 0.649999976158142, 0.673553228378296, [0.691666662693024, 0.841666638851166, 0.983333349227905, 0.649999976158142], [0.388701051473618, 0.424284487962723, 0.180928915739059, 0.673553228378296], 0.800000011920929, 0.384207844734192, [0.833333313465118, 0.800000011920929, 0.966666638851166, 0.800000011920929], [0.255310624837875, 0.357394397258759, 0.147510275244713, 0.384207844734192], [1, 2, 3, 4], 2, 1),\n",
+       " (15, 2, u\"optimizer='Adam(lr=0.05573574908119242)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [45.168872833252, 51.7013738155365, 58.1221590042114, 64.4642739295959, 70.8308379650116, 77.295382976532, 83.7621510028839, 90.3811860084534, 96.7183079719543], [u'accuracy'], u'categorical_crossentropy', 0.816666662693024, 0.457783430814743, [0.358333319425583, 0.925000011920929, 0.675000011920929, 0.733333349227905, 0.949999988079071, 0.666666686534882, 0.741666674613953, 0.908333361148834, 0.816666662693024], [1.03486049175262, 0.43449866771698, 0.842896223068237, 0.392013370990753, 0.195524752140045, 0.572380185127258, 0.43743160367012, 0.278554767370224, 0.457783430814743], 0.733333349227905, 0.670406579971313, [0.233333334326744, 0.966666638851166, 0.866666674613953, 0.866666674613953, 0.966666638851166, 0.666666686534882, 0.899999976158142, 0.933333337306976, 0.733333349227905], [1.05548679828644, 0.372740298509598, 0.427788466215134, 0.282503575086594, 0.135918349027634, 0.589654743671417, 0.253296822309494, 0.159830048680305, 0.670406579971313], [5, 6, 7, 8, 9, 10, 11, 12, 13], 0, 0),\n",
+       " (8, 1, u\"optimizer='RMSprop(lr=0.09641245863612281)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [12.7177708148956], [u'accuracy'], u'categorical_crossentropy', 0.658333361148834, 1.25986480712891, [0.658333361148834], [1.25986480712891], 0.633333325386047, 1.26717245578766, [0.633333325386047], [1.26717245578766], [1], 2, 0),\n",
+       " (2, 1, u\"optimizer='RMSprop(lr=0.003730347382813742)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [11.1050899028778], [u'accuracy'], u'categorical_crossentropy', 0.600000023841858, 1.23435640335083, [0.600000023841858], [1.23435640335083], 0.5, 1.37250542640686, [0.5], [1.37250542640686], [1], 2, 0),\n",
+       " (7, 1, u\"optimizer='Adam(lr=0.0018352035707327032)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [11.3283720016479], [u'accuracy'], u'categorical_crossentropy', 0.466666668653488, 1.01645076274872, [0.466666668653488], [1.01645076274872], 0.433333337306976, 1.01912522315979, [0.433333337306976], [1.01912522315979], [1], 2, 0),\n",
+       " (4, 2, u\"optimizer='Adam(lr=0.03837714620063437)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.5016968250275], [u'accuracy'], u'categorical_crossentropy', 0.308333337306976, 1.09954655170441, [0.308333337306976], [1.09954655170441], 0.433333337306976, 1.09805536270142, [0.433333337306976], [1.09805536270142], [1], 2, 0),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.0017052377620857802)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [10.8097839355469], [u'accuracy'], u'categorical_crossentropy', 0.341666668653488, 1.28075575828552, [0.341666668653488], [1.28075575828552], 0.366666674613953, 1.43494951725006, [0.366666674613953], [1.43494951725006], [1], 2, 0),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.0015217424326594508)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [21.2741727828979, 28.7427089214325, 36.1846778392792], [u'accuracy'], u'categorical_crossentropy', 0.333333343267441, 1.07403242588043, [0.474999994039536, 0.358333319425583, 0.333333343267441], [1.08657968044281, 1.07721281051636, 1.07403242588043], 0.333333343267441, 1.09314000606537, [0.433333337306976, 0.300000011920929, 0.333333343267441], [1.11294913291931, 1.10347521305084, 1.09314000606537], [2, 3, 4], 1, 0),\n",
+       " (3, 1, u\"optimizer='RMSprop(lr=0.051964270528848694)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [11.8142108917236], [u'accuracy'], u'categorical_crossentropy', 0.333333343267441, 1.09948420524597, [0.333333343267441], [1.09948420524597], 0.333333343267441, 1.09620642662048, [0.333333343267441], [1.09620642662048], [1], 2, 0)]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM automl_output_info ORDER BY validation_metrics_final DESC, validation_loss_final;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "from matplotlib.ticker import MaxNLocator\n",
+    "from collections import defaultdict\n",
+    "import pandas as pd\n",
+    "import seaborn as sns\n",
+    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
+    "plt.rcParams.update({'font.size': 12})\n",
+    "pd.set_option('display.max_colwidth', -1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "15 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM automl_output_info;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM automl_output_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss,metrics_iters FROM automl_output_info WHERE mst_key = $mst_key;\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    iters = df_output_info['metrics_iters'][0]\n",
+    "    \n",
+    "    #ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_metric.plot(iters, validation_metrics, marker='o')\n",
+    "    #ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"hyperopt\"></a>\n",
+    "# 5.  Hyperopt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_automl</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS automl_output, automl_output_info, automl_output_summary, automl_mst_table, automl_mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_automl('iris_train_packed',                -- source table\n",
+    "                                  'automl_output',                    -- model output table\n",
+    "                                  'model_arch_library',               -- model architecture table\n",
+    "                                  'automl_mst_table',                 -- model selection output table\n",
+    "                                  ARRAY[1,2],                         -- model IDs\n",
+    "                                  $${\n",
+    "                                      'loss': ['categorical_crossentropy'], \n",
+    "                                      'optimizer_params_list': [ \n",
+    "                                          {'optimizer': ['Adam'],'lr': [0.001, 0.1, 'log']},\n",
+    "                                          {'optimizer': ['RMSprop'],'lr': [0.001, 0.1, 'log']}\n",
+    "                                      ],\n",
+    "                                      'metrics': ['accuracy']\n",
+    "                                  } $$,                               -- compile param grid\n",
+    "                                  $${'batch_size': [4, 8], 'epochs': [1]}$$,  -- fit params grid\n",
+    "                                  'hyperopt',                         -- autoML method\n",
+    "                                  'num_configs=20, num_iterations=10, algorithm=tpe',  -- autoML params\n",
+    "                                  NULL,                               -- random state\n",
+    "                                  NULL,                               -- object table\n",
+    "                                  FALSE,                              -- use GPUs\n",
+    "                                  'iris_test_packed',                 -- validation table\n",
+    "                                  1,                                  -- metrics compute freq\n",
+    "                                  NULL,                               -- name\n",
+    "                                  NULL);                              -- descr"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>automl_method</th>\n",
+       "        <th>automl_params</th>\n",
+       "        <th>random_state</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>use_gpus</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>automl_output</td>\n",
+       "        <td>automl_output_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>automl_mst_table</td>\n",
+       "        <td>hyperopt</td>\n",
+       "        <td>num_configs=20, num_iterations=10, algorithm=tpe</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>False</td>\n",
+       "        <td>1</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2021-03-05 23:59:31</td>\n",
+       "        <td>2021-03-06 00:03:57</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'automl_output', u'automl_output_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'automl_mst_table', u'hyperopt', u'num_configs=20, num_iterations=10, algorithm=tpe', None, None, False, 1, None, None, datetime.datetime(2021, 3, 5, 23, 59, 31), datetime.datetime(2021, 3, 6, 0, 3, 57), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0)]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM automl_output_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the results for each model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.0084793872639979)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[56.9403030872345, 59.805566072464, 62.2339789867401, 64.8922078609467, 67.5616340637207, 70.2253429889679, 72.8736228942871, 75.5874469280243, 78.2902030944824, 80.9871909618378]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.0910520926118</td>\n",
+       "        <td>[0.649999976158142, 0.891666650772095, 0.883333325386047, 0.949999988079071, 0.975000023841858, 0.883333325386047, 0.850000023841858, 0.949999988079071, 0.975000023841858, 0.975000023841858]</td>\n",
+       "        <td>[0.559232711791992, 0.335382640361786, 0.259929001331329, 0.158979862928391, 0.114544428884983, 0.269487291574478, 0.293675005435944, 0.0902178362011909, 0.0766977593302727, 0.0910520926117897]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.0768957436085</td>\n",
+       "        <td>[0.833333313465118, 0.933333337306976, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.485892802476883, 0.249617904424667, 0.258282363414764, 0.11016520857811, 0.0912857726216316, 0.280073672533035, 0.178015038371086, 0.087411992251873, 0.062506839632988, 0.0768957436084747]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.03366551083145706)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[161.690346240997, 164.041937112808, 166.454420089722, 168.906048059464, 171.067217111588, 173.555004119873, 175.944698095322, 178.445127248764, 180.502294063568, 183.037788152695]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.144752591848</td>\n",
+       "        <td>[0.316666662693024, 0.666666686534882, 0.716666638851166, 0.641666650772095, 0.675000011920929, 0.975000023841858, 0.791666686534882, 0.975000023841858, 0.966666638851166, 0.949999988079071]</td>\n",
+       "        <td>[1.57745933532715, 0.405172228813171, 0.471270889043808, 1.00022745132446, 0.840015530586243, 0.128021001815796, 0.473532497882843, 0.091586634516716, 0.112696528434753, 0.144752591848373]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.100186347961</td>\n",
+       "        <td>[0.433333337306976, 0.666666686534882, 0.899999976158142, 0.766666650772095, 0.866666674613953, 0.966666638851166, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[1.36917245388031, 0.372486144304276, 0.266377687454224, 0.571163833141327, 0.457086622714996, 0.103041857481003, 0.276452839374542, 0.0908508822321892, 0.0997116342186928, 0.100186347961426]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.009794369846837002)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[186.611872196198, 188.95641207695, 191.037184238434, 193.397297143936, 195.740861177444, 197.805513143539, 200.180992126465, 202.689172029495, 205.040098190308, 207.208242177963]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.116746708751</td>\n",
+       "        <td>[0.75, 0.975000023841858, 0.850000023841858, 0.941666662693024, 0.933333337306976, 0.949999988079071, 0.949999988079071, 0.983333349227905, 0.958333313465118, 0.949999988079071]</td>\n",
+       "        <td>[0.5159512758255, 0.353324204683304, 0.333910763263702, 0.245715036988258, 0.188893154263496, 0.161517903208733, 0.137443989515305, 0.122971840202808, 0.14612153172493, 0.116746708750725]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.106192082167</td>\n",
+       "        <td>[0.899999976158142, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.423073083162308, 0.298538327217102, 0.234973803162575, 0.176778241991997, 0.170526877045631, 0.145023569464684, 0.119270212948322, 0.103897586464882, 0.104170136153698, 0.106192082166672]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.007581048101981366)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[57.225380897522, 60.0725290775299, 62.731920003891, 65.1544499397278, 67.8143260478973, 70.4762139320374, 73.1227269172668, 75.8475530147552, 78.555095911026, 81.2564718723297]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.958333313465</td>\n",
+       "        <td>0.133664950728</td>\n",
+       "        <td>[0.649999976158142, 0.883333325386047, 0.941666662693024, 0.899999976158142, 0.958333313465118, 0.925000011920929, 0.941666662693024, 0.933333337306976, 0.983333349227905, 0.958333313465118]</td>\n",
+       "        <td>[1.03808128833771, 0.883756637573242, 0.686505734920502, 0.517532765865326, 0.401096671819687, 0.259793311357498, 0.177235946059227, 0.168946355581284, 0.128713861107826, 0.133664950728416]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.122641228139</td>\n",
+       "        <td>[0.633333325386047, 0.899999976158142, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.933333337306976, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[1.02865540981293, 0.850838720798492, 0.612184524536133, 0.452387690544128, 0.33221709728241, 0.23906472325325, 0.165990635752678, 0.164969280362129, 0.12097629904747, 0.1226412281394]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.012596538573477555)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[137.034833192825, 139.500956058502, 141.807043075562, 143.897747039795, 146.264532089233, 148.888093233109, 150.934833049774, 153.475459098816, 155.848874092102, 158.239592075348]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.184266731143</td>\n",
+       "        <td>[0.566666662693024, 0.933333337306976, 0.649999976158142, 0.666666686534882, 0.808333337306976, 0.891666650772095, 0.891666650772095, 0.975000023841858, 0.933333337306976, 0.916666686534882]</td>\n",
+       "        <td>[0.829304933547974, 0.631127297878265, 0.597909092903137, 0.552545011043549, 0.428654760122299, 0.233174994587898, 0.236562281847, 0.119615346193314, 0.191903278231621, 0.184266731142998]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.124655880034</td>\n",
+       "        <td>[0.699999988079071, 0.899999976158142, 0.800000011920929, 0.833333313465118, 0.899999976158142, 0.933333337306976, 0.866666674613953, 1.0, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.74066150188446, 0.532437741756439, 0.480882078409195, 0.435436576604843, 0.310187846422195, 0.234515085816383, 0.247250944375992, 0.107902131974697, 0.136675015091896, 0.12465588003397]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.005441362966347114)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[109.630754947662, 112.341638088226, 114.763943910599, 117.389002084732, 119.991095066071, 122.593973875046, 125.238317966461, 127.8488509655, 130.375853061676, 133.020073890686]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.216380029917</td>\n",
+       "        <td>[0.641666650772095, 0.733333349227905, 0.649999976158142, 0.858333349227905, 0.958333313465118, 0.699999988079071, 0.916666686534882, 0.858333349227905, 0.966666638851166, 0.916666686534882]</td>\n",
+       "        <td>[0.73615950345993, 0.489604264497757, 0.45263683795929, 0.37542662024498, 0.334106951951981, 0.419453173875809, 0.284875482320786, 0.27151495218277, 0.185230866074562, 0.216380029916763]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.127150848508</td>\n",
+       "        <td>[0.766666650772095, 0.699999988079071, 0.800000011920929, 0.933333337306976, 0.966666638851166, 0.666666686534882, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.631976008415222, 0.448555260896683, 0.323729306459427, 0.28750941157341, 0.281407296657562, 0.421543717384338, 0.259464651346207, 0.158164814114571, 0.135125860571861, 0.127150848507881]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.04966544234738768)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[2.26167011260986, 4.64152717590332, 7.38891315460205, 10.1575191020966, 12.6948411464691, 15.5193021297455, 17.8266370296478, 20.364767074585, 23.1241211891174, 25.6702241897583]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.183234125376</td>\n",
+       "        <td>[0.641666650772095, 0.666666686534882, 0.966666638851166, 0.958333313465118, 0.716666638851166, 0.983333349227905, 0.966666638851166, 0.983333349227905, 0.975000023841858, 0.949999988079071]</td>\n",
+       "        <td>[0.829066038131714, 0.490932732820511, 0.341925740242004, 0.215810611844063, 0.400910943746567, 0.107548490166664, 0.0985226780176163, 0.0732712596654892, 0.070111908018589, 0.183234125375748]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.137178555131</td>\n",
+       "        <td>[0.866666674613953, 0.666666686534882, 0.966666638851166, 0.966666638851166, 0.699999988079071, 0.966666638851166, 0.966666638851166, 0.933333337306976, 1.0, 0.966666638851166]</td>\n",
+       "        <td>[0.843752980232239, 0.435137718915939, 0.26888644695282, 0.157842606306076, 0.406648069620132, 0.0976309478282928, 0.0788726136088371, 0.0751720294356346, 0.0686705932021141, 0.137178555130959]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0023223781742022285)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[29.5305609703064, 31.8714768886566, 34.5841488838196, 37.194139957428, 40.0518889427185, 42.6473689079285, 44.9830038547516, 47.734827041626, 50.3327059745789, 52.9546790122986]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.247659549117</td>\n",
+       "        <td>[0.641666650772095, 0.691666662693024, 0.641666650772095, 0.966666638851166, 0.941666662693024, 0.958333313465118, 0.933333337306976, 0.925000011920929, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.949797213077545, 0.797480285167694, 0.672827661037445, 0.523928940296173, 0.444453626871109, 0.386174380779266, 0.347499698400497, 0.321201831102371, 0.278330504894257, 0.247659549117088]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.198830261827</td>\n",
+       "        <td>[0.766666650772095, 0.833333313465118, 0.766666650772095, 0.966666638851166, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.931245148181915, 0.763193428516388, 0.600658059120178, 0.456866592168808, 0.373299777507782, 0.326453566551208, 0.275230079889297, 0.284671515226364, 0.221188083291054, 0.198830261826515]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.0014467801648012073)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[84.6684620380402, 86.9988820552826, 89.4947271347046, 91.8522582054138, 93.9668672084808, 96.3584721088409, 98.7448561191559, 101.170181035995, 103.282526016235, 105.678196191788]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.395356565714</td>\n",
+       "        <td>[0.625, 0.641666650772095, 0.741666674613953, 0.883333325386047, 0.833333313465118, 0.941666662693024, 0.949999988079071, 0.983333349227905, 0.875, 0.966666638851166]</td>\n",
+       "        <td>[0.941141128540039, 0.820547699928284, 0.723011374473572, 0.646571576595306, 0.57060444355011, 0.514499425888062, 0.46852970123291, 0.439025938510895, 0.416335105895996, 0.395356565713882]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.326709568501</td>\n",
+       "        <td>[0.766666650772095, 0.766666650772095, 0.899999976158142, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.933333337306976, 0.966666638851166]</td>\n",
+       "        <td>[0.941896796226501, 0.816571235656738, 0.707062959671021, 0.61734527349472, 0.521940350532532, 0.45942959189415, 0.405136495828629, 0.374987095594406, 0.33730074763298, 0.326709568500519]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.0011757973913283008)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[237.369596242905, 240.072783231735, 242.490661382675, 245.210073232651, 247.916568279266, 250.679228305817, 253.465747356415, 256.328309297562, 259.131007194519, 262.085569381714]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.567601382732</td>\n",
+       "        <td>[0.333333343267441, 0.441666662693024, 0.433333337306976, 0.349999994039536, 0.349999994039536, 0.675000011920929, 0.683333337306976, 0.800000011920929, 0.774999976158142, 0.916666686534882]</td>\n",
+       "        <td>[1.14459049701691, 1.08465170860291, 1.02045607566833, 0.952999651432037, 0.883513271808624, 0.809052526950836, 0.748401284217834, 0.682490110397339, 0.620046377182007, 0.567601382732391]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.512901842594</td>\n",
+       "        <td>[0.333333343267441, 0.400000005960464, 0.400000005960464, 0.366666674613953, 0.366666674613953, 0.800000011920929, 0.800000011920929, 0.866666674613953, 0.866666674613953, 0.966666638851166]</td>\n",
+       "        <td>[1.21284127235413, 1.13662087917328, 1.04775261878967, 0.957895994186401, 0.871163666248322, 0.780500650405884, 0.705705106258392, 0.636253237724304, 0.558390736579895, 0.512901842594147]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.003695186053629043)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[211.166339159012, 213.628123044968, 216.070516109467, 218.28012919426, 220.77138209343, 223.166202068329, 225.899930000305, 228.167545080185, 230.690491199493, 233.073115110397]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.114436306059</td>\n",
+       "        <td>[0.641666650772095, 0.875, 0.824999988079071, 0.824999988079071, 0.958333313465118, 0.866666674613953, 0.966666638851166, 0.941666662693024, 0.958333313465118, 0.966666638851166]</td>\n",
+       "        <td>[0.718437075614929, 0.535359025001526, 0.403026401996613, 0.348048120737076, 0.244051590561867, 0.264052510261536, 0.1720110476017, 0.164029255509377, 0.154526039958, 0.114436306059361]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.107093170285</td>\n",
+       "        <td>[0.766666650772095, 0.933333337306976, 0.899999976158142, 0.833333313465118, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.933333337306976]</td>\n",
+       "        <td>[0.647899329662323, 0.474290877580643, 0.308415770530701, 0.318869024515152, 0.206334576010704, 0.250639617443085, 0.129751890897751, 0.156522572040558, 0.112601205706596, 0.107093170285225]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.03271173767396424)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[136.810528039932, 139.271977186203, 141.348733186722, 143.678931236267, 146.042705059052, 148.659409046173, 150.713799238205, 153.240673065186, 155.618861198425, 158.003229141235]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.200596183538</td>\n",
+       "        <td>[0.341666668653488, 0.925000011920929, 0.958333313465118, 0.675000011920929, 0.966666638851166, 0.766666650772095, 0.975000023841858, 0.75, 0.975000023841858, 0.899999976158142]</td>\n",
+       "        <td>[1.04381895065308, 0.384325951337814, 0.263480663299561, 0.593676149845123, 0.141404688358307, 0.362050473690033, 0.0923048332333565, 0.351189643144608, 0.0946881100535393, 0.200596183538437]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.257636517286</td>\n",
+       "        <td>[0.533333361148834, 0.866666674613953, 0.966666638851166, 0.800000011920929, 0.966666638851166, 0.833333313465118, 0.966666638851166, 0.866666674613953, 0.966666638851166, 0.899999976158142]</td>\n",
+       "        <td>[0.91362202167511, 0.340268641710281, 0.21289549767971, 0.362329840660095, 0.136535987257957, 0.327440768480301, 0.111000411212444, 0.227803841233253, 0.111130490899086, 0.257636517286301]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.0027814197503322115)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[161.464279174805, 163.823823213577, 166.230634212494, 168.657960176468, 170.846117019653, 173.335704088211, 175.715650081635, 178.106207132339, 180.278338193893, 182.815184116364]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.351116120815</td>\n",
+       "        <td>[0.600000023841858, 0.558333337306976, 0.541666686534882, 0.600000023841858, 0.899999976158142, 0.916666686534882, 0.850000023841858, 0.925000011920929, 0.933333337306976, 0.933333337306976]</td>\n",
+       "        <td>[0.9764444231987, 0.860457479953766, 0.76110851764679, 0.688599288463593, 0.623845517635345, 0.558117687702179, 0.516568541526794, 0.438872784376144, 0.389935582876205, 0.351116120815277]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.326276868582</td>\n",
+       "        <td>[0.433333337306976, 0.433333337306976, 0.5, 0.433333337306976, 0.899999976158142, 0.866666674613953, 0.933333337306976, 0.866666674613953, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[1.03803777694702, 0.913994610309601, 0.794906616210938, 0.723303020000458, 0.652373254299164, 0.566653609275818, 0.481746405363083, 0.454111516475677, 0.379933565855026, 0.326276868581772]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.035340389425615855)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[2.53016018867493, 5.03768014907837, 7.64597201347351, 10.4127900600433, 13.0584251880646, 15.7928349971771, 18.0860531330109, 20.625785112381, 23.3826050758362, 25.9297461509705]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.875</td>\n",
+       "        <td>0.28657540679</td>\n",
+       "        <td>[0.850000023841858, 0.491666674613953, 0.941666662693024, 0.783333361148834, 0.925000011920929, 0.850000023841858, 0.966666638851166, 0.958333313465118, 0.908333361148834, 0.875]</td>\n",
+       "        <td>[0.313798636198044, 0.746647894382477, 0.232485517859459, 0.384049296379089, 0.201492115855217, 0.276773244142532, 0.144450753927231, 0.116710871458054, 0.210491970181465, 0.28657540678978]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.334158778191</td>\n",
+       "        <td>[0.833333313465118, 0.533333361148834, 0.833333313465118, 0.899999976158142, 0.899999976158142, 0.833333313465118, 0.966666638851166, 1.0, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[0.281513780355453, 0.781840145587921, 0.252955704927444, 0.219736546278, 0.268592208623886, 0.332309901714325, 0.131899908185005, 0.0595534667372704, 0.255705177783966, 0.334158778190613]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.08208550087461897)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[84.8872451782227, 87.2208690643311, 89.7248260974884, 92.1014380455017, 94.1999170780182, 96.5836410522461, 98.9723200798035, 101.409075021744, 103.511981010437, 105.902093172073]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.591654956341</td>\n",
+       "        <td>[0.333333343267441, 0.641666650772095, 0.566666662693024, 0.591666638851166, 0.758333325386047, 0.666666686534882, 0.966666638851166, 0.916666686534882, 0.949999988079071, 0.766666650772095]</td>\n",
+       "        <td>[1.02616000175476, 0.486202239990234, 0.636112213134766, 0.692184090614319, 0.505898773670197, 0.467963546514511, 0.268672525882721, 0.176122322678566, 0.122547559440136, 0.59165495634079]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.33915963769</td>\n",
+       "        <td>[0.333333343267441, 0.766666650772095, 0.733333349227905, 0.766666650772095, 0.733333349227905, 0.666666686534882, 0.966666638851166, 0.899999976158142, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[1.12080752849579, 0.381140530109406, 0.5174320936203, 0.473030716180801, 0.607473373413086, 0.409501492977142, 0.212725415825844, 0.296080023050308, 0.18353745341301, 0.33915963768959]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0025753473010720596)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[186.835414171219, 189.195631027222, 191.254861116409, 193.619318246841, 195.966614246368, 198.311106204987, 200.407158136368, 202.908673048019, 205.313441038132, 207.438939094543]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.950204193592</td>\n",
+       "        <td>[0.358333319425583, 0.358333319425583, 0.358333319425583, 0.449999988079071, 0.400000005960464, 0.516666650772095, 0.583333313465118, 0.608333349227905, 0.899999976158142, 0.891666650772095]</td>\n",
+       "        <td>[1.09640550613403, 1.08471190929413, 1.0751405954361, 1.06720495223999, 1.06165635585785, 1.0469172000885, 1.0301650762558, 1.00463593006134, 0.979537725448608, 0.950204193592072]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.931918859482</td>\n",
+       "        <td>[0.233333334326744, 0.233333334326744, 0.233333334326744, 0.366666674613953, 0.266666680574417, 0.400000005960464, 0.400000005960464, 0.433333337306976, 0.833333313465118, 0.866666674613953]</td>\n",
+       "        <td>[1.10118973255157, 1.08938491344452, 1.07863283157349, 1.06669425964355, 1.06701147556305, 1.04324889183044, 1.02750730514526, 0.996739327907562, 0.966157376766205, 0.931918859481812]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.056702169442788934)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[237.640507221222, 240.350925207138, 243.027331352234, 245.468372344971, 248.176068305969, 250.940598249435, 253.720994234085, 256.680767297745, 259.394066333771, 262.358667373657]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.649999976158</td>\n",
+       "        <td>0.545458972454</td>\n",
+       "        <td>[0.658333361148834, 0.649999976158142, 0.641666650772095, 0.641666650772095, 0.641666650772095, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.649999976158142]</td>\n",
+       "        <td>[0.616556286811829, 0.493021905422211, 0.488242834806442, 0.486079841852188, 0.479775160551071, 0.482189744710922, 0.496939599514008, 0.479279518127441, 0.543927192687988, 0.545458972454071]</td>\n",
+       "        <td>0.800000011921</td>\n",
+       "        <td>0.362693428993</td>\n",
+       "        <td>[0.633333325386047, 0.800000011920929, 0.766666650772095, 0.766666650772095, 0.766666650772095, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.800000011920929]</td>\n",
+       "        <td>[0.53449285030365, 0.394388288259506, 0.390281409025192, 0.385460764169693, 0.392662823200226, 0.410547375679016, 0.439140349626541, 0.395850986242294, 0.503270268440247, 0.362693428993225]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.06312207575548352)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[29.8041570186615, 32.351331949234, 34.8423700332642, 37.4489560127258, 40.3089909553528, 42.915864944458, 45.6521019935608, 47.9889349937439, 50.5978739261627, 53.2138829231262]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.471347987652</td>\n",
+       "        <td>[0.666666686534882, 0.641666650772095, 0.641666650772095, 0.366666674613953, 0.666666686534882, 0.966666638851166, 0.483333319425583, 0.641666650772095, 0.941666662693024, 0.641666650772095]</td>\n",
+       "        <td>[0.520724713802338, 0.578253924846649, 0.518827021121979, 1.67398142814636, 0.512235522270203, 0.131752595305443, 1.25291848182678, 0.453146934509277, 0.185879185795784, 0.471347987651825]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.337222576141</td>\n",
+       "        <td>[0.666666686534882, 0.766666650772095, 0.766666650772095, 0.333333343267441, 0.666666686534882, 0.933333337306976, 0.566666662693024, 0.766666650772095, 0.899999976158142, 0.766666650772095]</td>\n",
+       "        <td>[0.462848216295242, 0.38900101184845, 0.356701970100403, 1.92939758300781, 0.458910882472992, 0.14183434844017, 0.83171159029007, 0.332331091165543, 0.311882764101028, 0.337222576141357]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.0658839037116738)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[211.389490127563, 213.85792016983, 216.39094209671, 218.503707170486, 220.992606163025, 223.471295118332, 226.145341157913, 228.394971132278, 230.912840127945, 233.303599119186]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.641666650772</td>\n",
+       "        <td>0.482037603855</td>\n",
+       "        <td>[0.800000011920929, 0.666666686534882, 0.666666686534882, 0.808333337306976, 0.683333337306976, 0.666666686534882, 0.875, 0.666666686534882, 0.666666686534882, 0.641666650772095]</td>\n",
+       "        <td>[0.508525788784027, 0.431755125522614, 0.435203284025192, 0.344938695430756, 0.478766769170761, 0.330143094062805, 0.273075610399246, 0.479535788297653, 0.48390719294548, 0.482037603855133]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.39202862978</td>\n",
+       "        <td>[0.833333313465118, 0.666666686534882, 0.666666686534882, 0.899999976158142, 0.666666686534882, 0.666666686534882, 0.933333337306976, 0.666666686534882, 0.666666686534882, 0.766666650772095]</td>\n",
+       "        <td>[0.443316102027893, 0.401963800191879, 0.399077832698822, 0.240811541676521, 0.410095393657684, 0.290450870990753, 0.254536032676697, 0.396871030330658, 0.413692444562912, 0.392028629779816]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='RMSprop(lr=0.0020197253642543623)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[109.946217060089, 112.64745092392, 115.244435071945, 117.609509944916, 120.211313962936, 122.821636915207, 125.485604047775, 128.088088035583, 130.593991041183, 133.237344026566]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.725000023842</td>\n",
+       "        <td>0.553534567356</td>\n",
+       "        <td>[0.358333319425583, 0.358333319425583, 0.508333325386047, 0.916666686534882, 0.658333361148834, 0.633333325386047, 0.633333325386047, 0.641666650772095, 0.649999976158142, 0.725000023841858]</td>\n",
+       "        <td>[1.44853103160858, 1.05627000331879, 0.960374653339386, 0.903020858764648, 0.811912178993225, 0.744573473930359, 0.693612813949585, 0.683376550674438, 0.593345999717712, 0.55353456735611]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.458936661482</td>\n",
+       "        <td>[0.233333334326744, 0.233333334326744, 0.433333337306976, 0.933333337306976, 0.733333349227905, 0.733333349227905, 0.733333349227905, 0.766666650772095, 0.766666650772095, 0.766666650772095]</td>\n",
+       "        <td>[1.5010712146759, 1.05707538127899, 0.939342617988586, 0.863560140132904, 0.760088205337524, 0.681271374225616, 0.617161631584167, 0.568128407001495, 0.501981496810913, 0.458936661481857]</td>\n",
+       "        <td>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(5, 2, u\"optimizer='RMSprop(lr=0.0084793872639979)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [56.9403030872345, 59.805566072464, 62.2339789867401, 64.8922078609467, 67.5616340637207, 70.2253429889679, 72.8736228942871, 75.5874469280243, 78.2902030944824, 80.9871909618378], [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.0910520926117897, [0.649999976158142, 0.891666650772095, 0.883333325386047, 0.949999988079071, 0.975000023841858, 0.883333325386047, 0.850000023841858, 0.949999988079071, 0.975000023841858, 0.975000023841858], [0.559232711791992, 0.335382640361786, 0.259929001331329, 0.158979862928391, 0.114544428884983, 0.269487291574478, 0.293675005435944, 0.0902178362011909, 0.0766977593302727, 0.0910520926117897], 0.966666638851166, 0.0768957436084747, [0.833333313465118, 0.933333337306976, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.899999976158142, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166], [0.485892802476883, 0.249617904424667, 0.258282363414764, 0.11016520857811, 0.0912857726216316, 0.280073672533035, 0.178015038371086, 0.087411992251873, 0.062506839632988, 0.0768957436084747], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (14, 1, u\"optimizer='RMSprop(lr=0.03366551083145706)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [161.690346240997, 164.041937112808, 166.454420089722, 168.906048059464, 171.067217111588, 173.555004119873, 175.944698095322, 178.445127248764, 180.502294063568, 183.037788152695], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.144752591848373, [0.316666662693024, 0.666666686534882, 0.716666638851166, 0.641666650772095, 0.675000011920929, 0.975000023841858, 0.791666686534882, 0.975000023841858, 0.966666638851166, 0.949999988079071], [1.57745933532715, 0.405172228813171, 0.471270889043808, 1.00022745132446, 0.840015530586243, 0.128021001815796, 0.473532497882843, 0.091586634516716, 0.112696528434753, 0.144752591848373], 0.966666638851166, 0.100186347961426, [0.433333337306976, 0.666666686534882, 0.899999976158142, 0.766666650772095, 0.866666674613953, 0.966666638851166, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166], [1.36917245388031, 0.372486144304276, 0.266377687454224, 0.571163833141327, 0.457086622714996, 0.103041857481003, 0.276452839374542, 0.0908508822321892, 0.0997116342186928, 0.100186347961426], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (15, 1, u\"optimizer='Adam(lr=0.009794369846837002)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [186.611872196198, 188.95641207695, 191.037184238434, 193.397297143936, 195.740861177444, 197.805513143539, 200.180992126465, 202.689172029495, 205.040098190308, 207.208242177963], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.116746708750725, [0.75, 0.975000023841858, 0.850000023841858, 0.941666662693024, 0.933333337306976, 0.949999988079071, 0.949999988079071, 0.983333349227905, 0.958333313465118, 0.949999988079071], [0.5159512758255, 0.353324204683304, 0.333910763263702, 0.245715036988258, 0.188893154263496, 0.161517903208733, 0.137443989515305, 0.122971840202808, 0.14612153172493, 0.116746708750725], 0.966666638851166, 0.106192082166672, [0.899999976158142, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.423073083162308, 0.298538327217102, 0.234973803162575, 0.176778241991997, 0.170526877045631, 0.145023569464684, 0.119270212948322, 0.103897586464882, 0.104170136153698, 0.106192082166672], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (6, 2, u\"optimizer='Adam(lr=0.007581048101981366)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [57.225380897522, 60.0725290775299, 62.731920003891, 65.1544499397278, 67.8143260478973, 70.4762139320374, 73.1227269172668, 75.8475530147552, 78.555095911026, 81.2564718723297], [u'accuracy'], u'categorical_crossentropy', 0.958333313465118, 0.133664950728416, [0.649999976158142, 0.883333325386047, 0.941666662693024, 0.899999976158142, 0.958333313465118, 0.925000011920929, 0.941666662693024, 0.933333337306976, 0.983333349227905, 0.958333313465118], [1.03808128833771, 0.883756637573242, 0.686505734920502, 0.517532765865326, 0.401096671819687, 0.259793311357498, 0.177235946059227, 0.168946355581284, 0.128713861107826, 0.133664950728416], 0.966666638851166, 0.1226412281394, [0.633333325386047, 0.899999976158142, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.933333337306976, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166], [1.02865540981293, 0.850838720798492, 0.612184524536133, 0.452387690544128, 0.33221709728241, 0.23906472325325, 0.165990635752678, 0.164969280362129, 0.12097629904747, 0.1226412281394], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (12, 1, u\"optimizer='RMSprop(lr=0.012596538573477555)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [137.034833192825, 139.500956058502, 141.807043075562, 143.897747039795, 146.264532089233, 148.888093233109, 150.934833049774, 153.475459098816, 155.848874092102, 158.239592075348], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.184266731142998, [0.566666662693024, 0.933333337306976, 0.649999976158142, 0.666666686534882, 0.808333337306976, 0.891666650772095, 0.891666650772095, 0.975000023841858, 0.933333337306976, 0.916666686534882], [0.829304933547974, 0.631127297878265, 0.597909092903137, 0.552545011043549, 0.428654760122299, 0.233174994587898, 0.236562281847, 0.119615346193314, 0.191903278231621, 0.184266731142998], 0.966666638851166, 0.12465588003397, [0.699999988079071, 0.899999976158142, 0.800000011920929, 0.833333313465118, 0.899999976158142, 0.933333337306976, 0.866666674613953, 1.0, 0.966666638851166, 0.966666638851166], [0.74066150188446, 0.532437741756439, 0.480882078409195, 0.435436576604843, 0.310187846422195, 0.234515085816383, 0.247250944375992, 0.107902131974697, 0.136675015091896, 0.12465588003397], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (9, 2, u\"optimizer='RMSprop(lr=0.005441362966347114)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [109.630754947662, 112.341638088226, 114.763943910599, 117.389002084732, 119.991095066071, 122.593973875046, 125.238317966461, 127.8488509655, 130.375853061676, 133.020073890686], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.216380029916763, [0.641666650772095, 0.733333349227905, 0.649999976158142, 0.858333349227905, 0.958333313465118, 0.699999988079071, 0.916666686534882, 0.858333349227905, 0.966666638851166, 0.916666686534882], [0.73615950345993, 0.489604264497757, 0.45263683795929, 0.37542662024498, 0.334106951951981, 0.419453173875809, 0.284875482320786, 0.27151495218277, 0.185230866074562, 0.216380029916763], 0.966666638851166, 0.127150848507881, [0.766666650772095, 0.699999988079071, 0.800000011920929, 0.933333337306976, 0.966666638851166, 0.666666686534882, 0.899999976158142, 0.933333337306976, 0.966666638851166, 0.966666638851166], [0.631976008415222, 0.448555260896683, 0.323729306459427, 0.28750941157341, 0.281407296657562, 0.421543717384338, 0.259464651346207, 0.158164814114571, 0.135125860571861, 0.127150848507881], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.04966544234738768)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [2.26167011260986, 4.64152717590332, 7.38891315460205, 10.1575191020966, 12.6948411464691, 15.5193021297455, 17.8266370296478, 20.364767074585, 23.1241211891174, 25.6702241897583], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.183234125375748, [0.641666650772095, 0.666666686534882, 0.966666638851166, 0.958333313465118, 0.716666638851166, 0.983333349227905, 0.966666638851166, 0.983333349227905, 0.975000023841858, 0.949999988079071], [0.829066038131714, 0.490932732820511, 0.341925740242004, 0.215810611844063, 0.400910943746567, 0.107548490166664, 0.0985226780176163, 0.0732712596654892, 0.070111908018589, 0.183234125375748], 0.966666638851166, 0.137178555130959, [0.866666674613953, 0.666666686534882, 0.966666638851166, 0.966666638851166, 0.699999988079071, 0.966666638851166, 0.966666638851166, 0.933333337306976, 1.0, 0.966666638851166], [0.843752980232239, 0.435137718915939, 0.26888644695282, 0.157842606306076, 0.406648069620132, 0.0976309478282928, 0.0788726136088371, 0.0751720294356346, 0.0686705932021141, 0.137178555130959], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.0023223781742022285)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [29.5305609703064, 31.8714768886566, 34.5841488838196, 37.194139957428, 40.0518889427185, 42.6473689079285, 44.9830038547516, 47.734827041626, 50.3327059745789, 52.9546790122986], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.247659549117088, [0.641666650772095, 0.691666662693024, 0.641666650772095, 0.966666638851166, 0.941666662693024, 0.958333313465118, 0.933333337306976, 0.925000011920929, 0.966666638851166, 0.966666638851166], [0.949797213077545, 0.797480285167694, 0.672827661037445, 0.523928940296173, 0.444453626871109, 0.386174380779266, 0.347499698400497, 0.321201831102371, 0.278330504894257, 0.247659549117088], 0.966666638851166, 0.198830261826515, [0.766666650772095, 0.833333313465118, 0.766666650772095, 0.966666638851166, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166], [0.931245148181915, 0.763193428516388, 0.600658059120178, 0.456866592168808, 0.373299777507782, 0.326453566551208, 0.275230079889297, 0.284671515226364, 0.221188083291054, 0.198830261826515], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (7, 1, u\"optimizer='RMSprop(lr=0.0014467801648012073)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [84.6684620380402, 86.9988820552826, 89.4947271347046, 91.8522582054138, 93.9668672084808, 96.3584721088409, 98.7448561191559, 101.170181035995, 103.282526016235, 105.678196191788], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.395356565713882, [0.625, 0.641666650772095, 0.741666674613953, 0.883333325386047, 0.833333313465118, 0.941666662693024, 0.949999988079071, 0.983333349227905, 0.875, 0.966666638851166], [0.941141128540039, 0.820547699928284, 0.723011374473572, 0.646571576595306, 0.57060444355011, 0.514499425888062, 0.46852970123291, 0.439025938510895, 0.416335105895996, 0.395356565713882], 0.966666638851166, 0.326709568500519, [0.766666650772095, 0.766666650772095, 0.899999976158142, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.933333337306976, 0.966666638851166], [0.941896796226501, 0.816571235656738, 0.707062959671021, 0.61734527349472, 0.521940350532532, 0.45942959189415, 0.405136495828629, 0.374987095594406, 0.33730074763298, 0.326709568500519], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (19, 2, u\"optimizer='Adam(lr=0.0011757973913283008)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [237.369596242905, 240.072783231735, 242.490661382675, 245.210073232651, 247.916568279266, 250.679228305817, 253.465747356415, 256.328309297562, 259.131007194519, 262.085569381714], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.567601382732391, [0.333333343267441, 0.441666662693024, 0.433333337306976, 0.349999994039536, 0.349999994039536, 0.675000011920929, 0.683333337306976, 0.800000011920929, 0.774999976158142, 0.916666686534882], [1.14459049701691, 1.08465170860291, 1.02045607566833, 0.952999651432037, 0.883513271808624, 0.809052526950836, 0.748401284217834, 0.682490110397339, 0.620046377182007, 0.567601382732391], 0.966666638851166, 0.512901842594147, [0.333333343267441, 0.400000005960464, 0.400000005960464, 0.366666674613953, 0.366666674613953, 0.800000011920929, 0.800000011920929, 0.866666674613953, 0.866666674613953, 0.966666638851166], [1.21284127235413, 1.13662087917328, 1.04775261878967, 0.957895994186401, 0.871163666248322, 0.780500650405884, 0.705705106258392, 0.636253237724304, 0.558390736579895, 0.512901842594147], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (17, 1, u\"optimizer='RMSprop(lr=0.003695186053629043)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [211.166339159012, 213.628123044968, 216.070516109467, 218.28012919426, 220.77138209343, 223.166202068329, 225.899930000305, 228.167545080185, 230.690491199493, 233.073115110397], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.114436306059361, [0.641666650772095, 0.875, 0.824999988079071, 0.824999988079071, 0.958333313465118, 0.866666674613953, 0.966666638851166, 0.941666662693024, 0.958333313465118, 0.966666638851166], [0.718437075614929, 0.535359025001526, 0.403026401996613, 0.348048120737076, 0.244051590561867, 0.264052510261536, 0.1720110476017, 0.164029255509377, 0.154526039958, 0.114436306059361], 0.933333337306976, 0.107093170285225, [0.766666650772095, 0.933333337306976, 0.899999976158142, 0.833333313465118, 0.933333337306976, 0.933333337306976, 0.966666638851166, 0.933333337306976, 0.966666638851166, 0.933333337306976], [0.647899329662323, 0.474290877580643, 0.308415770530701, 0.318869024515152, 0.206334576010704, 0.250639617443085, 0.129751890897751, 0.156522572040558, 0.112601205706596, 0.107093170285225], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (11, 1, u\"optimizer='Adam(lr=0.03271173767396424)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [136.810528039932, 139.271977186203, 141.348733186722, 143.678931236267, 146.042705059052, 148.659409046173, 150.713799238205, 153.240673065186, 155.618861198425, 158.003229141235], [u'accuracy'], u'categorical_crossentropy', 0.899999976158142, 0.200596183538437, [0.341666668653488, 0.925000011920929, 0.958333313465118, 0.675000011920929, 0.966666638851166, 0.766666650772095, 0.975000023841858, 0.75, 0.975000023841858, 0.899999976158142], [1.04381895065308, 0.384325951337814, 0.263480663299561, 0.593676149845123, 0.141404688358307, 0.362050473690033, 0.0923048332333565, 0.351189643144608, 0.0946881100535393, 0.200596183538437], 0.899999976158142, 0.257636517286301, [0.533333361148834, 0.866666674613953, 0.966666638851166, 0.800000011920929, 0.966666638851166, 0.833333313465118, 0.966666638851166, 0.866666674613953, 0.966666638851166, 0.899999976158142], [0.91362202167511, 0.340268641710281, 0.21289549767971, 0.362329840660095, 0.136535987257957, 0.327440768480301, 0.111000411212444, 0.227803841233253, 0.111130490899086, 0.257636517286301], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (13, 1, u\"optimizer='RMSprop(lr=0.0027814197503322115)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [161.464279174805, 163.823823213577, 166.230634212494, 168.657960176468, 170.846117019653, 173.335704088211, 175.715650081635, 178.106207132339, 180.278338193893, 182.815184116364], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.351116120815277, [0.600000023841858, 0.558333337306976, 0.541666686534882, 0.600000023841858, 0.899999976158142, 0.916666686534882, 0.850000023841858, 0.925000011920929, 0.933333337306976, 0.933333337306976], [0.9764444231987, 0.860457479953766, 0.76110851764679, 0.688599288463593, 0.623845517635345, 0.558117687702179, 0.516568541526794, 0.438872784376144, 0.389935582876205, 0.351116120815277], 0.899999976158142, 0.326276868581772, [0.433333337306976, 0.433333337306976, 0.5, 0.433333337306976, 0.899999976158142, 0.866666674613953, 0.933333337306976, 0.866666674613953, 0.899999976158142, 0.899999976158142], [1.03803777694702, 0.913994610309601, 0.794906616210938, 0.723303020000458, 0.652373254299164, 0.566653609275818, 0.481746405363083, 0.454111516475677, 0.379933565855026, 0.326276868581772], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (2, 2, u\"optimizer='Adam(lr=0.035340389425615855)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [2.53016018867493, 5.03768014907837, 7.64597201347351, 10.4127900600433, 13.0584251880646, 15.7928349971771, 18.0860531330109, 20.625785112381, 23.3826050758362, 25.9297461509705], [u'accuracy'], u'categorical_crossentropy', 0.875, 0.28657540678978, [0.850000023841858, 0.491666674613953, 0.941666662693024, 0.783333361148834, 0.925000011920929, 0.850000023841858, 0.966666638851166, 0.958333313465118, 0.908333361148834, 0.875], [0.313798636198044, 0.746647894382477, 0.232485517859459, 0.384049296379089, 0.201492115855217, 0.276773244142532, 0.144450753927231, 0.116710871458054, 0.210491970181465, 0.28657540678978], 0.899999976158142, 0.334158778190613, [0.833333313465118, 0.533333361148834, 0.833333313465118, 0.899999976158142, 0.899999976158142, 0.833333313465118, 0.966666638851166, 1.0, 0.899999976158142, 0.899999976158142], [0.281513780355453, 0.781840145587921, 0.252955704927444, 0.219736546278, 0.268592208623886, 0.332309901714325, 0.131899908185005, 0.0595534667372704, 0.255705177783966, 0.334158778190613], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (8, 1, u\"optimizer='Adam(lr=0.08208550087461897)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [84.8872451782227, 87.2208690643311, 89.7248260974884, 92.1014380455017, 94.1999170780182, 96.5836410522461, 98.9723200798035, 101.409075021744, 103.511981010437, 105.902093172073], [u'accuracy'], u'categorical_crossentropy', 0.766666650772095, 0.59165495634079, [0.333333343267441, 0.641666650772095, 0.566666662693024, 0.591666638851166, 0.758333325386047, 0.666666686534882, 0.966666638851166, 0.916666686534882, 0.949999988079071, 0.766666650772095], [1.02616000175476, 0.486202239990234, 0.636112213134766, 0.692184090614319, 0.505898773670197, 0.467963546514511, 0.268672525882721, 0.176122322678566, 0.122547559440136, 0.59165495634079], 0.899999976158142, 0.33915963768959, [0.333333343267441, 0.766666650772095, 0.733333349227905, 0.766666650772095, 0.733333349227905, 0.666666686534882, 0.966666638851166, 0.899999976158142, 0.899999976158142, 0.899999976158142], [1.12080752849579, 0.381140530109406, 0.5174320936203, 0.473030716180801, 0.607473373413086, 0.409501492977142, 0.212725415825844, 0.296080023050308, 0.18353745341301, 0.33915963768959], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (16, 1, u\"optimizer='Adam(lr=0.0025753473010720596)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [186.835414171219, 189.195631027222, 191.254861116409, 193.619318246841, 195.966614246368, 198.311106204987, 200.407158136368, 202.908673048019, 205.313441038132, 207.438939094543], [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.950204193592072, [0.358333319425583, 0.358333319425583, 0.358333319425583, 0.449999988079071, 0.400000005960464, 0.516666650772095, 0.583333313465118, 0.608333349227905, 0.899999976158142, 0.891666650772095], [1.09640550613403, 1.08471190929413, 1.0751405954361, 1.06720495223999, 1.06165635585785, 1.0469172000885, 1.0301650762558, 1.00463593006134, 0.979537725448608, 0.950204193592072], 0.866666674613953, 0.931918859481812, [0.233333334326744, 0.233333334326744, 0.233333334326744, 0.366666674613953, 0.266666680574417, 0.400000005960464, 0.400000005960464, 0.433333337306976, 0.833333313465118, 0.866666674613953], [1.10118973255157, 1.08938491344452, 1.07863283157349, 1.06669425964355, 1.06701147556305, 1.04324889183044, 1.02750730514526, 0.996739327907562, 0.966157376766205, 0.931918859481812], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (20, 2, u\"optimizer='RMSprop(lr=0.056702169442788934)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [237.640507221222, 240.350925207138, 243.027331352234, 245.468372344971, 248.176068305969, 250.940598249435, 253.720994234085, 256.680767297745, 259.394066333771, 262.358667373657], [u'accuracy'], u'categorical_crossentropy', 0.649999976158142, 0.545458972454071, [0.658333361148834, 0.649999976158142, 0.641666650772095, 0.641666650772095, 0.641666650772095, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.649999976158142], [0.616556286811829, 0.493021905422211, 0.488242834806442, 0.486079841852188, 0.479775160551071, 0.482189744710922, 0.496939599514008, 0.479279518127441, 0.543927192687988, 0.545458972454071], 0.800000011920929, 0.362693428993225, [0.633333325386047, 0.800000011920929, 0.766666650772095, 0.766666650772095, 0.766666650772095, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.666666686534882, 0.800000011920929], [0.53449285030365, 0.394388288259506, 0.390281409025192, 0.385460764169693, 0.392662823200226, 0.410547375679016, 0.439140349626541, 0.395850986242294, 0.503270268440247, 0.362693428993225], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (4, 2, u\"optimizer='Adam(lr=0.06312207575548352)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [29.8041570186615, 32.351331949234, 34.8423700332642, 37.4489560127258, 40.3089909553528, 42.915864944458, 45.6521019935608, 47.9889349937439, 50.5978739261627, 53.2138829231262], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.471347987651825, [0.666666686534882, 0.641666650772095, 0.641666650772095, 0.366666674613953, 0.666666686534882, 0.966666638851166, 0.483333319425583, 0.641666650772095, 0.941666662693024, 0.641666650772095], [0.520724713802338, 0.578253924846649, 0.518827021121979, 1.67398142814636, 0.512235522270203, 0.131752595305443, 1.25291848182678, 0.453146934509277, 0.185879185795784, 0.471347987651825], 0.766666650772095, 0.337222576141357, [0.666666686534882, 0.766666650772095, 0.766666650772095, 0.333333343267441, 0.666666686534882, 0.933333337306976, 0.566666662693024, 0.766666650772095, 0.899999976158142, 0.766666650772095], [0.462848216295242, 0.38900101184845, 0.356701970100403, 1.92939758300781, 0.458910882472992, 0.14183434844017, 0.83171159029007, 0.332331091165543, 0.311882764101028, 0.337222576141357], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (18, 1, u\"optimizer='RMSprop(lr=0.0658839037116738)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [211.389490127563, 213.85792016983, 216.39094209671, 218.503707170486, 220.992606163025, 223.471295118332, 226.145341157913, 228.394971132278, 230.912840127945, 233.303599119186], [u'accuracy'], u'categorical_crossentropy', 0.641666650772095, 0.482037603855133, [0.800000011920929, 0.666666686534882, 0.666666686534882, 0.808333337306976, 0.683333337306976, 0.666666686534882, 0.875, 0.666666686534882, 0.666666686534882, 0.641666650772095], [0.508525788784027, 0.431755125522614, 0.435203284025192, 0.344938695430756, 0.478766769170761, 0.330143094062805, 0.273075610399246, 0.479535788297653, 0.48390719294548, 0.482037603855133], 0.766666650772095, 0.392028629779816, [0.833333313465118, 0.666666686534882, 0.666666686534882, 0.899999976158142, 0.666666686534882, 0.666666686534882, 0.933333337306976, 0.666666686534882, 0.666666686534882, 0.766666650772095], [0.443316102027893, 0.401963800191879, 0.399077832698822, 0.240811541676521, 0.410095393657684, 0.290450870990753, 0.254536032676697, 0.396871030330658, 0.413692444562912, 0.392028629779816], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n",
+       " (10, 1, u\"optimizer='RMSprop(lr=0.0020197253642543623)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [109.946217060089, 112.64745092392, 115.244435071945, 117.609509944916, 120.211313962936, 122.821636915207, 125.485604047775, 128.088088035583, 130.593991041183, 133.237344026566], [u'accuracy'], u'categorical_crossentropy', 0.725000023841858, 0.55353456735611, [0.358333319425583, 0.358333319425583, 0.508333325386047, 0.916666686534882, 0.658333361148834, 0.633333325386047, 0.633333325386047, 0.641666650772095, 0.649999976158142, 0.725000023841858], [1.44853103160858, 1.05627000331879, 0.960374653339386, 0.903020858764648, 0.811912178993225, 0.744573473930359, 0.693612813949585, 0.683376550674438, 0.593345999717712, 0.55353456735611], 0.766666650772095, 0.458936661481857, [0.233333334326744, 0.233333334326744, 0.433333337306976, 0.933333337306976, 0.733333349227905, 0.733333349227905, 0.733333349227905, 0.766666650772095, 0.766666650772095, 0.766666650772095], [1.5010712146759, 1.05707538127899, 0.939342617988586, 0.863560140132904, 0.760088205337524, 0.681271374225616, 0.617161631584167, 0.568128407001495, 0.501981496810913, 0.458936661481857], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])]"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM automl_output_info ORDER BY validation_metrics_final DESC, validation_loss_final;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "20 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM automl_output_info;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM automl_output_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss,metrics_iters FROM automl_output_info WHERE mst_key = $mst_key;\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    iters = df_output_info['metrics_iters'][0]\n",
+    "    \n",
+    "    #ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_metric.plot(iters, validation_metrics)\n",
+    "    #ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss)\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Show each trial"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM automl_output_info;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Trial')\n",
+    "#ax_metric.set_ylabel('Accuracy')\n",
+    "ax_metric.set_title('Validation Accuracy')\n",
+    "#ax_metric.lines.remove(ax_metric.lines)\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Trial')\n",
+    "#ax_loss.set_ylabel('Cross Entropy Loss')\n",
+    "ax_loss.set_title('Validation Loss (Cross Entropy)')\n",
+    "\n",
+    "validation_metrics_final = df_results['validation_metrics_final']\n",
+    "validation_loss_final = df_results['validation_loss_final']\n",
+    "iters = df_results['mst_key']\n",
+    "#iters = [x - (iters[0]-1) for x in iters]\n",
+    "\n",
+    "#ax_metric.plot(iters, training_metrics_final, label=mst_key, marker='o')\n",
+    "ax_metric.plot(iters, validation_metrics_final, marker='o', linestyle='None', markersize=4)\n",
+    "#ax_metric.plot(iters, training_metrics)\n",
+    "    \n",
+    "#ax_loss.plot(iters, training_loss_final, label=mst_key, marker='o')\n",
+    "ax_loss.plot(iters, validation_loss_final, marker='o', linestyle='None', markersize=4)\n",
+    "#ax_loss.plot(iters, training_loss)\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Show best by trial"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "20 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n",
+      "3 rows affected.\n",
+      "4 rows affected.\n",
+      "5 rows affected.\n",
+      "6 rows affected.\n",
+      "7 rows affected.\n",
+      "8 rows affected.\n",
+      "9 rows affected.\n",
+      "10 rows affected.\n",
+      "11 rows affected.\n",
+      "12 rows affected.\n",
+      "13 rows affected.\n",
+      "14 rows affected.\n",
+      "15 rows affected.\n",
+      "16 rows affected.\n",
+      "17 rows affected.\n",
+      "18 rows affected.\n",
+      "19 rows affected.\n",
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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s79W3ebTLdJimhmCwPJgCM1pr7320l/+8hf961//+gi27373u3r00Uc1efJkde7cWZMmTdIZZ5yhJ598sv04A4/47b333u0/i3exTDtl9LrrrtOll16q999/XzvuuKMOP/xw7bLLLh+ZMnrZZZfp/vvvb29Xjx49tM022+jKK69s39XVyZ+3IU0AACAASURBVFNL//SnP32kzT/84Q/bp6eWM2g/+clPdP755+utt97SWmutpQMPPFCjRo1qvzcnjzIefPDBevXVV3Xsscfqueee05AhQ9qnun7961/v8JFKYwirXf+DDz7QCSec0D7d1v/fbTQTT4t1Gj9+fLtxf+qpp/Thhx+2j976Xs8+++yybav2fIbWOQxhiLcS14AABCAAgYYRCC2UDWt4fRXVNWV09GEH1nf1opZetkxtixZplW2204DDjilqK2lXEwhU++BuQpNquuTDDz+s3XffXS+99JK22GKL9jp8pIYNiaeT2rw5eRTv3nvvbTdiPnfRZzCec845+sY3vqEbbrihPU8aQ/izn/1Me+yxh4488kh5DeMf/vCH9nonTpz4EUNoU+b22JTNmjVLN910U3sbbOhWXXVVvf766+3t3mijjXTqqae2X99HLHh6aqlB+9WvfqVdd91VBx10kPbcc8/2es466ywdcsghuv766z9iCDfddNP2n3/sYx/T1Vdfrd///vcaM2ZM+3mTlVI1Q5jm+vvvv397DGzwzH7ChAl65pln/m0IP/e5z8nTeE8++WStttpqeuedd9pZVFqbWe35DK1zGMKa/jwpBAEIQAACzSIQWiibdZ8l163LEBbkHhrejIXjx2nCWaeo52af1MDvndzw+qmwdQlU++BulTvzfdiAeETQo3JOjz32WLtZ8wjcdtttV/ZWlixZIq9BPOywwzR79mx16dIllSH85Cc/2T665dHHONmo3XXXXRU3lbERWrhwofr376/bbrtN++yzT3vRSlNGSw2a1xn26dNHv/vd7/59zQsvvLDdFNp42ezFI4R33323bM6cpk6dqgEDBujWW29t51OrIUxz/Q033LB9ZNKjpeVS9+7d9dBDD7WPGqZJ1Z7P0DqHIUwTNfJAAAIQgEBhCIQWyoLcOIawTCAWT5uqcScdo+4bbKRBp44qSKhoRhEIVPrgHnvCUVo2b15TmrhSz54adsX/jnhlSSNHjpTX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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM automl_output_info ORDER BY mst_key;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "best_so_far_acc = []\n",
+    "best_so_far_loss = []\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT mst_key, validation_metrics_final, validation_loss_final FROM automl_output_info WHERE mst_key <= $mst_key; \n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    best_so_far_acc.append([mst_key, df_output_info['validation_metrics_final'].max()])\n",
+    "    best_so_far_loss.append([mst_key, df_output_info['validation_loss_final'].min()])\n",
+    "\n",
+    "df1 = pd.DataFrame(best_so_far_acc,columns=['Trial','Validation Accuracy'])\n",
+    "df2 = pd.DataFrame(best_so_far_loss,columns=['Trial','Validation Loss'])\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Trial')\n",
+    "#ax_metric.set_ylabel('Accuracy')\n",
+    "ax_metric.set_title('Best Validation Accuracy')\n",
+    "#ax_metric.lines.remove(ax_metric.lines)\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Trial')\n",
+    "#ax_loss.set_ylabel('Cross Entropy Loss')\n",
+    "ax_loss.set_title('Best Validation Loss (Cross Entropy)')\n",
+    "\n",
+    "validation_metrics_final = df1['Validation Accuracy']\n",
+    "validation_loss_final = df2['Validation Loss']\n",
+    "iters1 = df1['Trial']\n",
+    "iters2 = df2['Trial']\n",
+    "\n",
+    "#ax_metric.plot(iters1, training_metrics_final, label=mst_key, marker='o')\n",
+    "#ax_metric.plot(iters1, validation_metrics_final, marker='o', linestyle='None', markersize=4)\n",
+    "#ax_metric.plot(iters1, validation_metrics_final, marker='o', markersize=0.5)\n",
+    "ax_metric.plot(iters1, validation_metrics_final)\n",
+    "    \n",
+    "#ax_loss.plot(iters2, training_loss_final, label=mst_key, marker='o')\n",
+    "#ax_loss.plot(iters2, validation_loss_final, marker='o', linestyle='None', markersize=4)\n",
+    "ax_loss.plot(iters2, validation_loss_final)\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 6. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.77083427</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.76736474</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7637215</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.76102996</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7710857</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7592268</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7686342</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.76880336</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7689748</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.77831817</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7722787</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.76963973</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7690843</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5698719</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.71937233</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7692964</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8146459</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5106894</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7508131</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.77062976</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9310901</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9202143</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9461502</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.53245807</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5506391</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.58871216</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.76892227</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.94731</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7525016</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5657851</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'class_text', u'Iris-setosa', 0.77083427),\n",
+       " (2, u'class_text', u'Iris-setosa', 0.76736474),\n",
+       " (3, u'class_text', u'Iris-setosa', 0.7637215),\n",
+       " (4, u'class_text', u'Iris-setosa', 0.76102996),\n",
+       " (6, u'class_text', u'Iris-setosa', 0.7710857),\n",
+       " (7, u'class_text', u'Iris-setosa', 0.7592268),\n",
+       " (8, u'class_text', u'Iris-setosa', 0.7686342),\n",
+       " (10, u'class_text', u'Iris-setosa', 0.76880336),\n",
+       " (18, u'class_text', u'Iris-setosa', 0.7689748),\n",
+       " (19, u'class_text', u'Iris-setosa', 0.77831817),\n",
+       " (28, u'class_text', u'Iris-setosa', 0.7722787),\n",
+       " (47, u'class_text', u'Iris-setosa', 0.76963973),\n",
+       " (50, u'class_text', u'Iris-setosa', 0.7690843),\n",
+       " (60, u'class_text', u'Iris-virginica', 0.5698719),\n",
+       " (65, u'class_text', u'Iris-versicolor', 0.71937233),\n",
+       " (69, u'class_text', u'Iris-versicolor', 0.7692964),\n",
+       " (75, u'class_text', u'Iris-versicolor', 0.8146459),\n",
+       " (79, u'class_text', u'Iris-versicolor', 0.5106894),\n",
+       " (80, u'class_text', u'Iris-versicolor', 0.7508131),\n",
+       " (82, u'class_text', u'Iris-versicolor', 0.77062976),\n",
+       " (105, u'class_text', u'Iris-virginica', 0.9310901),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.9202143),\n",
+       " (110, u'class_text', u'Iris-virginica', 0.9461502),\n",
+       " (120, u'class_text', u'Iris-versicolor', 0.53245807),\n",
+       " (130, u'class_text', u'Iris-versicolor', 0.5506391),\n",
+       " (136, u'class_text', u'Iris-virginica', 0.58871216),\n",
+       " (139, u'class_text', u'Iris-virginica', 0.76892227),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.94731),\n",
+       " (146, u'class_text', u'Iris-virginica', 0.7525016),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.5657851)]"
+      ]
+     },
+     "execution_count": 28,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('automl_output',    -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'response',        -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    13                 -- MST key\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
+    "WHERE iris_predict.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Train-multiple-models/Define-model-configurations-v2.ipynb b/community-artifacts/Deep-learning/Train-multiple-models/Define-model-configurations-v2.ipynb
new file mode 100755
index 0000000..fbe5ee5
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-multiple-models/Define-model-configurations-v2.ipynb
@@ -0,0 +1,2025 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Define model configurations\n",
+    "This module generates model configurations using grid search or random search.\n",
+    "\n",
+    "Once the configurations are defined, they can be used by the fit function in Train Model Configurations. By model configurations we mean both hyperparameters and model architectures. The output table from this module defines the combinations of model architectures, compile and fit parameters to be trained in parallel.\n",
+    "\n",
+    "This utility was added in MADlib 1.17.0.  Improvements were made in MADlib 1.18.0 including support for custom loss functions and custom metrics.\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#define_model_arch\">1. Define model architecture table</a>\n",
+    "\n",
+    "<a href=\"#load_model_arch\">2. Load model architecture</a>\n",
+    "\n",
+    "<a href=\"#generate_configs\">3. Generate model configurations</a>\n",
+    "\n",
+    "  - <a href=\"#grid_search\">3a. Grid search</a>\n",
+    "  \n",
+    "  - <a href=\"#random_search\">3b. Random search</a>\n",
+    "  \n",
+    "  - <a href=\"#incremental_load\">3c. Incremental loading</a>\n",
+    "  \n",
+    "<a href=\"#load_model_selection_manual\">4. Create model selection table manually</a>\n",
+    "\n",
+    "<a href=\"#custom\">5. Custom loss functions and custom metrics NOT COMPLETE</a>\n",
+    "\n",
+    "<a href=\"#load_model_selection\">6. Load model selection table [deprecated]</a>\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
+     ]
+    }
+   ],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP (PM demo machine) - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 39,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"define_model_arch\"></a>\n",
+    "# 1. Define model architecture table\n",
+    "The model selection loader works in conjunction with the model architecture table, so we first create a model architecture table with two different models.  See http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html for more details on the model architecture table.\n",
+    "\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 41,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_4\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_14 (Dense)             (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_15 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_16 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_14\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_15\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_16\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_4\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 42,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 2, \"batch_input_shape\": [null, 3], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"new_dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'\n",
+    "        "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_5\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_17 (Dense)             (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_18 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_19 (Dense)             (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_20 (Dense)             (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 44,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_17\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_18\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_19\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_20\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_5\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 44,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_arch\"></a>\n",
+    "# 2. Load model architecture\n",
+    "\n",
+    "Load both into model architecture table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 45,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_61202069_1614901986_7314581__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_12006647_1614901987_43673839__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_61202069_1614901986_7314581__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_12006647_1614901987_43673839__')]"
+      ]
+     },
+     "execution_count": 45,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"generate_configs\"></a>\n",
+    "# 3. Generate model configurations\n",
+    "\n",
+    "<a id=\"grid_search\"></a>\n",
+    "## 3a. Grid search\n",
+    "\n",
+    "The output table for grid search contains the unique combinations of model architectures, compile and fit parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 46,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 46,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Note that above uses the same learning rate for the two optimizers.  If you wanted to use different learning rates and different parameters for different optimizers (common):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 47,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 2, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 2, u\"optimizer='SGD()',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='SGD(lr=0.0001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001,momentum=0.95)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 1, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 1, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 1, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 1, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (17, 2, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.01,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (19, 2, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 2, u\"optimizer='Adam(lr=0.1,decay=0.0001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 47,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [\n",
+    "                                                 {'optimizer': ['SGD']}, \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001], 'momentum': [0.95]}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1], 'decay': [1e-4]}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"random_search\"></a>\n",
+    "## 3b. Random search\n",
+    "\n",
+    "The output table for random search contains the specified number of model architectures, compile and fit parameters, sampled from the specified distributions."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 48,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "20 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.0347167931002948,decay=4.746966178774611e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01062006045632861,decay=1.1876016717166215e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0006995070125407458,momentum=0.9844790514730665)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.07439975848075757,decay=1.7976337634506005e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.09030450672567254,decay=1.340890767690431e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01357387578284614,decay=2.3014993523846666e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.00010336714004241796,momentum=0.9711372680116186)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.00011116485234161093,momentum=0.9664752194346332)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0003071392825766392,momentum=0.9697893478568044)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.03540256307419597,decay=2.7490870549984347e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00026429087119428287,momentum=0.9702132562449013)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.04882317737663686,decay=8.006807036282709e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005040379351745158,momentum=0.9863934944304705)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00037668508410008814,momentum=0.978821521218891)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.016426175651771575,decay=1.6439282808391488e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00046988338854109496,momentum=0.988290883937812)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005402557401986037,momentum=0.9795021324622476)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.012596752275640428,decay=1.2801865417619381e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01055415187064375,decay=7.646989120220466e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00014021314734214438,momentum=0.9663397507032889)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 2, u\"optimizer='Adam(lr=0.0347167931002948,decay=4.746966178774611e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.01062006045632861,decay=1.1876016717166215e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.0006995070125407458,momentum=0.9844790514730665)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.07439975848075757,decay=1.7976337634506005e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (5, 2, u\"optimizer='Adam(lr=0.09030450672567254,decay=1.340890767690431e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01357387578284614,decay=2.3014993523846666e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (7, 2, u\"optimizer='SGD(lr=0.00010336714004241796,momentum=0.9711372680116186)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 2, u\"optimizer='SGD(lr=0.00011116485234161093,momentum=0.9664752194346332)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='SGD(lr=0.0003071392825766392,momentum=0.9697893478568044)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 1, u\"optimizer='Adam(lr=0.03540256307419597,decay=2.7490870549984347e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (11, 1, u\"optimizer='SGD(lr=0.00026429087119428287,momentum=0.9702132562449013)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 1, u\"optimizer='Adam(lr=0.04882317737663686,decay=8.006807036282709e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (13, 2, u\"optimizer='SGD(lr=0.0005040379351745158,momentum=0.9863934944304705)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (14, 1, u\"optimizer='SGD(lr=0.00037668508410008814,momentum=0.978821521218891)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (15, 1, u\"optimizer='Adam(lr=0.016426175651771575,decay=1.6439282808391488e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (16, 1, u\"optimizer='SGD(lr=0.00046988338854109496,momentum=0.988290883937812)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (17, 1, u\"optimizer='SGD(lr=0.0005402557401986037,momentum=0.9795021324622476)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.012596752275640428,decay=1.2801865417619381e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (19, 2, u\"optimizer='Adam(lr=0.01055415187064375,decay=7.646989120220466e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 1, u\"optimizer='SGD(lr=0.00014021314734214438,momentum=0.9663397507032889)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64')]"
+      ]
+     },
+     "execution_count": 48,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001, 'log'], 'momentum': [0.95, 0.99, 'log_near_one']}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1, 'log'], 'decay': [1e-6, 1e-4, 'log']}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'random',            -- search_type\n",
+    "                                         20                   -- num_configs\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"incremental_load\"></a>\n",
+    "# 3c.  Incremental loading for more complex combinations\n",
+    "\n",
+    "If it is easier to generate the model configurations incrementally rather than all at once, you can do that by not dropping the model selection table and associated summary table, in which case the new model configurations will be appended to the existing table.  Here we combine 2 of the previous examples in to a single output table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 49,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 49,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'grid'               -- search_type \n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now add to the existing table and note that mst_key continues where it left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 50,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "36 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00020031615564004395,momentum=0.9724038009180801)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.07529364006470769,decay=1.463102386655202e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.017537612203171578,decay=9.268965340542783e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.02436723652830891,decay=2.7036693659868636e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0009162225178908051,momentum=0.9636373679078051)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00020973934011486018,momentum=0.9810505351311615)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00011669504881554843,momentum=0.9563917160422619)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.019887949889421844,decay=1.3512689688436213e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.06844958467546351,decay=1.0949453143707621e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0279719469411538,decay=3.116565475127251e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0005340915863494089,momentum=0.9846555995292319)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.00037236518835129966,momentum=0.9750593509631483)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.0001703149580002491,momentum=0.9516827304557754)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0003205092574897573,momentum=0.9745610627224451)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.000638802198775629,momentum=0.9896674744988915)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.0007145264848827797,momentum=0.9859303213231139)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.053811310244363884,decay=5.1052295876998844e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.0617217468673046,decay=2.0871014466512653e-06)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.013012045649000626,decay=5.7173240691732966e-05)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.000575290475361327,momentum=0.9883738353302843)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (17, 1, u\"optimizer='SGD(lr=0.00020031615564004395,momentum=0.9724038009180801)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (18, 2, u\"optimizer='Adam(lr=0.07529364006470769,decay=1.463102386655202e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (19, 1, u\"optimizer='Adam(lr=0.017537612203171578,decay=9.268965340542783e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (20, 1, u\"optimizer='Adam(lr=0.02436723652830891,decay=2.7036693659868636e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (21, 2, u\"optimizer='SGD(lr=0.0009162225178908051,momentum=0.9636373679078051)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (22, 1, u\"optimizer='SGD(lr=0.00020973934011486018,momentum=0.9810505351311615)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (23, 1, u\"optimizer='SGD(lr=0.00011669504881554843,momentum=0.9563917160422619)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (24, 1, u\"optimizer='Adam(lr=0.019887949889421844,decay=1.3512689688436213e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (25, 2, u\"optimizer='Adam(lr=0.06844958467546351,decay=1.0949453143707621e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (26, 1, u\"optimizer='Adam(lr=0.0279719469411538,decay=3.116565475127251e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (27, 1, u\"optimizer='SGD(lr=0.0005340915863494089,momentum=0.9846555995292319)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (28, 1, u\"optimizer='SGD(lr=0.00037236518835129966,momentum=0.9750593509631483)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (29, 1, u\"optimizer='SGD(lr=0.0001703149580002491,momentum=0.9516827304557754)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (30, 2, u\"optimizer='SGD(lr=0.0003205092574897573,momentum=0.9745610627224451)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (31, 2, u\"optimizer='SGD(lr=0.000638802198775629,momentum=0.9896674744988915)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (32, 2, u\"optimizer='SGD(lr=0.0007145264848827797,momentum=0.9859303213231139)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (33, 2, u\"optimizer='Adam(lr=0.053811310244363884,decay=5.1052295876998844e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (34, 1, u\"optimizer='Adam(lr=0.0617217468673046,decay=2.0871014466512653e-06)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64'),\n",
+       " (35, 1, u\"optimizer='Adam(lr=0.013012045649000626,decay=5.7173240691732966e-05)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=128'),\n",
+       " (36, 1, u\"optimizer='SGD(lr=0.000575290475361327,momentum=0.9883738353302843)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=10,batch_size=64')]"
+      ]
+     },
+     "execution_count": 50,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'], \n",
+    "                                             'optimizer_params_list': [ \n",
+    "                                                 {'optimizer': ['SGD'], 'lr': [0.0001, 0.001, 'log'], 'momentum': [0.95, 0.99, 'log_near_one']}, \n",
+    "                                                 {'optimizer': ['Adam'], 'lr': [0.01, 0.1, 'log'], 'decay': [1e-6, 1e-4, 'log']}], \n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid    \n",
+    "                                         $$ \n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10] \n",
+    "                                         } \n",
+    "                                         $$,                  -- fit_param_grid                                          \n",
+    "                                         'random',            -- search_type\n",
+    "                                         20                   -- num_configs\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_selection_manual\"></a>\n",
+    "# 4.  Create model selection table manually\n",
+    "\n",
+    "If you want more control over the content of the model selection table, you could use grid or random search to generate a large number of combinations, then SELECT a subset of rows for training.\n",
+    "\n",
+    "Alternatively, you could manually create the model selection table and the associated summary table.  Both must be created since they are needed by the multiple model fit module.\n",
+    "\n",
+    "For example, let's say we don't want all combinations but only want batch_size=4 for model_id=1 and batch_size=8 for model_id=2:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 51,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "6 rows affected.\n",
+      "6 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_arch_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (3, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (4, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (5, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (6, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
+      ]
+     },
+     "execution_count": 51,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table_manual;\n",
+    "\n",
+    "CREATE TABLE mst_table_manual(\n",
+    "    mst_key serial,\n",
+    "    model_arch_id integer,\n",
+    "    compile_params varchar,\n",
+    "    fit_params varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO mst_table_manual(model_arch_id, compile_params, fit_params) VALUES\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(1, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=4,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.01)',metrics=['accuracy']$$, 'batch_size=8,epochs=1'),\n",
+    "(2, $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$, 'batch_size=8,epochs=1');\n",
+    "\n",
+    "SELECT * FROM mst_table_manual ORDER BY mst_key; "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create the summary table which must be named with the model selection output table appended by \"_summary\":"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 52,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_arch_table</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>model_arch_library</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'model_arch_library',)]"
+      ]
+     },
+     "execution_count": 52,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table_manual_summary;\n",
+    "\n",
+    "CREATE TABLE mst_table_manual_summary (\n",
+    "    model_arch_table varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO mst_table_manual_summary(model_arch_table) VALUES\n",
+    "('model_arch_library');\n",
+    "\n",
+    "SELECT * FROM mst_table_manual_summary; "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"custom\"></a>\n",
+    "# 5. Custom loss functions and custom metrics\n",
+    "\n",
+    "Define custom functions using the utility \"Define Custom Functions\". Psycopg is a PostgreSQL database adapter for the Python programming language. Note need to use the psycopg2.Binary() method to pass as bytes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 53,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import database connector psycopg2 and create connection cursor\n",
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "# import Dill and define functions\n",
+    "import dill\n",
+    "\n",
+    "# custom loss\n",
+    "def squared_error(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.square(y_pred - y_true)\n",
+    "pb_squared_error=dill.dumps(squared_error)\n",
+    "\n",
+    "# custom metric\n",
+    "def rmse(y_true, y_pred):\n",
+    "    import tensorflow.keras.backend as K\n",
+    "    return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))\n",
+    "pb_rmse=dill.dumps(rmse)\n",
+    "\n",
+    "# call load function\n",
+    "cur.execute(\"DROP TABLE IF EXISTS madlib.custom_function_table\")\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'squared_error', 'squared error')\", [p2.Binary(pb_squared_error)])\n",
+    "cur.execute(\"SELECT madlib.load_custom_function('custom_function_table',  %s,'rmse', 'root mean square error')\", [p2.Binary(pb_rmse)])\n",
+    "conn.commit()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 54,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "16 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=64</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'</td>\n",
+       "        <td>epochs=10,batch_size=128</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (3, 1, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (4, 1, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (7, 1, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (8, 1, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (11, 2, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (12, 2, u\"optimizer='SGD(lr=0.001)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (13, 2, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (14, 2, u\"optimizer='Adam(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128'),\n",
+       " (15, 2, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=64'),\n",
+       " (16, 2, u\"optimizer='SGD(lr=0.01)',metrics=['rmse'],loss='squared_error'\", u'epochs=10,batch_size=128')]"
+      ]
+     },
+     "execution_count": 54,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['squared_error'],\n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam', 'SGD'], 'lr': [0.001, 0.01]} ],\n",
+    "                                             'metrics': ['rmse']}\n",
+    "                                         $$,                  -- compile_param_grid\n",
+    "                                         $$\n",
+    "                                         { 'batch_size': [64, 128],\n",
+    "                                           'epochs': [10]\n",
+    "                                         }\n",
+    "                                         $$,                  -- fit_param_grid\n",
+    "                                         'grid',              -- search_type\n",
+    "                                         NULL,                -- num_configs\n",
+    "                                         NULL,                -- random_state\n",
+    "                                         'custom_function_table'  -- table with custom functions\n",
+    "                                         );\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model_selection\"></a>\n",
+    "# 6.  Load model selection table [deprecated]\n",
+    "\n",
+    "#### This method is deprecated and replaced by generate_model_configs() method described above.\n",
+    "\n",
+    "Select the model(s) from the model architecture table that you want to run, along with the compile and fit parameters.  Unique combinations will be created for the set of model selection parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 55,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=4,epochs=1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
+       "        <td>batch_size=8,epochs=1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
+       " (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
+       " (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
+      ]
+     },
+     "execution_count": 55,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.load_model_selection_table('model_arch_library', -- model architecture table\n",
+    "                                         'mst_table',          -- model selection table output\n",
+    "                                          ARRAY[1,2],              -- model ids from model architecture table\n",
+    "                                          ARRAY[                   -- compile params\n",
+    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$,\n",
+    "                                              $$loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']$$,\n",
+    "                                              $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$\n",
+    "                                          ],\n",
+    "                                          ARRAY[                    -- fit params\n",
+    "                                              $$batch_size=4,epochs=1$$,\n",
+    "                                              $$batch_size=8,epochs=1$$\n",
+    "                                          ]\n",
+    "                                         );\n",
+    "                                  \n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-model-selection-CNN-cifar10-v1.ipynb b/community-artifacts/Deep-learning/Train-multiple-models/MADlib-Keras-model-selection-CNN-cifar10-v1.ipynb
similarity index 100%
rename from community-artifacts/Deep-learning/MADlib-Keras-model-selection-CNN-cifar10-v1.ipynb
rename to community-artifacts/Deep-learning/Train-multiple-models/MADlib-Keras-model-selection-CNN-cifar10-v1.ipynb
diff --git a/community-artifacts/Deep-learning/Train-multiple-models/MADlib-Keras-model-selection-MLP-v1.ipynb b/community-artifacts/Deep-learning/Train-multiple-models/MADlib-Keras-model-selection-MLP-v1.ipynb
new file mode 100644
index 0000000..4ae9eae
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-multiple-models/MADlib-Keras-model-selection-MLP-v1.ipynb
@@ -0,0 +1,6279 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Model Selection for Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP for different hyperparameters and model architectures.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples please refer to the deep learning notebooks at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#def_mst\">4. Define and load model selection tuples</a>\n",
+    "\n",
+    "* <a href=\"#train\">5. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">6. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">7. Predict</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[60, 4]</td>\n",
+       "        <td>[60, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',        -- Dependent variable\n",
+    "                                       'attributes'         -- Independent variable\n",
+    "                                        ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>attributes_shape</th>\n",
+       "        <th>class_text_shape</th>\n",
+       "        <th>buffer_id</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[15, 4]</td>\n",
+       "        <td>[15, 3]</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT attributes_shape, class_text_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 1 hidden layer:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
+      "Model: \"sequential\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense (Dense)                (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_1 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_2 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model1 = Sequential()\n",
+    "model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model1.add(Dense(10, activation='relu'))\n",
+    "model1.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model1.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model1.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture with 2 hidden layers:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_6 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 303\n",
+      "Trainable params: 303\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model2 = Sequential()\n",
+    "model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(10, activation='relu'))\n",
+    "model2.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model2.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model2.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>model_weights</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>__internal_madlib_id__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>MLP with 1 hidden layer</td>\n",
+       "        <td>__madlib_temp_4017958_1614991901_4240024__</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>None</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>MLP with 2 hidden layers</td>\n",
+       "        <td>__madlib_temp_28416680_1614991901_72274844__</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_4017958_1614991901_4240024__'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1835 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_28416680_1614991901_72274844__')]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'MLP with 1 hidden layer'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'MLP with 2 hidden layers'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"def_mst\"></a>\n",
+    "# 4.  Define and load model selection tuples"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Generate model configurations using grid search. The output table for grid search contains the unique combinations of model architectures, compile and fit parameters."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8'),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4'),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8')]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
+    "\n",
+    "SELECT madlib.generate_model_configs(\n",
+    "                                        'model_arch_library', -- model architecture table\n",
+    "                                        'mst_table',          -- model selection table output\n",
+    "                                         ARRAY[1,2],          -- model ids from model architecture table\n",
+    "                                         $$\n",
+    "                                            {'loss': ['categorical_crossentropy'],\n",
+    "                                             'optimizer_params_list': [ {'optimizer': ['Adam'], 'lr': [0.001, 0.01, 0.1]} ],\n",
+    "                                             'metrics': ['accuracy']}\n",
+    "                                         $$,                  -- compile_param_grid\n",
+    "                                         $$\n",
+    "                                         { 'batch_size': [4, 8],\n",
+    "                                           'epochs': [1]\n",
+    "                                         }\n",
+    "                                         $$,                  -- fit_param_grid\n",
+    "                                         'grid'               -- search_type\n",
+    "                                         );\n",
+    "\n",
+    "SELECT * FROM mst_table ORDER BY mst_key;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "This is the name of the model architecture table that corresponds to the model selection table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>object_table</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'model_arch_library', None)]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mst_table_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 5.  Train\n",
+    "Train multiple models:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                              10,                     -- num_iterations\n",
+    "                                              FALSE                   -- use gpus\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>10</td>\n",
+       "        <td>False</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2021-03-06 00:51:48.452654</td>\n",
+       "        <td>2021-03-06 00:53:20.221035</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', None, u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 10, False, None, None, datetime.datetime(2021, 3, 6, 0, 51, 48, 452654), datetime.datetime(2021, 3, 6, 0, 53, 20, 221035), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [10])]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View results for each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.2427790164948]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.983333349228</td>\n",
+       "        <td>0.201789721847</td>\n",
+       "        <td>[0.983333349227905]</td>\n",
+       "        <td>[0.201789721846581]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[88.9964590072632]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.134730249643</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.134730249643326]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[88.7690601348877]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.402144879103</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.402144879102707]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.9196391105652]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.416792035103</td>\n",
+       "        <td>[0.933333337306976]</td>\n",
+       "        <td>[0.416792035102844]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.534707069397]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.19042557478</td>\n",
+       "        <td>[0.908333361148834]</td>\n",
+       "        <td>[0.19042557477951]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.273796081543]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.181902274489</td>\n",
+       "        <td>[0.899999976158142]</td>\n",
+       "        <td>[0.181902274489403]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.4800100326538]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.824999988079</td>\n",
+       "        <td>0.303107827902</td>\n",
+       "        <td>[0.824999988079071]</td>\n",
+       "        <td>[0.30310782790184]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[89.7936120033264]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.808333337307</td>\n",
+       "        <td>0.300039559603</td>\n",
+       "        <td>[0.808333337306976]</td>\n",
+       "        <td>[0.300039559602737]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[90.0158791542053]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.658333361149</td>\n",
+       "        <td>0.869387447834</td>\n",
+       "        <td>[0.658333361148834]</td>\n",
+       "        <td>[0.869387447834015]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[91.1929490566254]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.558333337307</td>\n",
+       "        <td>0.84612262249</td>\n",
+       "        <td>[0.558333337306976]</td>\n",
+       "        <td>[0.846122622489929]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[91.7660541534424]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.341666668653</td>\n",
+       "        <td>1.10138702393</td>\n",
+       "        <td>[0.341666668653488]</td>\n",
+       "        <td>[1.10138702392578]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[91.5026919841766]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.341666668653</td>\n",
+       "        <td>1.10163521767</td>\n",
+       "        <td>[0.341666668653488]</td>\n",
+       "        <td>[1.10163521766663]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.2427790164948], [u'accuracy'], u'categorical_crossentropy', 0.983333349227905, 0.201789721846581, [0.983333349227905], [0.201789721846581], None, None, None, None),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [88.9964590072632], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.134730249643326, [0.933333337306976], [0.134730249643326], None, None, None, None),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [88.7690601348877], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.402144879102707, [0.933333337306976], [0.402144879102707], None, None, None, None),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [90.9196391105652], [u'accuracy'], u'categorical_crossentropy', 0.933333337306976, 0.416792035102844, [0.933333337306976], [0.416792035102844], None, None, None, None),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [89.534707069397], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.19042557477951, [0.908333361148834], [0.19042557477951], None, None, None, None),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [89.273796081543], [u'accuracy'], u'categorical_crossentropy', 0.899999976158142, 0.181902274489403, [0.899999976158142], [0.181902274489403], None, None, None, None),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.4800100326538], [u'accuracy'], u'categorical_crossentropy', 0.824999988079071, 0.30310782790184, [0.824999988079071], [0.30310782790184], None, None, None, None),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [89.7936120033264], [u'accuracy'], u'categorical_crossentropy', 0.808333337306976, 0.300039559602737, [0.808333337306976], [0.300039559602737], None, None, None, None),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [90.0158791542053], [u'accuracy'], u'categorical_crossentropy', 0.658333361148834, 0.869387447834015, [0.658333361148834], [0.869387447834015], None, None, None, None),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [91.1929490566254], [u'accuracy'], u'categorical_crossentropy', 0.558333337306976, 0.846122622489929, [0.558333337306976], [0.846122622489929], None, None, None, None),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [91.7660541534424], [u'accuracy'], u'categorical_crossentropy', 0.341666668653488, 1.10138702392578, [0.341666668653488], [1.10138702392578], None, None, None, None),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [91.5026919841766], [u'accuracy'], u'categorical_crossentropy', 0.341666668653488, 1.10163521766663, [0.341666668653488], [1.10163521766663], None, None, None, None)]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY training_metrics_final DESC, training_loss_final;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 6. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.194916069508</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.194916069507599, 0.899999976158142, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_multi_model',  -- model\n",
+    "                                    'iris_test_packed',  -- test table\n",
+    "                                    'iris_validate',     -- output table\n",
+    "                                     NULL,               -- use gpus\n",
+    "                                     9                   -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 7. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999999</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.99069124</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9864196</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9983382</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9991603</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9974559</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60661113</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9940832</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9987955</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7598468</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8414144</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.715776</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9163472</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5081183</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.85080105</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.9842195</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6804195</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.81555897</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.92707217</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7158722</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.55272627</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7662018</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (10, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (12, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (14, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (18, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (20, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.9999999),\n",
+       " (49, u'class_text', u'Iris-setosa', 1.0),\n",
+       " (55, u'class_text', u'Iris-versicolor', 0.99069124),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.9864196),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9983382),\n",
+       " (76, u'class_text', u'Iris-versicolor', 0.9991603),\n",
+       " (82, u'class_text', u'Iris-versicolor', 0.9974559),\n",
+       " (84, u'class_text', u'Iris-versicolor', 0.60661113),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.9940832),\n",
+       " (98, u'class_text', u'Iris-versicolor', 0.9987955),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.7598468),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.8414144),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.715776),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.9163472),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.5081183),\n",
+       " (121, u'class_text', u'Iris-virginica', 0.85080105),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.9842195),\n",
+       " (125, u'class_text', u'Iris-virginica', 0.6804195),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.81555897),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.92707217),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.7158722),\n",
+       " (148, u'class_text', u'Iris-versicolor', 0.55272627),\n",
+       " (149, u'class_text', u'Iris-virginica', 0.7662018)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'response',        -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    9                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
+    "WHERE iris_predict.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               10,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               3,                     -- metrics compute frequency\n",
+    "                                               FALSE,                 -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Model selection for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>3</td>\n",
+       "        <td>False</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Model selection for iris dataset</td>\n",
+       "        <td>2021-03-06 00:53:31.218406</td>\n",
+       "        <td>2021-03-06 00:55:25.621208</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3, 6, 9, 10]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 10, 3, False, u'Sophie L.', u'Model selection for iris dataset', datetime.datetime(2021, 3, 6, 0, 53, 31, 218406), datetime.datetime(2021, 3, 6, 0, 55, 25, 621208), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [3, 6, 9, 10])]"
+      ]
+     },
+     "execution_count": 26,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.5490398406982, 64.223620891571, 97.8899219036102, 113.156138896942]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.991666674614</td>\n",
+       "        <td>0.177691921592</td>\n",
+       "        <td>[0.824999988079071, 0.975000023841858, 0.933333337306976, 0.991666674613953]</td>\n",
+       "        <td>[0.508709609508514, 0.290052831172943, 0.217903628945351, 0.177691921591759]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.20564225316</td>\n",
+       "        <td>[0.833333313465118, 0.966666638851166, 0.933333337306976, 0.966666638851166]</td>\n",
+       "        <td>[0.516587793827057, 0.316147029399872, 0.228292018175125, 0.205642253160477]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.4000718593597, 62.9767029285431, 96.690801858902, 112.145288944244]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.908333361149</td>\n",
+       "        <td>0.203085869551</td>\n",
+       "        <td>[0.933333337306976, 0.808333337306976, 0.958333313465118, 0.908333361148834]</td>\n",
+       "        <td>[0.372362315654755, 0.304766088724136, 0.11820487678051, 0.203085869550705]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.190864190459</td>\n",
+       "        <td>[0.966666638851166, 0.833333313465118, 0.966666638851166, 0.933333337306976]</td>\n",
+       "        <td>[0.347199022769928, 0.290798246860504, 0.110275268554688, 0.190864190459251]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[30.875373840332, 63.4593389034271, 97.1958589553833, 112.702126979828]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.883333325386</td>\n",
+       "        <td>0.692279815674</td>\n",
+       "        <td>[0.533333361148834, 0.616666674613953, 0.875, 0.883333325386047]</td>\n",
+       "        <td>[1.08197057247162, 0.851473987102509, 0.729827761650085, 0.692279815673828]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.674779772758</td>\n",
+       "        <td>[0.600000023841858, 0.666666686534882, 0.899999976158142, 0.899999976158142]</td>\n",
+       "        <td>[1.05298256874084, 0.817528009414673, 0.710631787776947, 0.674779772758484]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[29.8903229236603, 62.4677069187164, 96.1764039993286, 111.539803981781]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.925000011921</td>\n",
+       "        <td>0.176520362496</td>\n",
+       "        <td>[0.833333313465118, 0.925000011920929, 0.774999976158142, 0.925000011920929]</td>\n",
+       "        <td>[0.324734181165695, 0.182637020945549, 0.468331128358841, 0.176520362496376]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.2585529387</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.866666674613953, 0.899999976158142]</td>\n",
+       "        <td>[0.341204434633255, 0.261798053979874, 0.45467621088028, 0.258552938699722]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.7836039066315, 64.4592599868774, 98.1328208446503, 113.377946853638]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.797108471394</td>\n",
+       "        <td>[0.341666668653488, 0.491666674613953, 0.916666686534882, 0.891666650772095]</td>\n",
+       "        <td>[1.09786474704742, 0.967048287391663, 0.838281869888306, 0.797108471393585]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.800795376301</td>\n",
+       "        <td>[0.300000011920929, 0.433333337306976, 0.933333337306976, 0.899999976158142]</td>\n",
+       "        <td>[1.07609903812408, 0.962578594684601, 0.834975183010101, 0.800795376300812]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.1456639766693, 62.722916841507, 96.4333670139313, 111.892151832581]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.816666662693</td>\n",
+       "        <td>0.734887838364</td>\n",
+       "        <td>[0.850000023841858, 0.958333313465118, 0.966666638851166, 0.816666662693024]</td>\n",
+       "        <td>[0.335647404193878, 0.0894104242324829, 0.0672163665294647, 0.734887838363647]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.665323019028</td>\n",
+       "        <td>[0.866666674613953, 0.966666638851166, 0.966666638851166, 0.866666674613953]</td>\n",
+       "        <td>[0.320426166057587, 0.154994085431099, 0.204012081027031, 0.66532301902771]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[32.0452349185944, 64.7241299152374, 98.4015560150146, 113.899842977524]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.791666686535</td>\n",
+       "        <td>0.772948563099</td>\n",
+       "        <td>[0.316666662693024, 0.349999994039536, 0.725000023841858, 0.791666686534882]</td>\n",
+       "        <td>[1.01266825199127, 0.905348658561707, 0.807280421257019, 0.772948563098907]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.740880072117</td>\n",
+       "        <td>[0.400000005960464, 0.466666668653488, 0.800000011920929, 0.866666674613953]</td>\n",
+       "        <td>[0.964996755123138, 0.868514597415924, 0.771895349025726, 0.740880072116852]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[30.6602540016174, 63.2428169250488, 96.9531948566437, 112.484740972519]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.501820206642</td>\n",
+       "        <td>[0.658333361148834, 0.658333361148834, 0.658333361148834, 0.691666662693024]</td>\n",
+       "        <td>[0.654709756374359, 0.581917643547058, 1.33844769001007, 0.501820206642151]</td>\n",
+       "        <td>0.766666650772</td>\n",
+       "        <td>0.457984447479</td>\n",
+       "        <td>[0.699999988079071, 0.699999988079071, 0.699999988079071, 0.766666650772095]</td>\n",
+       "        <td>[0.592061340808868, 0.525563180446625, 1.17788350582123, 0.457984447479248]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[31.0910878181458, 63.7646949291229, 97.4185988903046, 112.939773797989]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.666666686535</td>\n",
+       "        <td>0.50052946806</td>\n",
+       "        <td>[0.433333337306976, 0.641666650772095, 0.649999976158142, 0.666666686534882]</td>\n",
+       "        <td>[0.850135624408722, 0.611121952533722, 0.509139358997345, 0.50052946805954]</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.459399551153</td>\n",
+       "        <td>[0.466666668653488, 0.699999988079071, 0.699999988079071, 0.733333349227905]</td>\n",
+       "        <td>[0.802468597888947, 0.571285247802734, 0.492577910423279, 0.459399551153183]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[29.6670269966125, 62.2440509796143, 95.9554150104523, 111.311369895935]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.733333349228</td>\n",
+       "        <td>0.821944594383</td>\n",
+       "        <td>[0.341666668653488, 0.341666668653488, 0.658333361148834, 0.733333349227905]</td>\n",
+       "        <td>[1.06431686878204, 0.996406197547913, 0.869706034660339, 0.82194459438324]</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.852133929729</td>\n",
+       "        <td>[0.300000011920929, 0.300000011920929, 0.699999988079071, 0.699999988079071]</td>\n",
+       "        <td>[1.09268116950989, 1.01670277118683, 0.891825795173645, 0.852133929729462]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[32.5322558879852, 65.2217888832092, 98.9477097988129, 114.400418996811]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.683333337307</td>\n",
+       "        <td>0.455871999264</td>\n",
+       "        <td>[0.725000023841858, 0.683333337306976, 0.683333337306976, 0.683333337306976]</td>\n",
+       "        <td>[0.383917421102524, 0.457853585481644, 0.455943495035172, 0.455871999263763]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.488439053297</td>\n",
+       "        <td>[0.800000011920929, 0.600000023841858, 0.600000023841858, 0.600000023841858]</td>\n",
+       "        <td>[0.388951361179352, 0.50080794095993, 0.487448841333389, 0.488439053297043]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[32.2720308303833, 64.9502189159393, 98.6836059093475, 114.134181976318]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.675000011921</td>\n",
+       "        <td>0.452209770679</td>\n",
+       "        <td>[0.683333337306976, 0.675000011920929, 0.683333337306976, 0.675000011920929]</td>\n",
+       "        <td>[0.492754250764847, 0.469423890113831, 0.571796059608459, 0.452209770679474]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.464268505573</td>\n",
+       "        <td>[0.733333349227905, 0.766666650772095, 0.600000023841858, 0.600000023841858]</td>\n",
+       "        <td>[0.438488334417343, 0.390993624925613, 0.690678656101227, 0.464268505573273]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [31.5490398406982, 64.223620891571, 97.8899219036102, 113.156138896942], [u'accuracy'], u'categorical_crossentropy', 0.991666674613953, 0.177691921591759, [0.824999988079071, 0.975000023841858, 0.933333337306976, 0.991666674613953], [0.508709609508514, 0.290052831172943, 0.217903628945351, 0.177691921591759], 0.966666638851166, 0.205642253160477, [0.833333313465118, 0.966666638851166, 0.933333337306976, 0.966666638851166], [0.516587793827057, 0.316147029399872, 0.228292018175125, 0.205642253160477]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [30.4000718593597, 62.9767029285431, 96.690801858902, 112.145288944244], [u'accuracy'], u'categorical_crossentropy', 0.908333361148834, 0.203085869550705, [0.933333337306976, 0.808333337306976, 0.958333313465118, 0.908333361148834], [0.372362315654755, 0.304766088724136, 0.11820487678051, 0.203085869550705], 0.933333337306976, 0.190864190459251, [0.966666638851166, 0.833333313465118, 0.966666638851166, 0.933333337306976], [0.347199022769928, 0.290798246860504, 0.110275268554688, 0.190864190459251]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [30.875373840332, 63.4593389034271, 97.1958589553833, 112.702126979828], [u'accuracy'], u'categorical_crossentropy', 0.883333325386047, 0.692279815673828, [0.533333361148834, 0.616666674613953, 0.875, 0.883333325386047], [1.08197057247162, 0.851473987102509, 0.729827761650085, 0.692279815673828], 0.899999976158142, 0.674779772758484, [0.600000023841858, 0.666666686534882, 0.899999976158142, 0.899999976158142], [1.05298256874084, 0.817528009414673, 0.710631787776947, 0.674779772758484]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [29.8903229236603, 62.4677069187164, 96.1764039993286, 111.539803981781], [u'accuracy'], u'categorical_crossentropy', 0.925000011920929, 0.176520362496376, [0.833333313465118, 0.925000011920929, 0.774999976158142, 0.925000011920929], [0.324734181165695, 0.182637020945549, 0.468331128358841, 0.176520362496376], 0.899999976158142, 0.258552938699722, [0.866666674613953, 0.866666674613953, 0.866666674613953, 0.899999976158142], [0.341204434633255, 0.261798053979874, 0.45467621088028, 0.258552938699722]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [31.7836039066315, 64.4592599868774, 98.1328208446503, 113.377946853638], [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.797108471393585, [0.341666668653488, 0.491666674613953, 0.916666686534882, 0.891666650772095], [1.09786474704742, 0.967048287391663, 0.838281869888306, 0.797108471393585], 0.899999976158142, 0.800795376300812, [0.300000011920929, 0.433333337306976, 0.933333337306976, 0.899999976158142], [1.07609903812408, 0.962578594684601, 0.834975183010101, 0.800795376300812]),\n",
+       " (9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [30.1456639766693, 62.722916841507, 96.4333670139313, 111.892151832581], [u'accuracy'], u'categorical_crossentropy', 0.816666662693024, 0.734887838363647, [0.850000023841858, 0.958333313465118, 0.966666638851166, 0.816666662693024], [0.335647404193878, 0.0894104242324829, 0.0672163665294647, 0.734887838363647], 0.866666674613953, 0.66532301902771, [0.866666674613953, 0.966666638851166, 0.966666638851166, 0.866666674613953], [0.320426166057587, 0.154994085431099, 0.204012081027031, 0.66532301902771]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [32.0452349185944, 64.7241299152374, 98.4015560150146, 113.899842977524], [u'accuracy'], u'categorical_crossentropy', 0.791666686534882, 0.772948563098907, [0.316666662693024, 0.349999994039536, 0.725000023841858, 0.791666686534882], [1.01266825199127, 0.905348658561707, 0.807280421257019, 0.772948563098907], 0.866666674613953, 0.740880072116852, [0.400000005960464, 0.466666668653488, 0.800000011920929, 0.866666674613953], [0.964996755123138, 0.868514597415924, 0.771895349025726, 0.740880072116852]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [30.6602540016174, 63.2428169250488, 96.9531948566437, 112.484740972519], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.501820206642151, [0.658333361148834, 0.658333361148834, 0.658333361148834, 0.691666662693024], [0.654709756374359, 0.581917643547058, 1.33844769001007, 0.501820206642151], 0.766666650772095, 0.457984447479248, [0.699999988079071, 0.699999988079071, 0.699999988079071, 0.766666650772095], [0.592061340808868, 0.525563180446625, 1.17788350582123, 0.457984447479248]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [31.0910878181458, 63.7646949291229, 97.4185988903046, 112.939773797989], [u'accuracy'], u'categorical_crossentropy', 0.666666686534882, 0.50052946805954, [0.433333337306976, 0.641666650772095, 0.649999976158142, 0.666666686534882], [0.850135624408722, 0.611121952533722, 0.509139358997345, 0.50052946805954], 0.733333349227905, 0.459399551153183, [0.466666668653488, 0.699999988079071, 0.699999988079071, 0.733333349227905], [0.802468597888947, 0.571285247802734, 0.492577910423279, 0.459399551153183]),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [29.6670269966125, 62.2440509796143, 95.9554150104523, 111.311369895935], [u'accuracy'], u'categorical_crossentropy', 0.733333349227905, 0.82194459438324, [0.341666668653488, 0.341666668653488, 0.658333361148834, 0.733333349227905], [1.06431686878204, 0.996406197547913, 0.869706034660339, 0.82194459438324], 0.699999988079071, 0.852133929729462, [0.300000011920929, 0.300000011920929, 0.699999988079071, 0.699999988079071], [1.09268116950989, 1.01670277118683, 0.891825795173645, 0.852133929729462]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [32.5322558879852, 65.2217888832092, 98.9477097988129, 114.400418996811], [u'accuracy'], u'categorical_crossentropy', 0.683333337306976, 0.455871999263763, [0.725000023841858, 0.683333337306976, 0.683333337306976, 0.683333337306976], [0.383917421102524, 0.457853585481644, 0.455943495035172, 0.455871999263763], 0.600000023841858, 0.488439053297043, [0.800000011920929, 0.600000023841858, 0.600000023841858, 0.600000023841858], [0.388951361179352, 0.50080794095993, 0.487448841333389, 0.488439053297043]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [32.2720308303833, 64.9502189159393, 98.6836059093475, 114.134181976318], [u'accuracy'], u'categorical_crossentropy', 0.675000011920929, 0.452209770679474, [0.683333337306976, 0.675000011920929, 0.683333337306976, 0.675000011920929], [0.492754250764847, 0.469423890113831, 0.571796059608459, 0.452209770679474], 0.600000023841858, 0.464268505573273, [0.733333349227905, 0.766666650772095, 0.600000023841858, 0.600000023841858], [0.438488334417343, 0.390993624925613, 0.690678656101227, 0.464268505573273])]"
+      ]
+     },
+     "execution_count": 27,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "from matplotlib.ticker import MaxNLocator\n",
+    "from collections import defaultdict\n",
+    "import pandas as pd\n",
+    "import seaborn as sns\n",
+    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
+    "plt.rcParams.update({'font.size': 12})\n",
+    "pd.set_option('display.max_colwidth', -1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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,iVBORw0KGgoAAAANSUhEUgAAA4QAAAHCCAYAAAC30AdjAAAgAElEQVR4XuxdB3hUxRb+dze76b2HEDqoiIIgAhYUG6Kiz4K9AIL1WVCKDSsqIhZUFBVR7L039CkKAoYqRUBKIAnpvW7f9/03d2ETNsnuZvdmdzPzPj4fZMqZfyb3zD/nzDkqiCIQEAgIBAQCAgGBgEBAICAQEAgIBAQCXRIBVZectZi0vyCwEkAagL4OAr0L4HIAIS4IyXa7ADwI4HEX6rtTheObACwGcIM7DbtwXXfWrgvDJKYuEBAICAScIiB0YvsbwxlG7bcSNQQCAoE2ERCEUGyQ1hD4BMAlAIYA2NRKJe6fvQDiAaQDaHQTzs5WfgkAbgfwK4A/WsjeVQlhbwDXAvgcwGY311MQQjcBE9UFAgKBgEFA6ET/uCQVhDBgfmWEoIGEgCCEgbRayso6FsAPABYAuKOVoccA+B+ARQBu8kA8Zx92LQA1AIML/XXUQthe+zAAZvmPC+IERZUzAPwM4BoAJHjuFHfWzp1+RV2BgEBAINDZCAidCPiDThSEsLN/E8T4QYmAIIRBuaxemRRJ2T4AEQAyABid9PoOgKsBDAew1oNRO/phb4/QtSdSR9u3138g/txdQshvSCSAukCcrIPM0QBqA3wOQnyBgEDAdwgIneg7bN3puaPnBnfG8ve6Qm/5+woFkHyCEAbQYnWCqI/K7/MuBfBpi/FjABQB2ANgkMPPrgRwBYBjAaQCqAGwAsBsAFtb9OGOy+gpAJ6SXVirAXwsv++jO6vjG0K6es4CcDaA/rI7ayGAb+V6FbIMduLTElbOh0SxLZfRG2WL6BGyJfMvAI8AWOXQmWP7twA8CWAogAbZHfMuAPUurGk+gB0ApgOYL5Nv9sE+7wWgA/AEgMsA0AV2DQDKt7NF37zZvQcA14duoXTv5boQu7/lunwr+boTmWgFJl52zOhSGgfgFgB9AHCf8A1nay6jdCe+H8C58uVClTwm15Puuu2V02XZefFA8lkgW6ZnAuB6tkVinclk33fcI/MAnAqAivU42U2W/zbDiVB0GRsvu0fb91E3GUPOjfu9FMA3AB4AUNbexMTPBQICgYBCQOhE5+/qldSJrRFCfsf53aWeoP7dDuBFWVc6bjKeVx4GMAJAkqxDWJfffXpFsYTL+pV6tbus56mLv5PPF+1tWp6tpwKYDOAoADYAOQA+k88KbE+dSb3I/tm3Y7Hrfeo2FsfzxEey/DxjUd9/JXtyUQd936Ifjdz3AQDDHH5GjDj2SQCi5Mt/nimeBmBpb3Li58GJgCCEwbmu3ppVL5nw8SPJj41j4ceOrqIkNs87/ICkqBjAOvm/JFesyw8a3yOScNmLq4RwFIDfAJBILJRJJkmnvU9HQsiPW5784eVHnqSLHz+6QG4DcLwcLIbBbK4C8IxMdvlRZaGViP+/NUJIUjZN/hDzwxwrEzAqlvMALGvxASdhzZLJK+dON9sJAF6RCVV7a0XFQALId5rvy0qOrksXyESQJIayfg0gBcDd8sf9aABWuXOSxl8AnABgKYD1cn9TZBJDpbBRJnckhSTUlM9OcEmo7aSQ7qQkkJSHAXd4KbAfwE+tEEKSzz8BJMuKeYOsgKiMSXTvawcAks6X5DWlRTpXxpPEjOSWlwyeEEJeFjBo0O8yMeb6PQaA8pHYUUnb8aOIJMCcKw8EF8sy8/eDGFHpEgu+p+0H4GaZtHKv8UJEFIGAQCA4EBA68XBCqLROdHZuuFDW49RVr8l6n2cEkiCS+Ifk7Uc99I9Mel6V9Qm//fxWU5fwYpflbfktPUnSagB8DsFvO88iPE+0VXiu/kC+pGVbXhDy7HKkfPl4jNzYE0JIGXvIF7fUn9RRPK/wkpTv/hmQz7GcI5NExkogOWah7uQFPy+N3wNQCeBE2duLZxriJkoXREAQwi646G5OmURgtHxA5sfWXvihIxmhhcTREkILTkvLF8kJD9r8APPDZC+uEsJs2eI4EMBuuXGofBinDI6EkG49/FnLADe8weT4PMzzw8nSlsuoM0LImz6SSgagIQkhoWDJlJUMrUNUGvxI29vz/5OIkSDbC8kTbzNJMtoLxENCSIwvAvCFQx8kZbzp5L/ZCQp/TLJKBU35uHYstC7OBXCWTAzt3XB8KhgqFvtNZFvkyv6zcgC0jra0gDmzxpEgs92ZDvLYx+daOZKulluTio9RZKm4qLBakit7e08IIfuj8udNsWPhe1lecNB6aCf3/Ll9/5CIk3yzkBzS6ss9SIVsL1xvEkUeQrwd/bYlRuLvAgGBgLIICJ14KPJ2Z+jElucGkjVa3/i8hfLw4o6F5wBe+JHsUS/zwo56lFY6x3OAs91DXbNcJk/u7i5eVJJokVROaqHjHHWeJ4SQspwmy+YoF88BvCi2e2XZf0Ziyrny2Q/1NTHiBa79ItXRGshzAi2EJwMgxqIEEAIff/yxJisrK0mn0/GCulkxGo2W3NzcsgkTJrRp/RWEMIAWvJNEtX/caDUiqWAhGaD1jbdMdCd1Vri36IZH6xQLSRStbzws24srhJAfMro7fOjk5opWP1q8Wks7wV8MykByRovWv/IHj66GLO4SQlqz5sjW0pauGbx9u80hKqudEHLeJNSOhePTXZI3hiRjbRUSQv4Skxw5lpdlC2NL5UDlRwJNKxUJMAvJIxUR67YsJI9cY1pWGcjHFULINnQ/bVlaEkLexpbI7rrntzNPZz+2KyhGu6USb614Qgh500vrbst3g5SZ+40uyXwfay+0cvJQQXLOi4BE2T2Ut9F0U2pZ6MpDkkhXZ1EEAgKB4EFA6MRDhLAzdGLLcwO/5fw+O3P1JxniOcXuycTnB/SWoUcH/621d+P0MmJAOXr98BLYncKLQlrm6LHT1rMBTwghvXscXT/tctFCSlJIr5835H+0P+vhBfR/5H/jf3khzmcfdvdYex8kkySK9JThEx9RAgABm82mWr9+/Y0hISG8zObTIGe8ji7LerPZ/MLQoUMXqVQq/v2wIghhACx4J4vIDUbLIN1ASQRZeIvEw/o4Jx8VWkz4QeFBmNZCx0JrD1317MUVQkh3Rr51oyXH7s5hb8+xaHlrSQjpNkHXSfrY8/bQsfCNHF1YWdwlhGxLl8qe8i2bY7+Msko3S/vNo50Q0uVkYgsZ7G/1ODcqsrYKCSFxa0nm7MqkpSz2OZGkkLyykOjZiXlrY5F4c51dIYS0lpEItSwtCaFdUXuqYDgGFRzfKfJ2t7XiCSGkKyvn7KzQBYd9UkEyWA7Hp2XaMeKufW5trR0vIAa0s77ixwIBgUBgISB04iFC2Bk6seW5gU8/qHuul61yjrvJfnnNC1t6J/HMy7ok9bzYYzA8eoLQVdLxcpaWRFr4eFHKpx58skLPEMYicHqYdhiU333uET4Vaat4Qghp8aPsLQvPObyA5EW9/RKS7xdJDh29i+wEvi25qHep40UJAATWrVt3k06nuz8zM1MfHh7e6IzskTQ2NjaG5+fnhxmNxjnDhg2zGwuazVAQwgBYcD8Q0W6NopsdA6iQpPD2jFYrR5c/khPepjHgBj/A/DDSfZQfUP6dHy3HJPS+IIR8n8ePOy00/KBTVr1MiHhz55hoXglC6CyxvZ0QuuKa0fJxuX07tKZMnM2Jio83fyTxrRWSblcthK2lpOgsQmi/9XUmFy3LtDCSoNtLe1Hq7LfKJPIk9LyI4I0pLyDo+szC3wX2wz3WWnoOvv10DDTkB7/KQgSBgEDACwgIndgEoieEsKM6sSOE0L70fG5BKx51MN/10730v/Klrr0OvUB46U0PH14Q8rxDN1I+vbA/F3G2lVwlhLwo5cWts6AydHu1u3VyDFfyIvOMdat8gUkXWrrL8pmNY5R4BpLh2YFPS7a08ntADxkSS1H8HAG6ifbr129bjx49NPHx8Qy22GaprKyMzc3NNf/7779HO3MfFYSwPQTFz4kA30jRVYG3TbSe8JE0rU8tXeVolWOQFt5QkWDYC/cZXQe5Yd0lhO66jFI2fuD5MScRtBe+Y+QH0FEZ2S0/zlxOnX2AGdWTET2dRfOi9YgKhYFzGEimrQ+40oSQj+jpPkLF097tZlvkqr2UFK25jHJN+JDd3UK3VLoBtffeg5iTqNFlguvgWOg+aw+8Y//39gghram0ltLVlnjQOkhy5xhNl9ZD1uGNLW+oRREICAS6DgJCJzatdWfoxJbf75HyxZszl1H7m8GWwe8cdyqjc1NP8LkAnxE4KzzDsH+ecVq+529Zn1ZEEsn2XEYp07OyJ9Nmh07oWUVXVkbgdhZllOcHZ4WupLR48u06n9LQq4YXFzyX2Iv9wpxeUs4iined3+AgmOmaNWtSw8LC1gwYMKA2LCzMWWq4ZrPU6/W6nTt3Ruv1+hEjRoyg11+zIghhEGwKhaZgj0JJF0cG3CCxa+nGdyeA5+QbNb6dsxe+Z2N0UHtKB/u/u2IhZF1+5HgY522XPUppa0FlvpQP8Tyw8xDP4hj1y5EQsg5v4igzb8wcS1tBZXhLyCAptJKy8F0ZSRffC7QMKtPR21BvWAj5/pNpL1pTisTB/nHgG09aV52RK3cJIbHh+wViRWJFtxvHwnVpi6Dag8rQlYcWuZbvPeztqcQZ6IbvOh2JJy8meEvKN5juWAgpIxUp9y3fETJAAK2rvOxwLD/Klw+UrWUeTsrG6HUMNCSKQEAgEHwICJ3YFMSFXkFK6sSW5wZ+25kzmaki+C6fl88svNijXNRp9qAyJH+MqtlS7/BdIZ9lsA96PZGUtbS4UBcw0jUJGfV6a4VROhkRfImcdsJxLEedx4tlkkeSTBJDe+EFNSOj2iN7899dsRCyHteC8yYhZB+MKeAY0M6eYoJBc+jxQiwcC+fPsURO3gD4Xm3YsCFDrVavOuKII6pDQ0PbslpLszEYDNodO3bEWq3WUccdd5xjIDzp54IQBsCi+4mIDJhiD1vMj6yzACX86NKqwsM5D9T8oPKdHAkkP0D80LprIeT06dbBjyM/XiSW7Jd+9M7STtg/2nRt5cebxJEPqenTzxu0lgTNHp2MFk8qEn4I6VraXtoJugIy8Agtb3w/yNtFBk4hAWrvA660hZAKgmSJpIxz4/pxnnzjwH/j/ydpY6EiJDmk9YvBYxgum6SZbTwhhLTCEisqYrpf0pLHSGdMO0HXGrqwtFV4u0mrHyOjUckx7QSjuvIRPdfantuSypdvSEjeaJ3mW1X+nYSaFwnuEkKGFuce4r4lJrSuOkbZpcwkrDyc8CaYsvGAyHEYmp7yca+JKKN+8gETYggEvIyA0IlNgNrTTiilE51dJFPHM08s3R1p+eJTFcYS4HfcMe0EvU64bgzAwstlHqJ5lmG+QZI4envwIo96hm8G6e3DcwHfnPOCkIX6xB7J1NmW4rmaZwM+VeAFOj1keGahTqK+ZWwD+xmBrpnULYxsTR3Hsw7PKfRwoj5xx0LIPpk/l8H/qLfsuq+ljLReMrAM61Bv0gOGQff43pLWTwbSEVFGvfyx8EV3ghD6AlXRpysI8IPBGwUSK0aoItlyVphOgeSKuXZoQeMHkR8pPlRm7j9PCCHHYb+0ctE90J6Yni6sLRPTsy4JGi1cPJjzPSM/7Lx144e9JSEkMbG7bZCouJqYnsqBH1Ca6WlR4zszxwAx/uQySkz4fpPvC0iieIvKwvW0v7XkDam9UCHwfQPrkVC3TEzv6htCe38kcMSfiojWSBJ7KjsqrpZWQ2d7iuG0qch520lyS7kpLy2f9htOEnMqVRIx7lHeinLfUfnzYOAuIaQcVNZcY1oC+d7EWeFFAOWgZZIEm1ZpRqgjZszT2V4UWVd+90QdgYBAwP8QEDrx0JowCIlSOrE1l38SO2eJ6Ul67IWuvvRkYlCwdPmMwkthXugx3y31OXUe9TnJG4kgLwTtuXh5BnHMpdzarmRUb+pbpp1gYDF6qdCjiqTV8ZKQ+oUXnrw459iM/ElvJXqcOKaDctVCyCc21D8c3zEyfEs56XHFnxMzEmDqURJDXhzz0r2l5dD/fvuERBCEUGwCgYBAQCAgEBAICAQEAgIBgYBAQCDQRREQhLCLLryYtkBAICAQEAgIBAQCAgGBgEBAICAQEIRQ7AGBgEBAICAQEAgIBAQCAgGBgEBAINBFERBRRrvowotpCwQEAgIBgYBAQCAgEBAICAQEAgIBkYdQ7AGBgEBAICAQEAgIBAQCAgGBgEBAINCFEVi3bt1NOp3u/szMTH14eHijSqU6LJWXzWZTNTY2hufn54cZjcY5w4YNe9UZZCLtRBfeSGLqAgGBgEBAICAQEAgIBAQCAgGBQOAhQLK3fv36G0NCQhhZnxHWnfE6kkS92Wx+YejQoYuckUbOXBDCwFt/IbFAQCAgEBAICAQEAgIBgYBAQCAgEADdR7OyspJ0Op2mJRxGo9GSm5tbNmHCBKY/abUECyE8zEQq9odAQCAgEBAIBDUCwaK/XF0koedcRUrUEwgIBAQCwYGAYnpOsYF8vC42m03oSh9jLLoXCAgEBAJ+gYBKJamuYNFfrmIq9JyrSIl6AgGBgEAgwBFQWs8Fi0IVijLAN74QXyAgEBAIuIqA0orSVbl8XE/oOR8DLLoXCAgEBAL+goDSek4QQn9ZeSGHQEAgIBAQCLiEgNKK0iWhfF9JEELfYyxGEAgIBAQCfoGA0npOEEK/WHYhhEBAICAQEAi4ioDSitJVuXxcTxBCHwMsuhcICAQEAv6CgNJ6ThBCf1l5IYdAQCAgEBAIuISA0orSQai+AKYDGAlgIIAVAE5tR+jjAdwC4GQAGQDyALwPYC5Dgbs04aZKghC6AZaoKhAQCAgEAhkBpfWcIISBvFuE7AIBgYBAoAsioLSidID4AgAvAVgD4GgAxS4QwmcADAfwDoBdAI4B8BiAXwBc7MbyCULoBliiqkBAICAQCGQElNZzghAG8m4RsgsEBAICgS6IgNKK0gFiNQCr/PdPASS5QAhZp6zFMk0FsAhATwD7XVzCdgkho22bzWaaEl3sMrircZ+EhIRA3i/BPVkxO4GAQCCoEFBazwlCGFTbR0xGICAQEAgEPwJKK8pWEHWVEDprTjfSbACjAKx2ccVaJYQkgGVlZSgvLxdksAWY3CuJiYlISkoSxNDFjSaqCQQEAp2PgNJ6ThDCzl9zIYFAQCAgEBAIuIGA0orSB4TwdgDPAUgHUOLi1FslhKWlpRIZTEtLQ0REhIvddY1qDQ0NKCoqkkhhcnJy15i0mKVAQCAQ8AgorecEIQz4LSMmIBAQCAgEuhYCSitKLxPCNACbAXwP4Ho3Vs4pIaR1cMeOHUhPT0dcXJwb3XWdqlVVVRIpHDBggLASdp1lFzMVCAQ0AkrrOUEIA3q7COEFAgIBgUDXQ0BpRelFQqiTg8lkAhgKoLKN1XsYwEOOP3f2NtBkMmH37t3o06cPdDp2L0pLBIxGI/bs2YO+fftCq9UKgAQCAgGBgN8joLSeE4TQ77eEEFAgIBAQCAgEHBFQWlF6iRBS334A4EwAJwLY4eaqOrUQ2smOIIStoykwcnOnieoCAYFApyOgtJ4ThLDTl1wIIBAQCAgEBALuIKC0ovQSIXwBAKOLkhCudGe+cl1BCD0AjU0EIfQQONFMICAQ6DQElNZzXZoQ2mxW1OWvQvXeZTA1lEIbkYzY3mchKnMUVCpGFxdFIOAeAlaLGZs3vY2txhWoDzcgsjEUR+tOxjGDr4NaE+JeZ6J2l0eA+6ls+duoLVoBm8YAlSUU0WknI+nUwNpP/NburFuFLdXLUGMqRYw2GYNiz8KAKM++tUorSi8QwnsBPA5gAoDPPNzYQU8Iv/zyS8yePRs7d+5ERkYG/vvf/2LatGkewnWomSCEHYZQdCAQ8BkCVpsV6+pW4Y/qZSg3lSJRm4xTYs/CsKhRUHfhs7jSeq7LEkIeUIrWLkB9QTZgs6eVUgEqFSIzhiPt+NsFKfTZr39wdszD+5erb8eBlArY+JvFP9am/3QrScCFIxcIUhicS++TWXE/7f/odlhCK5o2Ef8wvZwN0BgS0OOywNhP/Nb+ULQAe+qzYTuYwk8F/q9P5HCck+b+t1ZpRemwwAzhOU7++90AYhze+TFITAOA3QB+BzBZrnclgPcAvCXnHnTcL3sAlLq4gYKaEP755584+eSTMWnSJEyYMAF//fUXHn30UcybNw933nmnixA5ryYIYYfgE40FAj5DgGTwzaIF2FSfDauDflBDhcGRwzEp7fYuSwqV1nNdlhDW5q1E8fqFDmTQYb+r1Egdeguiu5/ks18C0XHwIbBp/WKsiP4ZNifGZZUVOLn2TAweaj8jBt/8xYy8i0DJ/xajpupnwJmzghWIiTsTKaf7/37aUbsSPxcvdCCDh3BSQY0zU2/BEdHufWuVVpQOK8tE8jmtrHQvAPvkP8sdIoiSCF7XSpuJMlF0ZfMENSE8++yzwRQRK1asOIjF3XffjSVLlkgRQjsSMEcQQle2l6gjEFAegezalVhavNCBDB6SQQ01rk29BcPd1A/Kz8I3Iyqt57osIcz/fTb0Ff+2sooqhCX0Q+boR32zyqLXoETg3dXXoyJJ32TJaVmsQNwB4KRPo4Jy7mJS3kfAelwdEC9bBlt2bwNUjWHocxW5hn+XT/Jno1Df+rc2PawfLs1071urtKL0E4R9TghtVivq1qxC9a/LYCorhTYpGbFjzkLUiFFQqX37jCI1NRW33nqr5DJqLz/99BPGjh2L5cuXY/To0R4vgyCEHkMnGgoEfIrAM/mzsbcN/dA7rB/ucVM/+FRgBTtXWs91WUKY88PNsOhbj/itCUtAr3MWKrj0YqhAR2DRpitgiKJPXyvFCqTuVSOukH9UiC1SQ2sMll/BQF89/5PfdooeCG9DLoMKfS9n0Er/Lm/k3IgGS3WrQkZqEjC5l3vfWqUVpZ8g7FNCSDJY9MoC1K/PBqzyMwqV/Ixi6HCk3Xy7T0lhbGws7r33XsyaNesg3L/99hvGjBmDV155BTfddJPHyyAIocfQiYYCAZ8icG/Ozai2tH4Wj9Mk4Ak39YNPBVawc6X1XLCcRp0qyrbWrclCuEt+lHN4zbCEAcgc/YiCSy+GClQEeJCq+vl7fJz8Lgx8UeSs2Hlis984FRJ03ZAW2hepYX2RFtYXibruUKs0gQqFkNuLCOx5/zrYwgzOLc60EBq16H3ZUr9NtM2ceTvr6C76ilN30SaoVEgP649LM9371iqtKL24rB3pyqeEsHbVShS/sfAQGXSUVK1G6g23IHqUe6697kx26NCh6NmzJz777FDMnblz50oEcc6cObjvvvvc6a5ZXUEIPYZONBQI+BSB9i2E/XGPm/rBpwIr2LnSeq7LEsI23xACiM46DalDb1Rw6cVQgYiAIS8XhUtfQfagHBQdJd8vOPmt4hvCUbVjkH7UaBTpd6PYsEv6b625rNm0Q1ShSAntJZFDiSSG9kVUSKLfHvoDcc0CQWZ95R4c+P0R2GzGNsWNSB2M5MGTpQjJ/lQYSfS30sXY37BJFsseEae5lAH4hrAzYXaLEO67+zZYGxjjxrViNeidk0F7c7Ua6tAwlzpTR0Sg5/yXXKprr/T6669LVsBXX30Vl1xyCbKzs3HttdeipKQETz75ZDPLoVsdi7QT7sIl6gsEFEPgr5o/8HaJcw8R8YZQOkwqxtMUG8jHu8ttC2HzKKNy6L6DuDeZc+L6jUfiwMtFtFEfL14gdm8zmVDx9ecoWv4V1l9sRVUmEIV4RJZaUZJYLQWDlIKBtBNltN5chWLD7iaSqOd/98Bka2wGSaQm/qAFMVWyJvaGTt2WL2EgIipktiNQV7AWxetehM1ihMocCptathI6RBlVG6KgToyCuaEIKk0oEgdeIaXM6ex0OYwYx9QSq8o/gMlmQJw2HWOSp2Bz9TI5yuihb22ARhntzI3qW0LY2D55VIczyGr7xRNCaLFYcMcdd0iEkP8/IiICtBAy9QQDy1x//fXtD9xKDWEh9Bg60VAg4FMEfq38AZ+Wv33YGCSDIsqoIISebD63CSEHaZ6HsAzaiCTpUKUOjUNx9nOwmuoRmXECUofdCrVG54lcok0QItC4aydKlryGCuMBrLscaIwD0kL74byM6QhDxME8hA3hBkS4mYeQB+pK4wEUGewEcTfKjbmwNVFMqfAgnaDLPGhBpDUxQXI19W3QhyBcSr+aEl0sq/d8j7It70qm5sSjr0JMr7Eo/33pwTyE0GuA3WZE9RqNlOsno3LHZ6jc9Y0ULZmBsFKG3AhdTGanzKvcmI//lSxCkX4XaPkbGj8ew+MvQohaJ31rD+UhLEOMNikY8hAqjbNbhNBd4fIfnw39nl1UjIc3VakQ1rc/Mu93z7XXXRlYv7KyEvn5+ejVqxd27NiB448/Htu3b8cRRxzhSXdSG0EIPYZONBQI+AyBIuMBPJk3CxabBecmXIJtDZuQo98lnXeuTp6KETGndulzjXAZ9WzreUQI2xrKWHsABavnwlxfgtD4vkgfOR0hobGeSSdaBQUC1sZGlH/6oRSBr6yHDRsnqGHSWdEvaiTOTLlZOvj6opisepQYciQrIg/btCjWmSuaDaWVXE17y66m/aT/RoUk+EIc0acPELBZLSjb/Daqc5ZBpdYiddhtiOp2wmEjWRoasH/6f8G9mPXEfOjS0mGo2oeSjYtgqMoB1CFIGPAfxPe/ACp1iA8kPbxLi82MdZVfYW3FF7DCjOTQXjgj5UYkhzJDg2+K0orSN7Nwu1efEsLOfkPoDA3mJGSSeuYo7EgRhLAj6Im2AgHvI0C9MS9/NnINezE+4TKMTfiPNMiiwvn4u34tpnV7CH3Dj/T+wAHUo9J6rsu6jLqyJyyGGhSumScFnwmJSEHGyJnQxXRzpamoE2QI1G/eiNK33oC5ohz5w3XYcqYZNpUVw+IvxMiECYq76pEQNrmY7pasiSX6vTDZ9M1QZ/RGEkP7e8TU0N7QqplZa4UAACAASURBVF17AxRky+fX07GaGlG09gU0FG+CJjQW6SPukax9rZXKb79C+acfIGrEiUi76b9SNRLKqt3fo2L7x7BZTdDFdJeshWEJfX06d15Q/K/kNZQb86BRaTEiYQKGxI3zeWAkpRWlT0F0vXOfEsJmUUZpJeQfBaOMrlmzBitXrsTgwYNRU1ODDz74AEw7wX875phjXEfJSU1BCDsEn2gsEPA6At+Wf4LvKz9D77D+uKvbQ9DIwfR+qvwKX5V/gIsTr8Hp8ed6fdxA6lBpPScIYTu7w2oxomT9K6g7sBpqbQTSTpiGiOSjA2lPCVk7gICltgal7y9F3eqVktPmviu7YXvvA1BDg9NSbsDAmNM60Lv3mtLVtMKYLwesaSKKFca8w1xNGcXUHtGUbq7xum5d2iXDeyvgWU/mxnIUrJoLY00udNGZSB85A9rIlDY7Y/CP/dPvAPdm98eeRmhm94P1jXVFKN34GhrL/pGci2P7nIPEoyZAHeLdiwBarVeXf4RN1T9K7q2Z4QOlt4JxujTPgHCzldKK0k3xfFXdp4Sw6WJBzkP4G/MQlkGblITY05TJQ7h+/XopqAzdQ9VqNU4++WQ89dRTGDRoUIfxFISwwxCKDgQCXkNgn343GF1Uq9Livqy5SNYe0hs7G7bihYLHMTRqJCan3eG1MQOxI6X1nCCELuwSvn+p+OdjVP77JaDSIGXIFMT0ONWFlqJKoCLA91x1a/5E6ftvw1pbCyTFY/vkFORod0KnjsC5aXehe0THDyq+xMdIV1P9nmbvEetb5PvRqsKlIDUMVmO3JkaGMBu6KL5GgC6eBauflvKhhicfjbThd0Gji3Rp2Kpl36Ps/aWIHDoc6f+d1qwN927Nvl9Rvu09WE0NkncDv1kRKd7Zr7kNm/FryeuoMZdKvwsnJV4tXYzIyssl+TtaSWlF2VF5vdTe54TQS3L6XTeCEPrdkgiBuigCBqteejdYYirClck34KTYM5oh0WhpwN05k5AUkoJHey7ooig1TVtpPScIoRvbrWbfbyjZ9AZgsyB+wH+QcOSlirsKuiGuqOohAqbyMpS+vRgNmzdKPejOPAVrTipAkWk3YkKScX7GTCTqOidwh4dTOtis1lx+yNVUvxslhr0w2wzNumWaC6a7sLua8m2iVh3a0aFFewcE6gvXo2jtAtgsBsT0OE1KHeHOmz+r0YjcWXfCXFGBzIefQFjP3ofha26sQOnfS1BfuFb6WXTWaCQNugYaXZRHa6G31GFF2VJsr/1Dat8n8niMTp7YKW9VlVaUHgHm/UaCEHqIqSCEHgInmgkEvIzAh6Vv4o/qZTg6YghuTp/h9CLxkf3TUGwqwNO9XkOUprXkzl4WzA+7U1rPuUoImWHtRQAjAVQBeAMAw41Z2sFwIIDnADCbLWNafwJgOoA6h3ZvAbjOST98TbrDxTXyelCZ1sZtKNmCIikCaQOiMkch5bibRARSFxfJ36vRXar615+l91k2vR7a1DToJl6EZeGfodpUjNTQPjg/fToiQuL8fSouy2e1WcDokMX6pryIfI/I6Kl0A7QXRoxM1GU1e4+YoM0QlyEuo9y8YtWeH6UAMsQ44ajLmwLA8K2Wm6V6+S/Su9aIYwYjY9osp61pLawvyEbp32/CYqiW3igmHztRip7s6pjsY1fdGvxe9hYaLdWI0MTh1OSJ6Bt1eNAbN6fgcXWlFaXHgnq3oSCEHuIpCKGHwIlmAgEvIvBP/d94qfBJRKqj8UDWPMS2cpZ6q/hlZNeuwK3pMzEwcogXJQisrpTWc66cQug/tg0AH6XM5cUwgPky0XugDXgZkvNf+c/TABIB8L+rAFzYghDyZDGxRV/MaNw8SkbrgylGCCmCsSa/KQJpQynCEvpLQSA0oV33FiOwfsWcS2ssOCClktDv2gmo1Yg753w0nj0Q35e9AIO1Hn0ih+Os1Fu7hKXMYG2QgtRIuRHlHIkNFt4DHSrMg0iCfOg9Yt+gIsq+2NN0PS/bshTVe36UIommDL0Z0ZmjPB7KZjZj/73TYC4tQbf7H0F4vwGt9mUx1qFs67uo3b9cqhOZPgzJx05CSHjbkWgZvIgJ5nPq10vtjoo+FSclXY0wjWdWRo8n26Kh0orSW3J3sB9BCD0EUBBCD4ETzQQCXkKg3lKHx3Ono9pSiSlp0zAkanirPS+v+hEfl72F8xIuxbiEi70kQeB1o7Sec4UQ3gtgBoAeAGpkSPn3hwHwJaj931qizXb8kyVbFfnz8wF8DeB4AOvkBrQQMkrLsA4sl6KEkHKa9VVSBFJD5R5oI1ORzgik0RkdmIJo2hkI8FBd+f3XUpJ5mM0I7dELKZOmYm98npRTzQoLhsadj1GJV3RZi5j0ntJcLlkPpbQXkqtpDsw2Y7Mliw5JanIzDW1Ke5ES2stnqTg6Y690ZEyrWY+itS+ioWg91Lpo6RIpPLF1AufqWDV//oGS1xci/IijkDHzwXatfvRwKNn0upRORx0S3pTrsOeYw/Y2yevWml/xZ/l7MFobEROSgtNTpvjNu1mlFaWr6+HjeoIQegiwIIQeAieaCQS8gADPEIuLX8CGujU4IfoUXJd6S5u9MhfhvPwHJbfSWzJmekGCwOxCaT3nCiHkg5ECAJc7QEqStx/AeADftAL1RwCSAYxx+DlD3dF1lO6m9gy3AUkIOSer2YDi9S9LLllqbWTTIS+pa+dNCaRfO/3ePSh5cxGM+blQabVI+M+liD1rHLKrv0B25WdScu3Tkifh6BaPngNpjr6SlTmEmGrgYOoL/W5UmuhqeqgwEmtiaFaz94jx2vQuR6z5lq9w9dMwVO+DNioDGYwkGuWdaJx0c869/x6YCguQMeN+RBzVfuAYktOK7Z9IaSrothqWdCRShkyFLipdWrxKY4EUNOaAfjtUUGFw3DgpnYQ/vSNVWlH66vfIzX4FIXQTMHt1QQg9BE40Ewh4AYG1tSuxpPglJIQk4f7uTyNcE9FmryarEdP2TkSEJgpP9Xy13YtOL4jol10oredcIYQlABbKFkFH0Orlf5vXCpJfAWAkirEOP2emZLqBfupAMEkIJ9DoJtdnBIT7AfzuxgopbiG0y8ab9PJtH6Bq1zdNEUiPuxExWae4IbqoqjQCDNtf8fknYKRG5tqidSX5+ilQpybhf8WLsLNuJRh9c1z6negRcazS4gXseAZLA4oNe5rlR+SbM8cSqo4Eg9Qcyo/YDxFB/GjcUL0fhXQvb6xAeNJRUtoaT4O6tLYx6rLXoGjh8wjt3ReZDz7msvLUV+5ByYZFUsoLurDGHXkR9iYB2ZWfw2IzIUmXhdNTbkRqGF8J+FdRWlH6yewFIfRwIQQh9BA40Uwg0EEEKs3leDx3BvTWBtyR8QD6RzC0SPvlqbz7pKT1j/V4EYla2pa6XlFaz7lCCE1yIJjnWyxHPoClAO5rZZn4zvBK2WWUfbDwreAaAD8DOEv+NyYaoe8Z3yhy1e8GMFQORJPt4hboNEJol6865xcpcANsVsQfcTESjrjE5YOZi3MU1byAQMM/W1Cy5HXp3ZU6PAKJl12FmFNOg95Wj+8K56NAvwOMsjk+fSaSQmkIF8VTBOgmUmsubQpWI79HpKspyYZjoTuiPaIpo5smh/YMClfT+uJNKMp+HjazHtFZp0hWOHciibqKO62EeQ/dC2PefqTfOR2Rg/n5dK3YrGZU/vs1cvZ/hi0ZFtSEQ8qxeULCJTgu/nxoVLzD87+itKL0EwQEIfRwIQQh9BA40Uwg0AEEmB/5pYInsaNxC06POxcXJ13jcm8flCzGipqfcUPanTguaoTL7YKpotJ6zpeE8AgAW+WIpHxvyKAyJJA0ufzSwnLouIa0JTOIzd8tgs841mF/Dzn+Aw+fnV3qi/+WD4CNiO5+ElKG3AiVRtvZYonxGQ63vg5lH76L2hVyUI3jjkfyNRMREp+AKmMRvi58ClWmIsl6xUiiIhefb7aN5GpqyJXfI+6WrImVJnqkHyokJEmhPeT3iE3pL+IkV1NXPle+kdvdXqv3LkPp5rekC6KEIydIaWp8KX/9pvUofH4edFk90f3hJ6BSq10S2Ww14q+KT7Ch6jvYYEV8PTDogAqZWecj4chL/DaCstKK0iUwfV9JEEIPMRaE0EPgRDOBQAcQ+K3qR3xS9hbSdZmYlfkEtGqdy72trlmOd0pexRlx5+OipKtcbhdMFZXWc66csOgy+rLDmz873u25jLLeJDkaKUNwWgG8JgeUIVG8vo2F43gMQOOqiabTLYT2uRiqc2UXsXKEJR6B9BPuhiY0Opj2aEDNRQq7v+4vlL6zBJaaamhiYiUiGDmsKex+QeMOfFs4H3prLXpHDsPZqbdBq+ZTV1GUQoD57Zq5mup3S+vhWOhqKkU0dciPGK7xv98ryYV863uo2v0doA5B6nE3SZdDvi7c5/mPPQjD3t1Iu+VORA1v/0Y1v2Eb/lf6OqpNRdCqwqTAST3KgfJ/PpCsmtrINKQcN1VydfW3orSi9JP5C0Lo4UIIQughcKKZQMBDBAqNB/BU3izQSjij++PoHtrLrZ4KDHl4PG86+oUfhbu6zXarbbBUVlrPuUIIGVSG0SKucAC5O4DcdoLK2KvzdN0PAIllGYByAEya9Wobi/aSTAgZ2dSV4jeEkMKa9ZUoXD0Phqq90qEqfdQs6LwURMIVMESdJgTMlRUSEazfICfmPvlUJF12NTRRTSHzd9b+iZ+LX4EVZgyJOxcnJl4Ftco1y4rA2HcIkNzUmEua3Exld9NS477DXE1jtakSQbSnvkiiq6mq8yzyDNZSvO5lKRG8WhuF9BF3Kxpkiu7QBU/PgTY9A1lznmnVSmiw1GNl+XvYVvOrtIg9I4bgtOTJiNYmSX83NZShdNNiNBRvlP4e0/N0KRqpRtt2IADf7YjDe1ZaUSo5tzbGCmpC+Omnn+LZZ5/Fzp07UV9fjx49euCaa67BjBkzoNO5bllwhp8ghH6yg4UYXQIBegLNy58tvQEcn3A5xiY4ZppzDQISybv3MhudCvN7v9klz2ZK6zlXCCFTRzCZPMmZ/dr+HgCPtpN2wtmqMwE9E9z3BFDRyrYIl98T8jRykWtbB35FCClz0+HwJdQXrvNqmHkX8ejS1SRC8fuvKP/oPVgbGxCSnIKU66cgYmBTBEb+fG3lF1hT8bEURXF08kQcE2t/0tqlofPbyVPBlBn2S2kvmP6CRJEuvo5FjRAkS66m/Q5aE0kafemqaR9fSkPDSKIHL4FmHozaqRSo3NcFcx9D445/kDLlFsSceHhwqz11a7G89E3UWyoRpo7G6OTr0T9q1GEYSalG8v9E6ea3YTXWQhMWj+RjJyMqoyPZgbyHhNKK0nuSd6inoCaEixYtQl5eHoYOHYq4uDhkZ2fj4YcfxuTJk/HSS7wj9rwIQug5dqKlQMBdBL4t/wTfV36G3mH9Ma3bwx6TuefyH8Eu/XY8mPWM5Hba1YrSes4VQsjE9Az4QjdPJqbvDeBZAAwy45iYfrccGXSyvGh0E2W0UFoYGUH0NDlgzBQAjCzKwuT13wJ4FwDb84r6LgBDAJzokKuwvX3gd4SwiXi0dB+7GdHdOS1RfIWAsbgIpUtekw7FUKkQd9Y4JFx0KdShTW6gJBa/lryG7bV/SG5y56TdgZ6R3G6iBBoCdDW1B6uxWxP11rpm0yDpYZRMKappKIliH68nVTfU5KFwFSOJliEscQDST7in09zEG3ftxIE5D0mXID2efBaqkKagMPXmKvxeugS76/+S/j4g+iScknQtwtuJ8Gox1KB0y1LU5a2U2kV1G4GkY65HSFhcp24XpRVlp0720OBBTQidYXz//ffj5ZdfRmVlZYcudgQh9JMdLMQIegSYQ3B+/kPQqrS4L2sukrWep1j6vOw9/FL1Da5JuQkjY04NeuxaTlBpPecKIaSMfETCK7qRcpL5N+SUExaHCewDwIgd9reBkQC+kBPO0+pHQjkHwJcObXhKf19+V5gip6RYLffNaKSuFr8khHbhpQATfy+Rcn4lHHUZ4vtf2CHl5iooXamezWJB1U/foeKLT2AzmaDLzJISzIf17nsQBhKI74qexYHGfxCpScD4jJmSRUmU4ECAVq1qU/FBCyKtiaWGfbDC8TMFKUCNFNU0lESxnxTAxtNomg0lm1H013OwmhsR1f0kpPpBIKmCZ59Cw+ZNSL7+BsSMPh3ba3/HirJ3YLDWIzokSXIPdfcSpL5oI0o3vQFzY7mUczVp0DWIzhrdad8xpRWln/yG+JwQ8hKzbtsqVG9YBlN1KbSxyYg97ixEDaQVWXl3erqQPvDAA5ILaUcs/YIQ+skOFmIENQIGqx5P5s1CiakIVyZPwUmxp3dovkxk/0bR8zg55kxckWK3NXWoy4BqrLSec5UQ+juIfk0ICR4PVEVrX5BD0I9GypApPglB7+8L5Qv5DPv3SQnmDftzgJAQJIy/CPHjxh+0jnBMEoWvC+ZKES2TdD0xPmMGokISfCGO6NOPEDDbTCgz7Dv0HtGwW9oLjkWj0iJZ11POjdjkbhoTktzuAbQ6538o/Xux36Wa0e/bi/yH74OhZyz+vSETeXoGbVbh2NizMTLxMujUvJ9zv1hNjSj/50PwgouXW+Epg5AyeAq0kbzLU7YorSiVnV2ro/mUEJIMFn25APU7s6U93VRUkqdF5IDhSLvwdkVIocVigcFgwIYNG3D11Vfj4osvxvz5zGLleRGE0HPsREuBgKsIfFj6Jv6oXoajI47DzenT29Wh7fVbbirFg/v/i6zQ3pjV/Yn2qgfdz5XWc4IQKriFDFX7ULD6aVj0TFI9EGkn3OX1JNUKTqfTh7Iajaj8+jNUfv8NYLUirN8ApEycCl1Gt2ayFTb+i2+LnkGjpUYKoDE27Q7oRCTRTl+/zhKA+6BYv6cpP6L8HpHWM8dCV8pUOaKp3ZoYqqHTg+wKvu1DVO36GlBpkHLcjYjJOvy9XmfNj4/xV3w7E1v75MGiA+K13XBGylSkhw/wikiN5TtRsvE1mGoPQKUJReJRExDb5xxFyIJ9AkorSq8A1/FOfEoIa7euRPG3Cx3IoIPAKjVSz7sF0Uf7PmJuWFiYRAhZrr32WixZsgRqF9OotAaxIIQd33yiB4FAWwhsq9+ElwufQqQ6Gg9kzUNsSMefFdDrZ+a+G9Foqcezfd6S3FC7UlFazwlCqPDuMjdWSKTQWL0P2qgMZIyaCW1kqsJSBP5wjTu3o2TJazAVFUIVFobES65A7JgzD4us+G/tavxcslCKUHls7FicnHStxw+cAx81MQNnCFDpVJkKm71HZACblq6m8doMpIb2RkRRPsIL9yHWEoGME+5GRPJAvwG2zJCL/5UsktJ4qCxA33WhOOPil6AN826KDpvFhIqdX6Dy368AmwWh8X2kvKuhsa5mCuoYZEoryo5J67XWbhHCfS/fBquhweXBrUa9czJ4kIWroda5lpJHHRqBnrd6FgiGlsGGhgYpqMyjjz6KK6+8EgsXLnR5Hs4qCkLYIfhEY4FAmwjUWWoxJ3cGqi2VmJI2DUOihnsNsYUFc7G1YSNmZD6OnmGHngB5bQA/7khpPScIYSdsBkYgLcp+QQrrrtHFIH3kdIQlMDOHKO0hYGloQPnH76Nm+S9S1YhjhiD5usnQJjaFzLcXHvLXV32NVeUfSJFESQQHx53TXvfi5wIBCQEmbOf7Q7sFkdZEpsJwLBqEIEUOWGO3JvKNXkfeOnkKP11j11Z8jvWVX0tElu8jj10ejZD/bZIuS+LPu8DTrttsx7yrJRsXwVC5R7KWxve/AAkD/gOVxrc3uUorSp+A536nviWELpBHEj1XSkcIoWP/S5cuxXXXXYfdu3ejT58+rgzttI4ghB5DJxoKBNpEgGetxcUvgO/9RkSfgmtTb/EqYt9VfAr+mZB0PU6NG+vVvv29M6X1nCCEnbQj+F6jbPNSVO/9ESq1FqnDbpUi+InSOgL1G9ehZOmbsFRWQB0djeQrr0PUiBMPO4AzkuhvpYvxT81vCFGFYmza7egdOVRAKxDwGAFjzQHkZD+BMpSjLiEBDcmpKDbth9Ha3AIToYk9mPKCrqYkjKFq1w7RngpX2LgTv5S8hkrTAWm/850greHm4mLk3nc31OHh6DHvRWgifCMHv2XVe35A+T8fw2YxQBvdDSlDpiI80Tsuqs5wUVpRero2Xm7nFiF0d+z8pbOhP7BLeh96eFEhLLM/Mq95xN1uO1R/69atGDRoEH7++WecccYZHvclCKHH0ImGAoE2EVhbuxJLil9CQkgS7u/+NMI13tUz2+o34uXCuTgh+hRc52Wy6e9Lq7SeE4Swk3dE1Z4fJGJIJZw48ArE9RvfKRaGToahzeHN1VUoe+8t1GU3BZ6NGnkSkq+4FpoYZjZpXph0+/ui55DXuBWRmnicnz4DKWG9/Hl6QjY/R6ChdCuK/noWVlMDorqNRMrQm6HW6KS0MpWmQiknov09Il1NbbAH5ODEVEjQdUNaaN8mohjWF4m67lCrNB2etdHaiFXlH2JzdVOQl+7hgzAmZQpitYeCvDDYUs0fvyH+gouR+J9LOzxmWx2Y6ktQsvF1NJZukeYd2/ssJB51OdRaz4LYtDWW0orSp8C53rlPCaG/vCF0hIO5CW+66SZhIXR9j4iaAgHFEKgwlWFO3kzorQ24I+MB9I/w/vOJOksNZuRMRao2Aw/1YMa7rlOU1nOCEPrB3qovXI+itQuk2/WYHmOQPHiSiEAqJ5CvXbUCZe8vhbW+DiEJiUi+7gZEHus8b2CNqQRfFz6NCmM+EnVZGJ8+A9Ha5q6kfrDcQoQAQqBm/3KJ5PCdHNPFJBw1oc3gKSarocnVVL8bxYZd0n9rzWXNZkwrXkpor6bUF1J+xL6ICkl0ehFE0rmzbhW2VC9DjakUMdpkDIo9C6GqCPxWthh15nKEqiOlnIJHRJ9yWB+mslLsn3knVFodes57AZrowy9RvLkcdB+qzf0dZVvegdVUj5DwJCQPnoyI1GNRl79KilBqaiiFNiJZIoxRmZ6lM1BaUXoTow705VNC2DzKKK2E/KNclNGxY8dKVsCBAwdCo9Hgzz//lKKLnnfeefjwww87ABsgLIQdgk80FggchgCDl71Y8AR2Nm7F6XHn4uKka3yG0oP7bkeFuRTP9FrsdQukz4T2QsdK6zlBCL2waN7oQl+5F4Vr5sGir0R48qCmCKRa75revSGnUn2YSktQ8vYbaNy6WQp7zoAxfAtF9zdnhQfvbwrnodFSjR4Rx0qRRH3tqqcUFmIc5RHg4bhi+yeo3PlFUyTRwTcgpudpHgnCpPDFhiYrYpM1cQ9MtsZmfdGabbcg8j1ialhvaFWh+KFoAfbUZ7ewOh5q2jdqBE5Nuh4RbUR0K31nCar/9xPixp2PpAlXeTQHdxuZ9VUo2/wW6g40WfVDwhNh1lcens4gYzjSjnc/nYHSitLd+fuovk8JIWU+mIdwI/MQlkEbm4TYIcrkIXzwwQfxxRdfYN++fQgJCUHv3r0xceJEyUKo1XbsTaoghD7akaLbLovAb1U/4JOyt5Guy8SszCegVet8hgVzEfKNIq2QAyKO9tk4/tax0npOEEI/2gGmhjIUMgJpTS500ZlIHzmjU3J8dSYkNqsV1b/8iPLPPoLNYIA2PQMpk25EeL/W3yPtrsvGsuKXYLYZMSjmDIxOnugVl7zOxEGM3XkIWC1GlGx4VbJoqbURSBt+FyJSBnlNIN6sVhoPNAtYU27Mha3Z2y0VojTxqLNUtDru4NhxOCX52nblMldVYv/026WLlR5Pv4CQuPh223irQl3BOhRvWAibqZVol0xnMPQWRHd3L52B0orSW3h0sB+fE8IOyue3zQUh9NulEYIFIAKFxgN4Km8WqMtmdJ+D7qE9fTqLXyq/xefl7+LCxCtwVrxvAqT5dAIedq60nhOE0MOF8lUzvlNiAvuG4r+hCY2VSGFYvOfR1Xwlpy/6NRzIQ8niRTDs3Q1oNIg/9wLEn3ch1DrnN090T9tY9S1Wlr8viXNS4tUYEjdOvMH0xeJ0kT4thhoUrnkG+op/ERKRjIyRM6GLyfT57E1WPUoMOU1vEfW7JItinbl1MkhXvvSwfrg081GXZCv78F1U/fgtYs8Yi+Srr3epjbcq5S2/vykKqdOikiIsZ452bR72LpRWlN7CooP9CELoIYCCEHoInGgmEGiBAIP2zcufjVzDXoxPuBxjEy70OUa7G7fj2QOPYHDkcExNn+bz8fxlAKX1nCCE/rLyDnLYrBaUbl6CmpxfoNLokDrsNkRleC+vi79N2WYyoeLbL1H57ZeAxYLQXn0kq2Bo99ZzmlltFiwvXYKtNb8gRKXD2am3oY8Xc9/4G0ZCHt8jYKwtQOHquTDVF0t59dJHTEdIWMeT63oq+Rs5N6LBUt1q80hNAib3ci0/m6W2Bvum3w6b2Ywec58/LE2LpzK60i7nh5slV/jWiiYsAb3OcW0eghAeHgFUkJ32d6HAqH2MRA2BgCsIfFP+MX6o/By9w/pjWreHFcnrbLDqMW3vRMSFJGBOz5ddETMo6ghC6NkyOr059awr/2glJcve/T3Kt74rCZR49FWI63tu0Fm/Gnf/i9I3X4OxIB8qnQ6JF1+G2DPPOSzBvOOqGKwN+KHoBeQ2/A2G+Wck0dSwrmFF9Y/dGXxSNJb9g8I186VAKJEZw5E69FaoQ0I7daKf5M9Gob71NADpYf1xaabraQDKP/8YlV9/jphTxiBl0lTF5pb/+2zoK9pIZ5DQH5mjXZ8HBVdaUSoGVtsDCQuhhwshCKGHwIlmAgEHBHL0uzA//yFoVVrclzUXydo0xfB5PHcGCoy5eLLnK4gNUe7Zg2ITdDKQ0npOWAg7c7VdGLuuIBvF616CzWJETK8zkHzMRKjUHQ9Z78LQPq1i1etR/tmHqP7lJ0YyJZ7IkAAAIABJREFUQPjAQUi57gZoU1LbHLfWVCZFEuWbqwRdJsanz5QiL4oiEPAUgZrcP1CyYZEUSTSu3/lS+heVSu1pd15rt6N2JX4uXug0oIwKapyZeguOiHb97Z2lvh77Z9wOa2Mjsp58FrpUZZR5bd5KFK9f6BBQxgEi8YbQnf0iCKE7aDnUFYTQQ+BEM4GAjACtdE/mzUKJqQhXJk/BSbGnK4rNO8WvYnXtctyUfg+OiRym6NidNZgghJ4hH3QWQkcY9JV7pGAzFkO1FL497fg7pGAXgVrqt/yN0rdeh7m8DOqISCRdcQ2iTxrdrvWzRL9XIoMNliop59q4tLsQ6uUkqIGKqZDbfQRoha/Y8Skqd3wGqNRIPnYSYnt5nvzafQnabsGIj4eijB5KA6CCCn0ih+OcNPejc9I1u+LTD6Vcnmk33uZtkZ32J6UzWLsA9QXZ0uVPs3QGIsqoO2sgCKE7aAlC6CFaoplA4HAEPix9E39UL8PREcfh5vTp7Z7XvI3hiupf8EHpGzgn/j84P/Eyb3fvl/0JQujZsgQ1ISQkzN1VuGoujLX50MVkNUUgjQisHHuWuloppyBzC7JEDjsByVdPREhc+++09tavw49FL8JsM2BgzBicmjwJGlWIZ7tFtOryCNgsJpRsXARar1Qh4Ugffqd02eJvpXkewjLEaJOkPIQDojzL30fL/P4Zd4BvCrs//jRCu3VXZMpSOoODeQjLpG+XyEPoNvSCELoNWVMDYSH0EDjRTCAAYFv9Jrxc+BSi1NG4P2seYttIc+QrwHL1OXgq/14cGX4M/tvtPl8N41f9CkLo2XIEPSEkLBZGIM1+Do0lW6AJi5eCXoTF9/YMMQVb0RJT99dqlL33lnQQ1cTFI/maSYgaeny7UrDt39U/4I+ydyTLwomJV+K4uPMVv51qV1BRIWAQsBhqUfjXfOjLd0j58dJHzUJojDLEyB9Aqvrpe5R9sBSRw4Yj/bbAjNimtKL0h3WT0gRKFtbmRZCd9ldHYNQ+RqKGQMAZAnWWWszJnYFqSyWmpk3D4E4K3sfopnftnQidSod5vd7oEmdApfWceEMYYN8Am9WM0k1vomb/r1BpQqWkzpHpQ/12FuaKcpS8vRgNf2+QZIwZPQaJE66CJjKyXZkZSfSPsqXYXP0TNCotzkq9Ff2iRrTbTlQQCLSGgLGuCIWrnoKpvgihcb2RPpKRRLvGA3U7JlajEftn3glLZQUyH34SYT17BdyGUVpR+glAghB6uBCCEHoInGjWpRHgBdTi4hekpPAjok/Btam3dCoe8/IeRI5hFx7Oeh4pOmXewHfmhJXWc4IQduZqezi2FIF01zco38b8eyokHXMt4vqc42FvvmnGBPM1y39B2ccfwKZvhDY1DcnXT0HEkQNdGtBobcSPRQuwr2EjwjUxOC99upR3TRSBgKcINJbtkCyDVmMtItOHSelc1CFhnnYX0O2qf/0ZpUsXI+KYIciYNjPg5qK0ovQTgAQh9HAhBCH0EDjRrEsjsLZ2JZYUv4SEkCTc3/1phHdyzIaPS9/C8uofMTH1vzg++sSgXxul9ZwghAG8peoOrEHxupdhs5oQ2/tsJA261i8ikBoLC1Cy5DXo/90BqNWIG3suEi68tNUE8y2XoNZcjm8KnkaZcT/itRkYnzELsdqUAF4pIXpnI1Cb9yeKN7wCWM1S+hamcfGHSKKdhQvzEe6/dxrMpSXodv8jCO83oLNE8WhcpRWlR0J6v5EghB5iKgihh8CJZl0WgQpTGebkzYDe2og7uj2I/uFHdToWf9WuwNvFL2NM7Dm4JPm6TpfH1wIorecEIfT1ivq4f+b3Klw9DxZjDSJShyBt+B2dZvXgIbPyh29Q+dXnsJlN0GX1lBLMu+OSVmLIkchgvaUSmeEDpUiiYZooH6Moug9WBGhNr/z3S1T885FkTU8+dqIUzEQUoGbl7yh54xWEHzkQ3WY+GFCQKK0o/QScoCeEu3fvxrx587B69Wps27YNJ598MpYvX94Mfv5OP/nkk3jllVdQVlaG448/HgsWLMDgwYNbXSZBCP1kBwsxAgIBq82KFwuewM7GrTg97lxcnHSNX8hdbCzAI7nT0CdsAO52IwevXwjvgRBK6zlBCD1YJH9rYqovRsGquTDVFUAX2xMZI2cgJDxBUTH1OXtQwgTzefuhCtEi4cJLJMugKsT1SKA59RvwY9ELMNkMODJ6NMakTBGRRBVdxeAajO9tSza+jtrc36EKCZPStUSmDQmuSXZgNnTrzr3/HpgKC5Ax4wFEHHV0B3pTtqnSilLZ2bU6WtATwq+++gq33XYbRowYga1btyI1NfUwQkgy+Oijj0rE8YgjjsCzzz6L7OxsqX5amvN3RYIQ+skOFmIEBAK/Vf2AT8reRoauO2ZmzoFWrfMLuUlUp+fcALPNjGd7L4FGFfg5udsCVmk9JwihX2zzjgthMdah6K/n0Fi2DZqwBIkUhsb17HjH7fRgNRhQ8cUnqPrpOynHWNiAI5EycQp0aRlujf131U/4o+wt2GDDyITLMCz+wi4RRcotkERllxE47Pdh1EyExvZwuX1XqVibvRrFC19AaJ9+yHzg0YD5nVNaUfrJfgh6Qmi1WqFWqyW4L7nkEskC6Ggh1Ov1Ekm8++67MXv2bKlefX09evbsiRtvvBGPP/6406UShNBPdrAQw+8RKDQewFN5s0DyNaP7HHQP9f050h1QFhyYgx2NW3Bf97nIDA1una60nhOE0J2d6Od1m1lEGIF0+J0+tYg0/LNVSjBvKimGOjxcih7KKKIqWaG7Ahc/OivL3sGm6h+kSKJnptyM/tGjXGkq6ggEnCLgaDEPje0p5exU2mIeKEtDK2HeQ/dKlv30O2cgcvBxASG60orST0DxOSFsni+yFNqI5A7li+wIbs4I4a+//orTTz8d27dvl6yD9jJp0iT8/fffWL9+vSCEHQFdtO3SCDC1w7z82cg17MUFiVfg7PgL/A6Pr8o/xE+VX+LK5Ck4KfZ0v5PPmwIprecEIfTm6vlBX0q8mbLU16P8o3dR88dv0owjhwxF8rWTERLvnpuqyarHj8UvIqd+PcLU0Tgv/R5khAdWcAs/WHIhggMC/vSmNlAWpn7jehS+MA+hPXoi86En3LrQ6aw5Kq0oO2ueLcb1KSEkGSxauwD1BdmAzSoPrQJUKkRmDJdSHCkZiMkZIVy4cCFuv/12GAwGaDSH3MXoPvrwww9L1kJnRVgI/WQHCzH8GoFvyj/GD5WfS2/07ur2ENSqJmu9P5VNdWvxWtF8nBgzBlelTPUn0bwui9J6ThBCry+hf3RYm78KJetfaYpA2mcckgZd7RVlXrcuG6XvvAlLdRU0MbFIuvp6RB0/wm1XszpzBb4pnIdSQw7itOkYnz4TcV0gr4x/7I7glKJ51N2xUjoWJQ+wgYoqL5HyH3sAhr17kHbrndLvs78XpRWln+DhU0JYm7cSxesXOpBBh1mr1Egdeguiu5+kGBTOCOGcOXOkt4NVVVXN5HjjjTcwZcoUiSjqdIe/dxKEULFlEwMFKAI5+l2Yn/8QtCot7suai2Stf+b5qzJX4L59tyBT10OSM5iL0npOEMIg3k2N5TtRuOYZr+RdM1dVovSdJahfny0hFn3iKUi64hpooqLdRrDMsB9fFz6NOnM5MsKOxHnpd4tIom6jKBrYEWjKy/k1yrd94Ld5Of19tRq2bkbBM09Am9ENWY/P83srodKK0k/Wzy1CuO/H22A1N7gsutWsd04G7T2o1C5HsFaHRKDn2JdcHttZRUEIOwSfaCwQcBkBg1WPJ/JmodRUhKuSp+LE2DEut+2Mivfm3IxaS7UUWEanDu0MERQZU2k9JwihIsvaeYMY64pQuOopmOqLEBrXG+kjpyMkLN5lgXjYrv3jN5R99B6sDfUISUpGyvU3IOLoY13uw7HivvpN+EGKJNqII6JPxpiUqQhRaT3qSzQSCPDdbOmmN1Gz/1eo+G72+NsRmT5UAOMmAvw9P/DUo9Dv3I6UKbcg5sRT3OxB2epKK0plZ9fqaL4lhKb2yaNaG+ESFL4ihMJl1CX4RSWBgFsIfFCyGCtqfsagiKG4Kf0etz2+3BrMC5UXFc7H3/VrcXe3R9AniJ8ZKa3nBCH0wub09y4shloU/vUs9OXbERKeiPSRjLiY1a7YppIilCx5HY3bt0nvSGLPHIvEiy6DOiys3bbOKmyp/gXLS9+EDVackHAJhsdf7PcfHo8mKhopgoDF1NAUWbd0CzRh8VLwmLC4XoqMHYyDNP67AweeeBghySno8eSzbqWMURoPpRWl0vNrZTy3CKG7Muf/Pht8gwvYnDRVISyhPzJHP+Jutx7XbyuozI4dOzBgwKH35pMnT8amTZtEUBmP0RYNuyoC2+o34eXCpxCljsYDWfMQExLn91D8WPEFvq74SMqPyDyJwVqU1nOCEAbrTmoxL5vFhJKNi8B3IqqQ8KYIpKnOrXw2iwVVy76X0knYjEboumU2JZjv088jtBis4M/y97Gh6luoocEZqTdJ1kFRBAKeImCqL0Hh6qdhrM2HLiZLIoPaiCRPuxPtZAQK5j+Jhi1/I/n6KYg91X8juCmtKP1kg/iUEAbCG0J72onp06fjgQcekJaloaFBSjsxdepUkXbCTzaqECMwEKiz1GJO7gxUWyoxNW0aBkcNDwjBdzRswYKCORgWNQqT0m4PCJk9EVJpPScIoSerFKBtpAikOz5DxY5PAZUaycdOQmyvM5rNxpC7HyVLFsGQsxfQaJAw/iLEn3uBx9YCk9WAZcUvY099NsLUUTg3/W50Cz8yQBEUYvsDAvrKPRIZtBiqEZF6LNKOvxNqbbg/iBbwMuhz9iD/kfsRkpCArKeeh9pJgA5/mKTSitIf5kzTHb/hLYu3AqY0jzLKcfhH2SijJHfff/+9NMX58+ejpqYGjzzSZJUcN24cIiIiwMT0jz32WLPE9H/99Re2bdsm5Sh0VryFkZ/sAyGGQKDDCPBbsrj4BWyoW4MR0aNxberNHe5TqQ4aLPW4J2cykrWpeKTHC0oNq/g4Sus5QQgVX+LOH7A2dwWKN7wK2CyI63c+EgdeAZvJjMqvP0flD98AFouUqDpl0lSEduvuscD15ip8WzgPxYY9iNWmYXz6DMTr3EtY7/HgomFQIlBXkI3idS/BZjEiptcZSD5mIlTqQ+Hng3LSCk+qcMF81G9Yi6SrrkPcmecoPLprwymtKF2Tyue1fEoIKX3zPIRlktU9tvdZiMocpUjE3n379qFXL+du3zk5OZIlkAfZJ554Aq+88grKy8sxbNgwLFiwAEOGDGl1AQQh9PneFAMEGALZtSvxVvFLSAhJwv1ZTyNc7dr7YH+Z5sP770KJqRDzer2BSE2Uv4jlVTmU1nOCEHp1+QKns8ay7ShcMx9WUx3Coo+E+ddKmAuKoAoNReIllyP29LM7FGmw3JCHrwvnotZchvSwAVIk0XBNTOAAJCT1KwSkSKK7v0P51vckuRKPvhpxfceJN6g+WCVDXi7yZs+EJjoGPea9AHWoZ2+GfSDawS6VVpQOc+kLYDqAkQAGAlgB4FQX5hoL4HkAFwJgcq9vAdDXqdyFtvYqPieEbsgSUFUFIQyo5RLC+hiBClMZ5uTNgN7aiDu6PYj+4Uf5eETvd7+k6CWsrVuJ29LvxVGRngU59L5U3u1RaT0nCKF31y+getOX7cWB3x+DTd0IVALh1Uch5ZqboU1K7tA8chu24PuiZ2G0NqJ/1CickXITQtSH54bq0CCicZdBwGa1oHTzEtTk/AKVRofUYbchKiMw3joE6iIVvboAdWtWIfHSKySXcX8rSitKh/kTDOZTWAPgaADFLhLCnwD0B3APAGZ9ZwIttnXnMbUghB5uREEIPQRONAs6BKw2K14seAI7G7dKAVkYmCUQy29VP+CTsrdxfsIEnJNwUSBOoV2ZldZzghC2uyTBWaF+03qULl0Mc10FMFIDxFkQEp6EjFGzoIvJ9HjSW6t/xfLSxbDCguHxF+GEhEuFFcdjNEVDKyOJrn0BDcV/QxMa2xRJNL6PAMbHCBiLCpB73z1Qh4ejx7wXoYnwL3cipRWlA9y07pHQsXwKgJGM2rMQ0pq4CsBoAH/IbXmj8ReAMwH84uJyCkLoIlAtqwlC6CFwolnQIfBr1ff4tGwpMnTdMTNzDrQBelm/t/FfPHNgtpQq4+YMOm0EX1FazwlCGHx7qM0ZmWuqUfbe26j7i+cTIGrEKCRcdiUqdr+PuvxVYJ6ptOF3ISJlkFvI8O3JqvKPsL7qKymS6JiUKTgqpr1zkltDiMpdDAFTQ1lTJNGaXOiiM5E+aia0ER2zXncxCDs03eLFr6J2xXLEX3AxEv9zaYf68nZjpRVlK/K7SggfBTAVQFqLfvYC+ALA3S7iIwihi0AJQughUKJZUCNQaDyAp/JmgVbCmd2fQGZoj4Cdr9FqxLS9ExGlicKTPV8NSsOD0npOEMKA/XVwT3ApwfyqFSj74B1Y62qlKILJ105G5OCmJN4kdBXbP0Hlzi8AlQYpg29ATM/TXBrEbDViWclC7K5bg1B1JMal3YXuEfSmEkUg4BkC+sq9KFwzDxZ9JcJTBkmXFBoXk2J7NqJo1RIBU2kJ9s+6CyqtDj2fWQBNVLTfgKS0ouwgIfwYQIoTS+J3cr+uJtIShNDDHSgshB4CJ5oFDQIWmxnz8mcj17AXFyRegbPj/e8pgLtgP5l3L/IMOXi8x0tI0AZf2iml9ZyrhJAvTl+UH9JXAXgDAGNBW9pZQD66fw7ASUwXBOAT+UF+XYt23JmPA2CiO96asu+P3NgcThWlG+2DuqqprBSlb78h5RdjiRlzJpIuvQLq8MPdwGr2L0fJxtelCKTx/S9AwlGXtRldrsFcjW8Ln0GRYRdiQlIwPmMmEnTdghpPMTnfIlBfuA5Fa1+EzWJATI8xSB48CSp1iG8HFb07RaD0nTdR/b9liBs3HkkTrvQblJRWlB0khD8DqJcDyjh29S6A3gBGuQisIIQuAtWymiCEHgInmgUNAt+Uf4wfKj9Hn7ABuKvbQ1Cr6P0e2OX9kjewsuYXTEm7C0OiTgjsyTiRXmk95wohjAewDcA/8kN4PuCZLxO9psywzgujqv0r/3magQEB8L/0VWSkNXshWVwOYKHsPjNOdqEZC2CZiyssCKEToGxWq3SYK//0A9gMBmjT0pEycSrCB7SdB7ChdCuK/noOVlM9orqNQMrQW6DWHB4UpsJ4AF8XzEWNuQRpof1wXvo9iAjhsosiEPAMgao9P6Bs81IpB1riwCultCjyR9GzDkWrDiFgrqzA/hl3ACoVejy9ACFxcR3qz1uNlVaUrcjtqsuop4TwYQAPOY7tyzyE3lobf+xHEEJ/XBUhk1II5Oh34Zn82dCpQnF/1lwkaZ3n61RKHm+Ns6rmN7xbsghnxY3HhUn+c2HprfkpredcIYT3ApgBgM7GNfJE+XcqK76JsP9bSwzYjn+yANCqyHI+gK8BHA9gnfxvjL6mBTDGoQNmpmWOApJFV4oghC1QMh7IlxLM63fvkhLMx59zPuLHX+RyomljzQEUrJ4Lc0MJwhL6IX3EdGhCD6WNyGvYJkUSNVjr0TdqBM5KuUVEEnVlp4o6ThFgJNGyLUtRvfcnqNRapA67VbqMEKXzESj78B1U/fgdYs8ci+SrrvdIICm/3bZVqN6wDKbqUmhjkxF73FmIGuhZfjulFWUHCSFdRvn4taUPvnAZ9Wg3ud9IEEL3MRMtggMBg1WPJ/JmodRUhKuSp+LEWMejdmDP8YAhV0qf0T98IO7s9mBgT8aJ9ErrOVcIIaOiFQC43EFekrz9AMYD+KaVVaDLJ5Wg4+5jQiu6jtIllH9CAdTK+ZhedejnWgBLACQAqHZhlQUhlEGymc2o/PZLVHzzRVOC+Z69kTLpRoRmuf942GyoRuHqZ2Co3IWQyBRkjJwJXXQ3/FOzHL+WvC5FEh0WfwFGJrTtVurC+okqXRgBq1mPomxGEt0IjS4G6SOnS5cQovgHApaaGuybcTv4bekx93loE917q0EyWPTlAtTvzAZs9gCdKsnqGDlgONIuvN3tpOdKK8oOEkIGlZkCIL1FP3sAfCmCyvh+nwtC6HuMxQj+icAHJYuxouZnKRrnTen3BJXHDYPj3L13IlRQ45nei4PCDdZxFymt51whhCWyOyctgo6FbyL4b/Na+TX4SiZ8dP20Fz4E0svhukkw+TaR7qi8OaXbqL3QgpgNgKG517rwayYIIYHdswslby4CrYMqnQ4J/7kUcWeNg0qjcQFC51WsFiNK1i9E3YE1UGkjcODY47DJsFKKJHpaymQMjAme2yaPQRINPUbA3FiBAkYSrd4HbVSGlPZEG8n4G6L4EwLln32Eym++QMzoMZLbuTuldutKFH+70IEMOrRWqZF63i2IPtpVZ5Cmtkorylbm66rLqD3tBHMOrpT7GibrNpF2wp3N5GFdQQg9BE40C2gEttVvxMuFcxGljsYDWfMQE/J/9s4DPKpi/cPvbrLpvXcIHRsiioK9gL13vahcVFDRC0pRQGwUqSoqeBUVsf/VawUVK4pSLKiAirRAQnqvm2z7P3OyaICEnN3snj2bzNyHx5tkyjfvnOTb35mZ79PHkX9PQl2Y9yDbzX9yf9YCUjtZ/Aqt/ZwaQWhxBoJ5/IBFzAPEZZ8pbSyuuGcoDvWK3UTRhyji1qdI6CvuVAwHTnQ6yIHALy366QVsA85WeY+wSwtCe6MZ8YGt6rNPRLhQQvsfTtLIWzAlHRjl3L1fQ/GGv/j31/im4SMKYsT53iDOT5tIVphrqSncG1226qwEGitzFDFoM5cTmnh4cyTRoIjOOl2/npetro7dE+/Cbm4ga/ZCgpLV/23JWz4d815xnby1YiAkozcZI8QmmvqitaNsYZmIxCXuuYsi0kWIc/T77vmJqw7iBMx2YDUwqkU7cTVCbHu3TEwvXrbKxPQtIG3fvp158+axdu1atmzZwsknn8zXX7d8VwyLFy9mxYoVrFu3jvLycr766itOO+3QKY6kIFT/uyVrdg4CtbYaZuyZSLWtkltT7uHoCLHP0vnKO6Uv80XlCm5Iup0Tok7pVBPU2s95UxD2AzY7I5KKnUQRVEYIyAHORLxi59BdQajqsn2nejLamEz95l8pXrYUa2mJEjU04Zp/EXnK6R49FtBgq2ZFwQLyzVsJbYJjcyAr+3Li+l3h0XG6wnrJOTYTqCvcSOGGx5VIopFZp5I08BYZSVTnD4c4hl7+zptEDjmJ5NFjVVu784lbsde3ddUcAiLjyB4rYoqpL1o7yhaWdQd2tWFpNpDj/CdUTMsLl+LVvIi4fSkgwvt95LwqUap+1nT6KKPvv/8+Y8eO5YQTTmDz5s0kJycfJAjFz8T6Z2dn8/rrr0tB6MIDJKt2DQIi+NTzRU/wc+06Tog8lRuSb+u0E/+x5nteKFrEqdHDuTrx351qnlr7OTWCULzFfNp5568l7PaOjIq6YnWEExRvUcXlkWedAWWEUBTOct+RUfF6T7xR3VfkkdF2HmtbbS2lry+n5jtxxRPCBw0mccRIAmNEUFjPlYqmfD4omEuVpZDk4J6caTqf6h+ew25tICLjRJKPGYMhQMQEkkUSUEegaucqSn4VV4QdSlqT2D6XyBcL6tD5tJbdbFZ2CW21NWTNmEdQesYh7XFYLZSvfY+KNe8cop7YIexDxghxpVx90dpRqrfMqzU7vSC02+0Yjc3h8K+44gpKS0sPEoT76gjBeOSRR0pB6NVHTnbujwQ21KxhWdFTxAUmMDVrLqHGg1OM+eO8WrO51FLM9N130T24J5MyZ3aWaSnz0NrPqRGEQnHsBa5tQToT2NNOUJl91UUgGXFURghL8Ta0DLgXEEFk9gWVuRP4b4v+RwDLZFCZg59t8ean9od1lL6yDFt1FQHRMSSO+DcRx4rrlp4texv+UHYGzfZaeoYfx/DksZiMwTRW51KgRCAtJSS+L6nH37NfBFLPWiF76ywExNHj0k2vULVjpRJJNGnQbURmqE3B1lko+Pc8Kj9dQenrLxN+7PGkjh3f5mTMe7dRvPK/NJXmgTEA7OJ9oOPg+v59h1DrxfS6IFSiwVZ/T1XFKiyWEkymRKJjhxMR5V402I4AaksQ7utTCsKO0JVtOyuBckupEnnTbG/gP+n30ydU7Lt03iI+E0/adSuN9gYW9lxGoKHz5CzWoyAUqSMmOtNOiIigooh7EOLSx6HSTrT2BN7oTHAvjt2UOyuIuxUi6slZLRqI4zTiiI3aSANd4g6hyAlWsvx56jb+pKCKOuV04q++noBwz9+7+rPmWz4vekaJJHpMzAWcGH/dfpEAreZKCtbNo7FiB6bwFFKHTiYo4sAgep33j5CcmWsERCTRoh+fQiSdNwZFknrCBELj+7rWiaztcwL2piYlL6GtsoLMh2YT3E2ckvyn2JvMlK1+g6ofxZ91B6HdjyDx7H9Ttvr/nFFGhSgU/zpFlFGt18OrglCJBrt3EXU1Ip5bi2iwGAiPHExKuuvRYDsCSArCjtCTbbsiARF188n8mWxt2MJZMRdwWcK/ugSGp/MfZUv9L0zOmEm3EJEqvXMUPQpCcQZRJKUXxzznAD2AhYAIMtMyMf2BF+nFMdGpgNhhtDojiYpL+CL8ttj921f2JaZ/yhmCW1zYF4JTJqZ3EhIJ5qtXf0nZ/72KvaGBwMQkJdJf2GFHePypF29bNlS8w/ryt5VQvqcljuTIaBEI7+BitzY6P+T/gNEUQeoJ9xCacOik9x43WHaoewJWcwUFa+fRWLkTU0QqqSJ9SYT6oCS6n2AXM7Dqy1WULH+BsAEDSRs/+e/Z1+38lZJPnsNaVYoxJJyEM0cQeeSpyrGXv/MQbhR5CEsxRScQPdDv8xBqvfJeFYQ1VWsoyhd3OfdWJ2OhAAAgAElEQVSJwZbTM5KcdjuR0Wrf0XYcjRSEHWcoe+haBL6sXMnbpctJC8pUxJHJGNQlAHxU9hYrK95R7hCKu4SdpehREAq2Ys9ZCDYRPlskmV/qTDlhawFeXKZveZE+HHgXEOG1Q52CUhzwFXmXDiyXADOcR0vFhX0RNOYNFxa10+4QNhXmU/zic5i3/qHk7Yo5+3wlnYQxWJy29WyxOix8UfxfttaswWQI5byUcXQLFzGA2i7ig17Z5lep3L4CjIHKncLITO0+NHiWgOzN0wQaq/Y0Hy9uKCMkvr/y0kBGEvU0ZW37E/kId987XglklT7tYYLSUin9Yjk1m79VDAnvdzyJw0YSGOG9EOdaO0ptCbc5mkuCMGfbWOx2EfRUXbHbRUao1sTgvvZGjEZxA6T9YjSG0b23+MjgfpGC0H12smXXI1DQlMejufchdgknZ84iI9j13NP+Sm1T3c8sKZjLCZGncEPy7f46jYPs1trPqblD6A9wO50gFB+6Kj9ZQfl7byOCMwRlZikJ5kOyvbMdbrbV8pESSfQPIgLjuSh1MgnBImOIulK167PmQCEOO3H9ryS272UyUIg6dJ22Vl3Rr82RRK0NRGaeTNLAW2UAok6y2tXffk3x889g6peBPbQaW301ARGxJA4fSURfz99nPhCb1o5SJ8vmZUHYvngUQk9NkYJQDSVZRxLwDAGrw8q8vPvJbdzFJfHXMjz2Ys907Ce91FirmJwzmtSgDO7Pmu8nVrdvptZ+TgrC9tdE8xrmnF3NCeb35GAINBF78WXEnnshhkDvXJattBTyQf4cKi0FJAZnc2HqRCIC41yed13RLxRueMIpAE4h6ZhbZSoBlyl2jgZVuz6n5NcXml8Q9LuC2H6XyxcEnWNplVlYKovZs2giDlOj8nXUgDOIP+N6AkLEwRDvF60dpfdnpGoElwShqh5bVMrLmY65QaT/bSX4DwZCQvuQ0d21aLCu2tCyvtwh7Ag92bYrEfiw7E0+rniXniF9GZ/+AEZDc6TerlSm5YylwlrGgh4vEGIUhxL9v2jt56Qg1NEzIwI2lL/3lrIzKKLyhfTpS9LI0QSlpnnNyvyGrXxUMB+zvYbs8EGck3wnJpXHglozqrFqt/OIYDmhCYeRcvzd8oig11ZPfx0rR4i3vE7ltg/BENB8hDjLldzb+puTtOgfAmJ9qzd+TulXr+NoaoAmMAWkkzV1vqaCX2tHqZNnwKuCUN4h1MkqSzMkARcI7DJvY37edIIMwUzNmkOCKdmF1p2n6tLCx5W8i+PS7qdP2OGdYmJa+zkpCHXy2NT/sYWSZc9hKSrEEBJKwlXXEnXaWRicOZm8YeZfNd/zWfESbA4LR0efy0kJIzzyZsnaUE7B2rk0VuVgikgjbcgkTDKIiDeWUFd9KkGGfnqauvwNMsiQrlbGM8Y0leVT/PGzmHP/bL7PfNz51H39C5bcPFLHTyZ8wEDPDKSiF60dpQqTtKjiVUG4f5TRFtFgNYwyWl9fz8qVKxWWCxYsoLq6moceat6VPO+88wgLC+PHH38kJyeH3Nxc7r77bh588EEOP/xwunfvzrHHipAFB5empiZ27NhBz549CQrqGoE2tHgg5Ri+JdBoNzMr915KLIVcn3QrJ0ad4VuDfDj6ZxUf8m7Zq1wSfx3DYy/yoSWeG1prPycFoefWzq2ebHV1SvRQEUVUlLABx5B4w78xxSe41Z+aRiKS6I8V77G2/E0MGDgl4UYGxIigrp4rIs1A4Q9PUl/4k0wz4Dmsuu3poDQkQyYRFOm9nW3dguiEhjlsVirWf0jFmv/hsFkISupG0nmjCUntQd3GHyl4Yj7B3bqT8cAsr77AaolWa0epk2X1qiAUc9w/D2EpJlOCpnkIhdDLzt4/lck+9rt27VJE30033cRLL7100JLceOONLFvWMoD5P1WkINTJEyzN8CiB14uX8m315xwZNogxqRM0PaXh0Yl4oLO/Gn7n8b0PMzD8eG5JbTtHrgeG0qwLrf2cFISaLe3BA9X+9AMlL7+g5PQKiIwi4fqbiDh+iFd/qW0OK18WP8cfNasxGYI5J+U/ZIcf4xUKzYnIX6Zqx8cyEblXCOuj06bqPPLXPoq1vpSQuL7NkUSDRdYZWfydgLlgZ3OC+eLdSkCg2JMuJ/b4CzAENN9nFi+X8h6eRuOuHaTcMZ6I447XZMpaO0pNJtX+IF4XhO2b4J81pCD0z3WTVrdNYEvdRp4umENEQBTTMucSFei9qM7+sA5mewP37Pw3sYHxzOjesQjHepmv1n5OCkIfrLy1spKSV16k7sf1yuiRQ08m4doRiij0Zmm01bGicCF5DVsID4jlorTJJAZ39+aQSt+VOz6h9DfxRtdB3GFXE9vnEq+KXq9PSA7wN4H64k0UbngMu6WeiIyhJB0zBmOAPJLl74+I3dJI+bdvU7nhI6H6CMnsR9K5txIUf/Cub/3mX8mfP5ugtAwyZ8zVZJdQa0epk/WUgtDNhZCC0E1wspkuCdTaapixZyLVtkpuTbmHoyOO06WdWhv1yJ4JKOk3uj/TKQSy1n5OCkINn1jxNr1mzWpK33gZe10dgfEJJN54M+FHHe11K6osxUok0QrLXhKCunNh2kQiA+O9Pu6+AeoKfqLwh0U4bI1EdjuNpKNvlhFINaPvnYGqc76i+Jel4LAR2/dS4vpfJYW+d1Br2mt9zmZKPn4OS2URhqBQEk6/jqiBZ2JoI3Kd+Lu299GHlVypybfeobzg8nbR2lF6ez4q+5eCUCWoA6tJQegmONlMdwTE31sRQGVj3XqGRJ7GiOQxurPRVwYtL1rCuprV3JY6kSPDB/nKDI+Nq7Wfk4LQY0t36I4sxUUUv7SUhi2blIAM0WeeTfzlV2MM9X543ALzNj4qmEeDrZruYQM5J+UugnwQlrexchf5a+diM1cQmngEKYPHExCkTZh6jZa5SwwjjgKX//4mFX+9r0QSTRp4C1HdTusSc+/Mk7SZ6yj78hWqf/1KmWZYr0Eknf1vAqPaf3HUsPUP9s5+CFNSMlmzFngtRc4+/lo7Sp2suxSEbi6EFIRugpPNdEdgfc23vFT0NPGBiUzJmkOoytygupuIFwz6pmoVb5S8wHmxl3NB/JVeGEHbLrX2c1IQenl9HXY7las+pvx//4ejqRFTWrqSYD60Vx8vj9zc/bbadawqelqJJHpU9HAlgIzREKDJ2K0NYm0oU0RhU9VuTJHppA2ZjCk8yWf2yIFdI2C3NVH802Jq967DaAon5fjxhCUe4VonsrbuCNRu3UDJpy9gq6skICyKhGE3EdHftfvMe+fPomHzbySOvJXoU70b7U5rR6mTBZOC0M2FkILQTXCyma4IlFtKmZk7CXFfblz6dHqH9teVfb42Zrd5B3PypnJY2ADGpt3na3M6PL7Wfk4Kwg4vWdsdNObuURLMi4ALBAQQe8ElxF1wCQaTyYujNnctjhX8XPkh35W9Bkok0REMiD5XF0f67JYG5fhofdFGAoKjST1hAiFxvb3ORA7QMQK2xmoK1s3DXL6NwLAkRcwHRaV3rFPZ2qcErLWVlKx6gbqtGxQ7Io84hYQzRxAQFumyXeadO8h7eCqBcfF0m/O4V//Oae0oXYbhnQZSELrJVQpCN8HJZrohYHfYeTJ/JlsbtnBWzAVclvAv3dimF0OsDit377iJYGMIc7Of08Xn3Y6w0drPSUHYkdVqo63DYqH8g/9RsfIDsNkI7tFL2RUMzsj0wmgHdykiiX5d8gJbqr8k0BDM2cl30jOi9fxMmhjUyiAOu00JNFO1a5USgTT52LFEpGsTodBXc/bncZtq9pK/dg7WumKCY3uTOmQCgcHR/jylLm27cp/5t68p/fIV7OY6AqMTSDznFsJ7DOgQF5GCQqSiEBGTY4Z5NpVNS8O0dpQdguK5xlIQuslSCkI3wclmuiHwZeVK3i5dTlpQFpMzZ2IyeH9jQTeTd8GQubnTyGnczsPdniDBlOxCS/1V1drPSUHo4WegYdtWZVfQUpCPIShYuScYPewcTSLviak02upZWfgYuQ2bCAuI4aLUSSSF9PDwLD3TnfhQKlJSiNQUIgJp/OHXE9P7Ar9/q+MZOvrppb5kC4XrF2K31BGRfgJJg26XkUT1szwuW2KpKKL4k+doyNmsnB6IPvYc4k+9GmNQiMt9HdhAnIrInT5ZiZjcbd4TGIM73mdrRmntKDsMxjMdSEHoJkcpCN0EJ5vpgoCInDk79z4lT+jkzFlkBHfThV16NOLNkhdZXfUp/06+i2Mjh+rRRNU2ae3npCBUvTSHrmhvaKDs7dep+vIzJUx76OFHknTTLZgStbsfV20p4YOCOZQ35REflKWIwUiT9xLcewgdtfk/UvTjk0oE0qjuZ5I4YKSMQOopuB3sp3r3aoo3PtscSbTPxUrakLaiTXZwKNncywTErnzlDx9T/s3/4bA2EZSQ0ZxgPt2zx7ULlyyidv33xF91HbHnXeSVWWntKL0yCdc7lYLQdWZKCykI3QQnm/mcgDgGOS/vfnIbd3FJ/LUMj73Y5zbp2YD11d/wUvFizow5n8sTRujZ1HZt09rPSUHY7pK0X6Hu142UvLQUa3kZxvBwEq69gcgTT9F0p6vIvIMPC+ZSb6siK2wA56b8h2A/ij5lrthBwdp52BorCU06ipTB4wgwhbUPX9bwCgGxe1v+59tU/PkOGIwkHn0z0d29GyjEKxORnSoEGot3U7zivzQW7gRjAHFDLyV26CV/J5j3JKamgnz2TLkHY1g43ecvwhjq+d9jrR2lJ/l0oC8pCN2EJwWhm+BkM58T+LDsTT6ueJeeIX0Zn/4AxjbS//jcUJ0YUNi0l4f33KPwuifjIZ1Y5Z4ZWvs5KQjdWyella26mpLXXqJ23XfK1xGDT1DuzgRGx3SgV9eb7qjdwKdFT2F1NHFE1FmcljjSp5FEXZ9BcwtLfSkFa+fQVJ1LUFQmqSICaZj+dzjdna9e2zlsFop+fobavO8wBoY2RxJNOkqv5kq7DkHAbm2i4rt3qVj3AdhtBKf1Jum8WwlO9O595qLnn6Hm26+Ju+QK5Z+ni9aO0tP2u9mfFIRugpOC0E1wsplPCewyb2N+3nSCDMFMzZrj93fitIApgu9M2DUK8d8FPV4gwIdR9Ts6X639nBSEbqyY2D2pXfsdJa+/hL2mhoCYWJJuHEX4QG0Dtwg7NlauZE3ZK8osToq/joEx/n0Hz26pp2DD4zQU/0ZAcAypQyYSEtvTjVWSTdwhoEQSXb8Ac9lWAsMSFFEeHOVd8eCOnbJN+wQacv+keOWzWMrzMZiCiT/1GqIHna3JfWZLSTG77x2PMSiIbvMWERDhetTSQ81Qa0fZPm1NanRqQbhs2TJGjhx5EMglS5YwZkzHkm9LQajJ8ykH8SCBRruZWbn3UmIp5PqkWzkxSp7QUYv3ib2PKNFYp2TO8ev7llr7OSkI1T5hznqWslJKXnqe+t82Kt+JOu0s5a5MQJjnj0UdyjS7w8bqkmVsqv6MQEMQw5PH0itisIuz0Wd1h91Kya8vUp3zBYaAIJKPvZOItOP0aWwnsqqptoCC7+dgqSskOLYnqSdMJDBE293uToTTZ1OxN9ZT9vUbVP28SrEhLHsAieeMwhSj3X1mMW7x8uep/vIzYs67iISrrvMoD60dpUeNd7+zLiEIv/zyS0JDQ/+m1KNHD5KSOvbsSkHo/kMnW/qGwOvFS/m2+nOODBvEmNQJml5B8s2MPTfqe6Wvs6ryfb8X0lr7OSkIVT6DIsG8CBgjAsc4zGZMySkkjbyV0H6HqezBc9Ua7fV8UvgEu+t/JTQgmgtTJ5IS0stzA+igJ7H7Wbn9I8o2v6pEQkw48l9E9zxP/lH00to0lP5BwboF2C21hKcep6QBMQYGe2k02a23CNRt/5mST5ZirSnHGBJBwlk3EHnEyT75vbFWlLN70n/AYKDb3EUExnju5YLWjtJb6+Viv11CENbU1BAREeEimkNXl4LQozhlZ14msKVuI08XzCEiIIppmXOJCvTc304vm66L7jfWbuC5woWcFHUm1yXdogub3DFCaz8nBaGKVWrK30vxi89i3rYVjEZizr2QuIsvV45DaV1qLKVK8JjSpj3EBWUokUSjTB17e6r1HFwZr3bveop+fAqH3UJ09nASjroRgzHAlS5k3XYI1OSuUe4MYrcS0+sC4o+4TkYS9bOnxlZfTclny6j9/XvF8oj+Q0gYdhOB4b7NFVn6+stUfrqC6GHnknj9jR6jqrWj9JjhHevI64JQhLUvrP2ePVWrMFtKCDElkhU9nJSIoV7/m7DvyKgUhB17SGRr/yZQa6tmxp5JVNsqGZ0ygQE6yyHtD3QrrGVMzbmDzODu3Jf5qD+Y3KqNWvs5KQgP8ag4rFYlubxIMo/VSnC3bJL+favyX1+UYvMuRQzW2SrIDD2S81LGERwQ7gtTNB3TXL6NgnXzsTVWEZY8kJTj7sJo+udIkabGdKLBxC5sxdb/Uf7HW82RRAeMJDp7WCeaYeefinKfecsaSj5fjr2hhoDIOJLOHkV470G6mLwIvJUz8U4cNhvd5jyOKd4zQaK0dpS6gCkSGjkcB5niqd0vIQZ/K1xEcd0GHNid4xgQ/0sKH8xRKXd5VRTuE4TieGhZWRk9e/bk7rvvZvTo0R3G7ylGHTZEdiAJHOozp8PB0sLH2Vi3niGRpzEiuWN3Z7sqbPF38r6c2xDiemGPZQQZtd+88QR7rf2cFIRtrJp553aKX3iWprw9GEwm4i69kpizz8cQ4JvdqZ11P/Fp4SIsjkYOizqd0xNHEWAI9MQz5xd9WOqKKVg7l6aaPIKiu5E2ZBKBofF+YbsejRT3NIt/fpaa3G8wiEiig/9DePLRejRV2tQGAUtVCSWfPE/9zl+UGlEDh5Fw+rUYg7W9z9zeApW98yYVH75L1GlnKrlZPVG0dpSesNkDfXhVEBbUrGFz0eIWYvAfiw0YOSL5dlIjT/LANFrv4tNPP+WHH35g8ODB2Gw23njjDZYvX87ChQsZP358h8aVgrBD+GRjjQisr/mWl4qeJj4wkSlZcwj1o9RhGiFSPcwzBfP4re4n7kl/iJ6hfVW301NFrf1clxaEdpuV0g9eouaPb3HYGzEYg4noMwQag6n5/NPmBPP9DiPxplsISkn12XPyS+XHfFu6HAcOhsZfy6CYi3xyJ8hnAJwD25rqKNzwGA0lmwkIiVVEYXCMb3Zr22Ih3rLXbvleCeghPrCbohOJPmY4EYd7/8iV2vWxNdVSuH4hDaW/Exga1xxJNLqb2uaynoYEWnueogaehc1cR/nqN3BYGjHFpSqpJEIz+2tomfqhbHW15NxzJ45GM0FZ3bBVVWFKSCT6jOFEnDDUrainWjtK9bP1ak2XBOE3OWOx2utVG2S1m+HvncHWmhkJNIao6i/QGMYp3Z9SVfdQla6++mo+//xzSkpKMBqNbvcnBaHb6GRDjQiUW0qZmTsJs72BcenT6R2qz7/nGuHo8DAfl/+PD8v/jysSbuCMmPM63J8vOtDaz3VZQSjE4O6Fd2GzlDevsyCx7zRODVARTOI1NxB1yulufWDxxMMj8qgIIfhr1ScEGEwMS7qdPpFDPNG13/ah7Gz9spSa3V9jCAhWjo+Gp+rjeJxy/+a9RdRt3QCOf45ciaAa4X0Hk3KJd49cqVlUS20h+WvnYqnNV8S0Ekk0NE5NU1lHYwKtP08tjTAQO/RiYk+8DGOgfo/EiIBce+6fjGVv7j/GGwxKsJnwQYNJue0ul//Gau0oNV76tobzsiBsXzwKoaemeEoQvvXWW1x11VXs2LEDEW3U3SIFobvkZDstCIjPeovyZ/JXwxbOirmQyxKu12LYTj3G7/W/8lT+bI6LOJGRKXf65Vy19nNdVhAWv/s81X981iwEDywOCMs8lsQL/uWzh0gcDf2sZjm7LVsIMYRzbuTNpJj0tRvmKzjifHj1ns+p3LVCUfKxvS4lKuMUX5nz97i1f/1I2VevtRCDLUwyGIk//Toi+mibq7IlFHPVLko2L8VuqSM0/ggSDhuBMUBGEvX5g9OGAYd8noC4U68mbuilejX/b7tqvl9D0dLFYN/3kqSFyUYjyTffTuRQ144iau0odQLZJUHoqs3r86ZTZd7W4s3o/i8fYkL6MDjjIVe77VD9t99+myuvvJKdO3eSne2+/5OCsEPLIBt7mcCXlSt5u3Q5aUFZTM6ciclg8vKInb/7OlstE3fdTJIphQe7Pe6XE9baz3VZQbhj1k04MLcuCH386JhD4MeToDoWwqvhuDUQVudjo/Q4vMh1LU7yipNEYqO3WI9G6sQmyUonC+EpMwyEZPQmY8TDnurQa/3kzZiOeftfrfdvMBDSqzcZU12bh9aO0mtwXOvYq4LQ13cIW0NxzTXX8MUXX1BUVCSPjLr2rMjafkKgoCmP2bn3IU6ETM6c5deJ1PWG/IHd4yixFDI/eylhAZ5NZaPFXLX2c11WEG6fcS0EHByx7e9FdkBo98O1WPP9xqgMNfN93900BFlJrA7nhG2ZBNl8E8hG88m7MaDNWE9T0B4w2DDaIglqSseAb3g15G0Fm7XtWQQEEpqh7eVmce/UGliK1VSsHIk2WVIItMlgPG48apo3ae95EhFFs8cu1twuVwfcNe42bJUVbTYLiI0j+zHX5qG1o3R1zl6q71VBuH+UUeEbxT/tooxefvnlSkCZo446Sgkq8+abb/LKK6+waNEi7ryzY0e+5A6hl55I2W2HCFgdVubl3U9u4y4uib+O4bEXdag/2Xh/Ai8WPskPtd9xZ9oU+ocd5Xd4tPZzXVYQHnKH0CHcYAg9pyzT9AHKqdvIx4VPYHGY6R95Kmck3dKlIom6C1sv9+Lylk/HvLftI1chGX3IGKHdkauD7luKSKIpx7iLWbbTmIDenid3p6/sEO7YpgTpOqgoO4R9yJjq2u+F1o7S3bl7uJ1XBaGwdV8ewtyqVTRYSgk1JZCpUR7CKVOm8M4775Cbmyvya3DYYYcxbtw4RowY0WGMUhB2GKHswAsEPih7k08q3qVXSD8lkIzR4H7gJC+Y5/dd7juKe2Hc1Zwbp//rFQcC19rPdVlB2N4dwqj+w0i6dJRmvxC/Va1idcmLSiTRIXFXc2zsJV0ykqi7wPUQObNm8xqKPlrc5h3C5AtuJ/II1+5Kuc/jwIiskwmO6e5ud7KdDwjo6XnqyPTlHcKO0NuvrdcFoccs1VlHUhDqbEGkOexs+IsFex8gyBDM1Ky5JJiSJBUPE9jRsFVhfFT4sYxJneDh3r3fnRSE7jFu1VEeqqtDRRkNMMXR7e5FGAO8n+dPRJf6ruxVNlauwEggw5Jvo2/kie5R6OKt9s+tF0LK4HGa5tbbPyrkP0eutI4yKnI25q+dg6Vmr8zZ6Me/E3p5njqKUEQZLVyyiLqfRPRdR/M/GWXUHaxSELpDDZCC0E1wsplXCDTazczKvVe533Z90q2cGHWGV8bp6p022Ru5e+dIIgOimZ29xO9wSEHo3pK5LAjFMK3lIYzsfzIJF92oiRi02M18WvQUO+t+JMQYyQWp95AW2s89ArKVQkAcNarY+j/K/3gLDEYSj7qJ6B7DNaPzd964jSIPYSmm6ASiB2qXh9Bcvo2CdfOxNVYRljxQScthNIVqNn85kGcJ+Pp58tRshCisXfc9VV+twlJaiikhgejTZR5CF/lKQegisH3VpSB0E5xs5hUCrxcv5dvqzzkqfBCjUybI02Beodzc6aw995LXlMOs7ouJCfSvFFtSELr3YLglCN0byjOt6qwVfFgwj+LGncSYUrgodTIxQSJkpiyeIFCTu4ain58Bu5WYXucTf8T1GDr5+fzavesp+vEpHHaLIoITjrwRg9E3AXY8sYayD0mgLQJaO0qdrIQUhG4uhBSEboKTzTxOYHPdRhYXzCEiIIr7M+cRGRjt8TFkh/8QeLX4Wb6r/pJbU+7m6IjBfoVGaz/XZe8Q+vKpKG3cwwcFc6i1lpEW0o/zU+8hNEDkBZDFkwQaSv+gYN0C7JZawlOPI/nYsRgDO1/ePbErWrntI8q2vKpEBUw4cgTRPc+Vbx09+TDJvnRFQGtHqZPJS0Ho5kJIQegmONnMowRqbdXM2DOJalulsjM4IMJ3eYk9OjEdd/Zd1Ze8WvIsZ8dezMXx1+rY0oNN09rPSUGo8eOxu+5XVhY+jsXRQN+IkzgzeTSBMgmp11ahqbaAgu/nYKkrJDi2J6knTCQwJMZr42ndsbg3WfLri1TnfIEhIJjkY+8kIk06Ga3XQY6nLQGtHaW2s2tzNCkI3VwIKQjdBCebeYyAeHG7tPBxNtatZ0jkaYxIHuOxvmVHbRPIa9zNrNzJ9A09gv+kT/MrVFr7OSkINXw8Nld9zlclL+DAzuDYyzk+7gq5i6MBf1tjDQXr52Mu20pgaAKpQycTHJWpwcjeHcJmqadww+M0FP9GQHAMqUMmERLbw7uDyt4lAR0Q0NpR6mDKwgQpCN1cCCkI3QQnm3mMwPqab3mp6GniAxOZkjWHUGOYx/qWHbVNwOawKYFlAgwBzM9+3q9Se2jt56Qg1OA3SQSG+L7sdX6q/BAjAZyZNJr+UadoMLIcYh8Bh82i3CmszfsOY2AoKcePJyzJ/xKV7puPpb6UgrVzaKrOJSgqk9QhkzGFJcgFlwS6BAGtHaVOoEpB6OZCSEHoJjjZzCMEyi2lzMidiIguOj59Or1C+3ukX9mJOgIL8h5gh3krD2QtJDkoTV0jHdTS2s+pFYSHAU8CQ4BKYCkgMgnb2mEmzq7NAvadYfsZmAqsb9FOZH+/sZV+xG/MnyrXRLdBZaz2JiWS6I66DQQbw5X7ghmhAqcsWhMQRzbK/3ybij/faY5AOmAU0dlnam1Gh8czV+ygYO08bI2VhCYdRergcRhN8m1jh8HKDvyGgGURl0MAACAASURBVNaOUidgpCB0cyGkIHQTnGzWYQIitdii/Jn81bCFs2Iu5LKE6zvcp+zANQJvlyzny6qV3Jh0O8f70WaM1n5OjSCMBbYAvwNzgJ7AAuAx4FAHcsWZvE2AEIGivigTgWOAI4Hdzu8JQXg8MPKAJf4FMKtcdl0KwnprJR8WzKeocTtRgUlcnHYvsX70dkIle7+rVr3nG4p//i84bMT0voj4w6/xmwiktfk/UPTjkzhsTUR1P4vEATdhMHo/X6bfLbI0uFMT0NpR6gSmFIRuLoQUhG6Ck806TODLypW8XbqctKAsJmfOxCRjRnSYqasd/FjzPS8ULeK06HO4KvEmV5v7rL7Wfk6NILwPmAR0A6qdZMTXDwIpLb53IDRxY/ZpQCT+qHL+UIjLUmAssC9LpBCER7TYRXQHvu4EYVlTHh/mz6HaWkJqSB/OT51AWECUO3OTbbxAoL5kC4XrF2K31BGedjzJx96BMSDICyN5pkuxu1m1YyWlm15ROow/4jpiel0g76B6Bq/sxc8IaO0odYKnSwnCvXv30rdvX+rq6qipqSEiIsLtZZCC0G10smEHCBQ05TE79z5x+5dJmTPJCBYfo2XRmkCJpZAHdo+je3AvJmXO0Hp4t8fT2s+pEYTfAPnANS1mleXc4bsI+LCN2d4JzAfCAauzjgmoBcYDi53f63SCMLd+EysKH6PJXk/viCEMS7qNQKN+xYbbT6ufN2yq2Uv+2jlY64oJju1N6pAJBAbrLyeQw26jdNNLVO1chSEgiORBY4lI9698On7+qEjzdUZAa0epk+l3KUF43XXX8eWXX1JUVCQFoU4eQGmGegJWh5V5edPIbczhkvjrGB4rPi7L4gsC4oX6pF230OhoZGGPFwk0+MepKq39nBpBWOwUb2JHsGWpc+4SzmtjgcXNTXHUdDkw01lnOnCF88hoSQtBeJVTNIokcT847xmuduHB0c0O4Zbqr/iqeCl2bBwXeyknxF3pN8cRXeDdaaraGqspWDcPc/k2AsOSSBsymaCodN3Mz25poPCHRdQXbSQgOFpJmxES10s39klDJAFfENDaUfpijq2M2WUE4TfffMMll1zClClTmDhxohSEOnkApRnqCXxQ9iafVLxLr5B+jEuf7lfRLdXP0n9qPpU/m9/rf+XejFlkhfhHNHat/ZwaQWhx3v17/IClz3OKvSmHeCSOBj4C9n3CLgDOBX5t0eY/QJPzjmIicA8wCDgJ2KDycfO5IBSRRNeWv8mPFe8rkUTPSLqFw6JOU2m+rOZLAnZbE8U/LaF271olOEvK8XcTlihOMfu2WBvKyF87l6aq3QRFZihpJUzhSb41So4uCeiAgNaOUgdTFiZ4XRAKP7a19ns2Va2i2lJClCmRI6OH0zdiqGYvNm02G8cccwwjR44kJiZG+a88MqqTJ1CaoYrAzoa/WLD3AYIMwUzNmkuCSfptVeC8WOnDsv/j44r/cU3iKE6JHubFkTzXtdZ+zpuCMBUQx01FMJp99wXvAAYCQ4E9bWAT4RLFzqIQjZe0UUfsVj7Q8mdiS9hXRUQS/ax4Cdtq1xJkDOP8lLvJDPO9oPAVD38cV3wQKv/9/6j46z0wBJA08BaiuvlO0DdW7lLEoM1cQWjiEaQMHk9AkDh9LYskIAlo7Sh1QtyrglD8Dfy4cJESEVvkym0uBuV/PcMHc27KXZqIwqeffponn3ySTZs28eqrr0pBqJOHT5qhjoDZbmZ27mRKLEX8K2k0Q6NOV9dQ1vIqgd/qfuKZgnkMiTyNEckixIn+i9Z+To0gFEdGRXAYkWaiZWnvyOhC4DKgNyB2GUURF+m2Ae8Ddx1iOcR4FwLirqKa4rMdwnpbNSsK5lNg/ouowEQuSruXuCD9HDlUA0/W+YdAdc5XFP+yVIlAGtv3UuL6a3/kt67gJ+WYqMPWSFS300k8epSMJCofUkmgBQGtHaVO4HtVEP5Zs4bPiha3EIP/zNqAkWHJt9MvUhzc8V4pKyujd+/evPLKK5x33nksW7ZMCkLv4ZY9e4HAa8VLWVP9OUeFD2J0ygQZ+M0LjN3psspayX05Y0gLymRaVls33dzp2XtttPZzagSh2OXbC1zbYtoipYTY4TtUUJmV4ogLcP4BuNr6fstqTzkFodqQTD4RhBVN+byf/yjV1mKSg3txoYgkGhjjvadD9qwJgfriTRRueAy7pZ6IjKEkHTNGswiklTs+ofS3l5RfnfjDriWmz0XSoWiy6nIQfyKgtaPUCRuXBOGLOWNptNerNt1iN7cqBvd1IEShyRiiqr9gYxgjuws37loZM2YMe/bsYeVK8TEBKQhdwydr+5jA5rqNLC6YQ0RAFPdnziMyUH9B6nyMyKfDT825g0prOQt6vECIMdSntqgZXGs/p0YQirQTIn+gEGc1zklMAB5uJ+2EOCZ6nnOHUNwRFEUEjRE7hCIyqTg+2loRqySOmW507jCq4aa5IMyr38KKwoU02uvoFX48w5PvkJFE1ayUn9Rpqs5rjkBaX0JIXF9ST7iHgGDvpQ0Rx7VKN71M1Y6PMRhNJA26nciMIX5CS5opCWhLQGtHqe3s2hzNq4JQRMVur4grEWqKO4Jwy5YtDBw4EBFQpl+/fsowr732GnfccQd5eXnExcURGurehziZdkLNqsk6HSFQa6tmxp5JVNsqlZ3BARHHdqQ72dYLBJ4rWMjGug1KkJ8+oYd5YQTPdqm1n1MjCEXuQCHQNjsT04vwPOI4qAgy0zIx/XZARAYd5UQiAsOsA1Y5o5SKsYQIPMuZc1DcERSvT0TQGZFcTbRPcKakEPcMTwR+VIlXU0H4R/U3fFH8XyWS6KCYixga7z+JzVXylNVE2FtzpRKBtLFiB6bwZFJFBNJIETzXs8VuNVP4w5PUF/6EMShSiSQaGt/Hs4PI3iSBTkRAa0epE3QuCUJXbX4rbzoFZvG+trX7+AYln+6VGQfeHHF1lLbrv/fee1x66aVtVhg1ahRLly51a0ApCN3CJhupJCBiWCwtfEwRG/50R03l9DpNtVUV7/Ne2etcGn89w2LFrTR9F639nBpBKIgJKS3Of4gti0pA/FUWgV1sLXDmAF8DN7X43pnO4C/7Iqxscn4t6okizp+8BhwHiDBMZmCts28hJtUWTQSh+KVfX/42GyreQRyfOT1xFEdEiynK0lkJ2K2NFP30NHX5GzCawkk9YQKhCf09Nl1rQ3mz6KzchSkijbShkxXxKYskIAm0TUBrR6mTtfCqIPT1HcLS0lI2bxbvnf8pn3zyCXPmzFGOkPbo0UNJVO9OkYLQHWqyjVoC66u/4aXixcQHJjIlaw6hKnfS1fYv63mGwNb6LTyR/wjHRJzAzSnjPNOpF3vR2s+pFYRenLJHuva6ILQ6LHxR9F+21q4hyBjKeSnjyQo7yiPGy070TUAc5yzb8jqV2z5sjkB6zGiisk7psNGNVbspEMdSG8oJTThMSXcREBTR4X5lB5JAZyegtaNswVO8HH3ygJejYtus5cvR1vCL82OznKdjxM9/dubbXe/CWnlVEO4fZVTsEop/2kcZbclDBpVx4emQVX1CoNxSyozciTTazYxPn06vUM+9MPbJhDrxoA32eibsHEVcYAKPdBd/xvVdtPZzUhCqeB4abDWsKFhAvvlPIgMTuCh1MvHBIq6OLF2JQNWuzyn59QVw2Intdzlx/a5wO+BLXdEvFG54HIfVTGTWKSQNvFVGEu1KD5Oca4cIaO0oncaK6xMiJZK4QjEH6AksAB474PrEgXMTzkKcjhEiUNQXRdzLPwY4EtitEoZXBaGwYf88hKVEmRI0z0MoBaHKp0FW8zkBu8POovyZ/NWwhWExF3JpwvU+t0kacGgCD+++h0LLXuZkP0tkgPfiQnhiHbT2c1IQtrNqlU0FfFAwh0pLIUnBPbgwdRLhMpKoJ551v+yjruhXp5BrIDLzJJIGjsYQYHJpLlU7V1Hy2zJFWMb1v0pJb+H8xXepH1lZEuiqBLR2lE7OIsDaJGeAtWrn98TX4vpECrDvewcui0h6JVIpxQFVLcRlKTC2RZ7e9pbT64KwPQP89efyyKi/rpy+7f6icgXvlL5MelAWkzJnYjK49llA37PrnNYtL1rMuppvuD11MkeEi3Al+i1a+zkpCA/xLOxt+EPZGTTba+kRfhxnJ9+hOuy2fh8xaVlHCTRW7XEe9SwjJL5/cwRSFUc9laOnm1+lcvsKMAaSfMwYRVTKIglIAq4R0NpROq0TKZjygWtaWCty5YodvkOlYLoTmA+Ei1hVzrbik2OtM4jaYpWzl4JQJagDq0lB6CY42axNAvmNuTyaN0VsqytiMCNYbZY0CdWXBFZXfsqbpS9yXuzlXBB/pS9NaXdsrf2cFIRtLMlWJUnvM9ixMjDmfE6Mvx6jwdjuAsoKXYOA1VxBwVoRDGYnpojU5gikEWKToPWiBKf58SnqCn5ojiR6/D2EJjSHVpdFEpAEXCOgtaN0WlfsjJgtdgRbljrnLmFb2Y5FaGJx1HQ5MNPZcDpwhfPIaInK2UtBqBLUgdWkIHQTnGzWKgGrw8q8vGnkNub4TcRKuZTNBHLMO5ibN5XDwwZyR9pkXWPR2s9JQXjA4yAiif5Q8T/Wlb+lXKc/NXEkR0UP1/VDI43zDQGRLqJZ5P3oTBcxgdD4g6Pg7Z++IoXUoUI8pvrGaDmqJNAJCGjtKJ3ILM67fyLlUsuS5xR7Uw6B9mhniqV0Z50C4FxApF9SW6QgVEvqgHpSELoJTjZrlcAHZW/yScW79Arpp+S0k5sF/vOgWBwW7t5xkxIJVtwj1PN1Ha39XJcWhPtfoC9RAsaIX+x881ZMhhDOTfkP3XV+xth/fg07p6XNCeVfoWrHSuUYaNLAMRgMIO4JWupLlGT21voy7JZaQuL7KTuDAcGRnROGnJUkoBEBrR1lBwWhePsjjpuKYDRLnH2JnLziAstQYE8b2MRO5AMtfyZeWB5YpNhp/6GTjNpnJGuoI7CjYSsL9z5IkCGYqVlzSTCJjGmy+BOBOblT2d24g0e6LSJex+untZ/rsoJw/xDb9v2e5QCDiSvTHyYpJNufnnFpqw8JVO78lNJfX3RaIH6t9v/gFhAaT7ezFmIMDPahlXJoSaBzENDaUTqpiSOjIjjMgdnZ2zsyuhC4DOgNiF1GUYIAkQX+feAulasidwhVgpKi2U1QstkhCZjtZmbnTqbEUsS/kkYzNOp0ScwPCbxR8gLfVK1iVPJ/GBQp0qvrs2jt57qsIPR1El59Pn7Sqo4QEDuFlds/ar0Lg5HkQbfLIDIdASzbSgL7XrmIbXiRJE/bInb59gLXthhWpJQQO3yHCiqz0vmG6PwDzG3r+23NSgpCN9db7hC6CU4224/Aa8VLWVP9OUeFH8volHt0fdxQLl3bBNZVr2Z58RLOjDmfyxNG6BaVFITuLY3LienfyptOgfmvNkYzkBrSmyszHnbPGtmqSxLIWz0dc3nbz1RIXG8yTpXPVJd8OOSkPUpAa0fpNF6knRD5A0U4wRrn9yYA4pf6UGknxDHR85w7hE3OduKogNgh/BAQx0fVFCkI1VBqpY4UhG6Ck83+JrC5biOLC+YQGRDNtMy5RAZGSzp+SqCgKY9H9kygV0h/7s7Y71S+rmaktZ/T+g2rt2C7LAif33UbdbaKNu0JD4hjVLbaaODempbs158I7Pr4Nmzmtp+pgJA4ss+Vz5Q/ram0VZ8EtHaUTgoiMb24B7jZmZi+ByCOg4ogM9NakNoOrAZGOb83CFgHrHJGKRV+V4jAs4BjXQgsIwWhm4+jFIRugpPNFAK1tmpm7JlIta2KMakTlB1CWfyXgN1hZ8LOUTiws6DHi7oNCqS1n+uygrB5h1C8oD34kr44iZQa0ocrMw68KuK/vwDScu8TaN4hbPuZConrQ8ap8pny/krIETo7Aa0dZQuehwFPAeLiSSWw1JlywtaiTg7wNXBTi++d6QwQc4Tze5ucX4t6aosUhGpJHVBPCkI3wclmiEBOSwsfY2PdBoZEnsaI5DGSSicg8Njeh9nW8DvTMueRFixO/uuvaO3nuqwglHcI9ffw+7tFNblrKPppMTj2D1KkzEveIfT35ZX264iA1o5SJ1OXgtDNhZCC0E1wshnrq7/hpeLFxAcmMTVrDiHGUEmlExB4t/RVPqv8UNfBgbT2c11WEO4fZVTsEop/IvOggZ7hgzk35S4MMhF9J/i1124K4pkq/GERdfkbQAkP3/xMiTwU4WmDSTlOPlParYYcqTMT0NpR6oRlpxeE27dvZ968eaxdu5YtW7Zw8skn8/XX/2yiFhQUsHDhQlatWsWOHTuIjY3ljDPOYPbs2aSlpbW5TFIQ6uQJ9jMzyi2lzMidSKPdzPj06fQK7e9nM5DmtkVgY+16nit8jJOjzuLapJt1CUprP9dlBaFY/f3zEJYSZUrgyOjh9I0YKsWgLn899G+UeKZq87535iEsxRSWQHSP4URkyGdK/6snLfQXAlo7Sp1w6fSC8P3332fs2LGccMIJbN68meTk5P0E4UcffcS4ceO4+eabOf744ykqKuLBBx/EbDYr9SMiIlpdKikIdfIE+5EZ4p7ZovyZ/NWwhWExF3JpwvV+ZL00tT0CQuxP2z2WzOBs7suc3V51n/xcaz/XpQWhT1ZYDioJSAKSgCTQIQJaO8oOGeu5xp1eENrtdoxGo0LsiiuuoLS0dD9BWFlZqYi+wMDAv6n+9ddf9O3bl2XLlnHjjTdKQei5561L9/RF5QreKX2Z9KAsJmXOxGQwdWkenW3y4m7ofTljqLXV8liPFzEZRWpYfRWt/ZwUhPpaf2mNJCAJSAKSQDsEtHaUOlkQrwtCsSvyY+33StLmMksJ8aZETokezrERQzWPxNeaIGxrHcLDw5k2bRr33Scygxxc5A6hTp5gPzEjvzGXR/OmKFc/JmfOIj04y08sl2a6QmBx/lw21//MxIxHyA7p7UpTTepq7eekINRkWeUgkoAkIAlIAp4ioLWj9JTdHezHq4JQiMEXChfxS90G7OwLjGXAiIGjwwfz75S7NBWFagXhb7/9xoABA3j77be5/PLLpSDs4EPW1ZtbHVbm5k4jrymHS+OvZ1jshV0dSaed/8ryd/io/C2uTLiJ02PO0d08tfZzUhDq7hGQBkkCkoAkIAkcioDWjlInq+FVQbihZg3Lixa3EIP/zNqIkRuSb2dw5EmaoVAjCMUR0zPPPJO9e/cqQWhMptaP9ckdQs2Wze8Her/sDT6teI9eIf0Ylz5d05cgfg/Pzyawpe4Xni54VPm7dlPyWN1Zr7Wfk4JQd4+ANEgSkAQkAUlACsKDCLgkCKfljKXBXq/6QRKRFP/ZGTy4mRCFwcYQVf2FGsOY0V2ka3S/qBGEkydP5oknnmD16tVKkJm2ihSE7q9DV2q5o2ErC/c+SLAhREkxEW9K6krT73JzrbXVMGnXLSSb0nig20LdzV8KQveWpFVH6V5XspUkIAlIApKAnglo7Sh1wsKrglCNeBRCT03RQhAuXrxYiUj6+uuvc/XVVx/SLCkI1axa165jtpuZnTuZEksRI5LGMCTqtK4NpIvMfnrOXZRai5mf/TxhAeG6mrXWfk7uEOpq+aUxkoAkIAlIAu0R0NpRtmePRj93SRC6atP8vOnsNG9z5k89sLWBHiF9mJDxkKvdul3/UDuE77zzDldddRVz5sxhwoQJ7Y4hBWG7iLp8hdeKn2NN9RccFX4so1Puwfk3pstz6ewAxL1pEUjrrrSp9As7UlfT1drPSUGoq+WXxkgCkoAkIAm0R0BrR9mePRr93KuC0F/uEIpE9eeccw5jxozh8ccfV4VeCkJVmLpspU11P7OkYC6RAdFMy5xLZGB0l2XR1Sb+RcUK3il7mYviruGcuEt0NX2t/ZwUhLpafmmMJCAJSAKSQHsEtHaU7dmj0c+9Kgj3jzLqcO4UahtltL6+npUrVyo4FyxYQHV1NQ891Lwred5557F7926GDBlC9+7dWbJkyX67OImJifTs2bPVpZCCUKMn1A+HqbVVM2PPRKptVYxJnaDsEMrSdQhsb/hTuTc6IPw4Rqfeo6uJa+3npCDU1fJLYyQBSUASkATaI6C1o2zPHo1+7lVBKObQMg9huaWUOFOCpnkIc3JyyM7ObhXnrl27lCT1I0eObPXnIim9SE7fWpGCUKMn1M+GEcnJnyt8TEm1MjTqdP6VNNrPZiDN7SgBEUzr7p0jiQ6IZVb24o5259H2Wvs5KQg9unyyM0lAEpAEJAFvE9DaUXp7Pir797ogVGmH31WTgtDvlkwTg9dVf8Py4sXEByYpUUVDjKGajCsH0ReBmXsmsbdpD7O6LyYmME43xmnt56Qg1M3SS0MkAUlAEpAE1BDQ2lGqsUmDOlIQuglZCkI3wXXiZmIHfEbuRMQO0fj06fQK7d+JZyundigCrxY/y3fVXzI6ZQIDIvRzZFhrPycFofw9kQQkAUlAEvArAlo7Sp3AkYLQzYWQgtBNcJ20mTgavSh/Jn81bGF4zEVcknBdJ52pnJYaAmuqPue1kqWcHXsJF8dfo6aJJnW09nNSEGqyrHIQSUASkAQkAU8R0NpResruDvYjBaGbAKUgdBNcJ232ReUK3il9mfSgLCZlzsRkMHXSmcppqSGQ25jD7Nx76Rd6JHelT1XTRJM6Wvs5KQg1WVY5iCQgCUgCkoCnCGjtKD1ldwf7kYLQTYBSELoJrhM2y2/M5dG8KeBwMDlzFunBWZ1wlnJKrhCwOaxKYJlAQxDzs5fqJgel1n5OCkJXnhpZVxKQBCQBScDnBLR2lD6fcLMBUhC6uRBSELoJrpM1szqszM2dRl5TDpfGX8+w2As72QzldNwlMD9vOjvNf/Fg1mMkBaW6241H22nt56Qg9Ojyyc4kAUlAEpAEvE1Aa0fp7fmo7L9VQWixWNi+fbuSgy8oKEhlV12r2j5B2KtXL0wmeTywa63+P7N9v+wNPq14j14h/RmXfj9Gg7GropDzPoDAWyUv8VXVx9yUPJbBkSfpgo/Wfk4KQl0suzRCEpAEJAFJQC0BrR2lWru8XK9VQShyqf3555+kpqYSExPjZRP8s/vKykoKCwvp27evbo6D+SdJ/7V6R8NWJQF5sCFESTERb0ry38lIyz1O4IeaNbxY9BSnRZ/DVYk3ebx/dzrU2s9JQejOKsk2koAkIAlIAj4joLWj9NlE9x+4VUEoqpSUlFBWVkZKSgphYWE6MVcfZtTX1ytiMD4+nsTERH0YJa3QlIDZbmbWnkmUWosZkTSGIVGnaTq+HEz/BIqbCnhwz3iyQ3ozMeMRXRistZ+TglAXyy6NkAQkAUlAElBLQGtHqdYuL9drUxCKXcLS0lJFFIr/L8s/BMSzIsRgQkKC3B3sog/Ga8XPsab6CwaEH8etKXfL56CLPgeHmrb4uzlh181YHU0s7PEiAYZAn1PS2s9JQejzJZcGSAKSgCQgCbhCQGtH6YptXqzbpiDcN6b4UGO1WqUodAIRz0lgYKAUAF58KPXe9aa6n1lSMJfIgGimZc0jMiBK7yZL+3xEYNHemfzZsIn7MmeTGZztIyv2f5kFaKbT1A50GPAkMASoBJYCDwG2dogdC8wCxH9F+RkQST7WH9DuYmAG0BvY6ez7TRdWo11H6UJfsqokIAlIApKAjglIQajjxZGmSQI6IVBrq2bGnolU26oYkzqRo8IH6cQyaYYeCXxQ9iafVLzLtYk3c3L0WT43UWs/p0YQxgJbgN+BOUBPYAHwGDDtEMQygU1OESjqizIROAY4Etjt/J4I5/M1sBh4FzgPuAc4B1ilckWkIFQJSlaTBCQBScDfCWjtKHXCS/o5nSyENEP/BMRu+XOFj/FL3QaGRp3Ov5JG699oaaFPCfxW9yPPFMzXzfOitZ9TIwjvAyYB3YBq52qJrx8EUlp878CFHAM8DcQBVc4fCnFZCowFlji/9ykg4kCf0aKDlYDY11cb+9UtR+lw2Kmt/p6qilVYLCWYTIlExw4nImooBhmO2Ke/mHJwSUASkATaIqC1o9TJSrjl53RiuzRDEtCUwLrqb1hevJj4wCQlqmiIMVTT8eVg6gmIz+KFtd+zp2oVZksJIaZEsqKHkxKh7WfxKmsF9+XcRlpQFtOy5qqfgJdqau3n1AjCb4B84JoWc85y7vBdBHzYBos7gflAOGB11hHCrxYY79wRDAZqgLuAZ1r0cwPw4gFi8lDIXXaUygO4dxF1NRsAu7NvgcNAeORgUtLvkqLQSw+57FYSkAQkgY4Q0NpRdsRWD7Z12c95cGzZlSTgNwTKLCXMzJ1Eo93M+PQH6BXaz29s72qGis/ivxUuorhuA44Wn8UNGEgKH8xRKdp+Fp+ScztCGIrAMsHGEJ8uh9Z+To0gLHaKN7Ej2LLUOXcJ57VBLM151HQ5MNNZZzpwhfPIaAkg7iaK46inO4+N7uvqOEAotcHADypWxGVHWVO1hqJ8cUp1nxhsOYqR5LTbiYxWu0GpwkJZRRKQBCQBScAjBLR2lB4xuuOduOznOj6k7EES8C8CdoedJ/JnsK3hd4bHXMQlCdf51wS6mLUFNWvYXLS4hRj8B4ABI0ck306qhoni/1uwgF/rfuBu5UVCf5+uhtZ+To0gtDjv/j1+AJk8QIi9KYcgdjTwEZDurFMAnAv86vz6RGANMBD4pUU/vYBtwNkq7xG67CjzcqZjbvirDdMNhIT2JqP7wz59GOTgkoAkIAlIAgcT0NpR6mQNXPZzOrFbmiEJaEbgi4oVvFP2MulBWUzKnInJIA6myaJXAuvzplNlbvuzeExIbwZnaPdZ/NOK93m/7HUujx/BmbHn+xSb1n7Om4IwFRDHTUUwmn33Be9wir+hwB7AXUEodisfaLlSruZe2rXtNmzWijYXOyAwjuzeYgdRFklAEpAEJAE9EdDaUepk7lIQa4738gAAIABJREFU6mQhpBn6JJDfmMujeVPA4WBy5izSg8XtJln0TGD1rttotLX9WTw4II5Ts7X7LP5n/SYW5c9kUMQQRqX8x6fotPZzagShODIqgsOINBMtS3tHRhcClzlTSYhdRlGCnDt/7zvvDe47MnoasLpF514/Mtq8Qyg2IVtL4it2CPuQ0f3AKfv02ZCDSwKSgCQgCYib3gbFdanxX52JlxSEnWk15Vw8SsDqsDI3dxp5TTlcGn89w2Iv9Gj/sjPPExD3B9fs/g8NVnGDrLViICakD4MztPss3mCr555d/1aCET3SfZHnJ+1Cj1r7OTUOVezy7QWubTEPkVJC7PAdKqiMiBQq1NaBe64tv78vqIwIQPPfFv2PAJZ5M6jMoe8QGkhOu0PeIXThwZVVJQFJQBLQioCLjjLJGdxsl9M+4fducd5h/+IQgdG0mo7acaQgVEtK1utyBMQxP3Hcr1dIf8al349RRorX9TNQ31TIluL/UmH+o007fXGHUBjz0O67KbLkMzf7WSICRMID3xQX/VyHjVQjCEXaCZE/UKSdEBFBRZkAiEO9h0o7IY6JipyCItl8k7OdEIBiW05EJhXHR0URaScCgJZZIMW9wxhvpp3YP8qo0K377xSmZT1AWLhvL5R2eHVlB5KAJCAJdEICLjpK8RJyu/NUiqDxCCD8mvieuK9+s/MFpN5JSUGo9xWS9vmEwI6GrSzc+yDBhhAlxUS8SbwDkkWPBMRn7z1Vn7Ct7A3sjiYiTFkEBUZT0bAFh/I5/J/P4lHBPTg+Y4bmEf+XFT3NhppvuSN1MoeHixAnviku+rkOG6lGEIrcgeIe4GZnYvoegDgOKoLMtExML5yrOPY5ymnVIGCdMyiMOAAsxhIiUAi/Y1sEltmXmP4p4D2niBSC0+uJ6ffPQ1iKyZSAKSidmqqvCAiMJTP7UQIDozsMWXYgCUgCkoAk4DkCLjrKQkDkxRX+xQgUASI6tkg0Jc4iXQyIAGh6L1IQ6n2FpH2aEzDbzczaM4lSazEjksYwJErcQJJFjwTqmgrYUvwMleatGAigR9xlZMdejNgJFHkIc6tW0WApxRQQQW3THgIMIZyYNZ8QU4Km0/mq8hPeKl3GBXFXcl7c5ZqO3XIwF/1ch+1UIwjFIOKunxBsQ4BKYKkz5YSthQU5ztQRN7X43pnO4C9HOL+3yfn11wdYfgkww7mbKI71iKAxb7gwO485ShGcprjgGWqqVhMadjhpWVMwGMQGpiySgCQgCUgCeiDgoqNsAIYD3wLifrp4USmiTYirEKcCK4AIPcyrHRs85uf8YK7SRElAFYHXip9jTfUXDAg/jltT7t53v1hVW1lJGwLNu4IfO3cFLUQGZ3NE0hgig8XBw9bLX6WvklP5IfFhAzgm9V5N13WXeRvz8u7niLCB3J42WTUkh91O7brvqfpyFZbSEkwJiUSfMZyIE4ZiMIp3ka4VF/2ca523UlutIOzwQF7uwKOO0m5vIi/nfpoadxMTfzEJSS2vT3p5JrJ7SUASkAQkgUMScNFRimsK85331MXLxiuBw50DiHvwLwDavoJ2b3096ufcM0G2kgT0Q2BT3U8sKZhHZEA007LEf31330s/VPRlSV1TPpuLl1Bl3qbsCvaMu4LusRdiNAQe0lCbvYl1ufdSZ8nn8KTRpEeJdOXaFIu9ifE7RxIeEMGj3Z9RJUaFGCxcsoi6nzaA3ZnfXAQ/MxgIHzSYlNvuclkUuujnOgxHCsI2EFqaCsndNQW7vZ6UjAlERIpTrrJIApKAJCAJ+JqAi45S3Be813l9QQQ5E18/4ZzDLOBk5z9fT6u98aUgbI+Q/HmXIVBjq2bmnolU26oYkzqRo8LFLSVZ9EJA7ArurlzB9vL/w+6wIO4DHq7sCqpPBVJp3saGvOkEGkMYKo6OBsZrNr1Hc6ewp3Enj3R7knhTYrvj1ny/hqKli/8Rgy1bGI0k33w7kUPFDTn1xUU/p77jNmpKQXgIhHU1P1GQNw+jMZSM7NkEBYkYOrJIApKAJCAJ+JKAG47yBudx0V+cO4L7Ihc8A6wFXvLlfFSOLQWhSlCyWucmIK72PFf4GL/UbeDEqDO4PunWzj1hP5tdbdNethQ9Q1Wj2BUMbLEr6Pr1K18dHX29+Hm+rf6Mm1PGcUzECe2uQN6M6Zi3/9V6PYOBkF69yZgqYnGqL274OfWdt1JTCsJ28JUVv0FF2XsEBWeR0f0RjEYRKFUWSUASkAQkAV8R0NpR+mqeB4wrBaFOFkKa4VsC66q/YXnxYiVXnIgqGmIM9a1BcnSFgN1hU3YFd5S/5dwV7KncFYwIFpnq3Cvi6Oja3HupV46OjiFdo6BBa6u/5uXiZzgr5kIuS7i+XeN3jbsNW2VFm/UCYuPIfkzE11RftPZzUhC2szZi2zs/dzYNdZuIjD6ZpNTbVZ0nVr/ksqYkIAlIApKAKwRcdJQif5AIFy2CyYgS5oyQLYKliTyET7oytg/rSkHoQ/hyaH0QKLOUMHPPJBodZsanP0Cv0H76MKyLW1HblMfmoiVUN+7AaDDRM+5KusWcj9EDQRn/OToaytCseZocHc1vzGVG7kR6hx7G+PTp7a6uskO4Yxs49k9hpzRUdgj7kDFVBLVWX1z0c+o7bqOmFIQqENqs1eTuuhertZzElFFExw5T0UpWkQQkAUlAEvAGARcd5VfA98BUpy0iYvZIZ9TRU5yRr0UaCr0XKQj1vkLSPq8SsDvsPJE/g20NvzM85mIuSZAB/7wKXEXnYlcwp+JDdpS/jQMr0cG9ODz5NiKC0lW0Vl9la+kr7K78iISwgQxMneT1jRnxrN2zU7gJAwt6vIDRcOgoocodwueebl0QyjuE6hfaAzW97ijNDdvIy3lQUfoZ3R4kJFTkM5ZFEpAEJAFJQGsCLgrCEqcA/AgwAaWAyHX7HDAOGA2IXUS9F6/7Ob0DkPZ1bQJfVKzgnbKXyQjqxqTMmQS2E6mya9Py/uxrGnPZUix2BXcqu4K94q5SdgUN7YgndyxrPjo6mXpLAYcn3UZ6lMgY5N3yWN5DbDP/wf1Z80kNyjjkYCLK6O57x2MtFmlunUVGGfXuArXRuyaOsqp8FSVFLxAYGE9m9mwCAmWIY5+sthxUEpAEujQBFwVhPXAO8I0zmqjYMUwGygCxQ/iJ8xip3plq4uf0DkHa1zUJiCN8j+ZNUXZg7s2cTVoH7qV1TYKem7XdYW2xK2gjOqS3clcw3MO7ggdaXNmwlQ17HyTQKI6OiqijcZ6bVCs9/a/0FT6v/IgRSWMY0s7dRSEIxT1Ce001wd17YK2swJSQQPTpMg+hVxeplc41cZQislVR/tPUVq8hNPxI0jLv88qbEK3hyfEkAUlAEvAnAi4Kwi3OKKJzgYVOUSgS1ItyGbDEKRD1jkATP6d3CNK+rkfA6rAyN3cqeU27uTT+eobFXtj1IOhkxjWNu5W8gjWNOc5dwWvoFnOuZp+Ft5a+rASu0eLo6M+161ha+DgnRw3j2qRRh1yBhq1/sHf2Q4T2P5z0yfd7ZLVc9HMdHlPeIXQRod1udiatzyU24TLiE69ysQdZXRKQBCQBSaAjBFx0lMKTC9H3KzDQeXz0Zef4i5zHRf3hYrgUhB15aGRbvyXwftnrfFrxPr1D+vOf9Pvbvc/ltxPVseFiV3BXxfvsLP8fDmzEhPRVEsaHB6VpanXLo6NHJN1OWpQ45OGdUmYp5v7dd5EV3IN7M0XK2rZLyasvUfXZxyTe8G+izxjuEYNc9HMdHlMKQjcQNjXmk5czFbu9gdSMSYRHHuNGL7KJJCAJSAKSgDsE3HCU4lOD2BUUeQhFZNF95UHgB2CFO3Zo3EYKQo2By+F8T2BHw1YW7n2QYEMIU7PmqkoS7nurO5cF1Y05Sl7BmiaxKxhE7/hryIo+R7NdwQNpVjRs5Qfl6GiYM+qod46OilOBk3NG02CrY2HPZZgM4gr6wUW5PzhhLNaKCro/toTAmBiPPABu+LkOjSsFoZv4aqs3ULh3IUZjOJnZszAFiSspskgCkoAkIAl4m4DWjtLb81HZvxSEKkHJap2DgNluZtaeSZRai1Xd4+ocs9bPLMSu4M7yd9lV8Z5zV7CfclcwLCjF50ZuLVnO7qqVJIQdw8DUiV6LOvp0/hy21G9kUsYMuoe0HkxSpJvIe+R+Qvr0I2OKeMfomaK1n5OCsAPrVlr0KpXlHxIc3J307g9jNAZ1oDfZVBKQBCQBSUANATccpXhlK6KJngSI18nlzrQTzwKVasbUQR0pCHWwCNIE7Qi8Wvws31V/yYDw47g15W6vfejXbkb+M1J14y4lr2Bt0x6MhmD6xF9LZvRwn+0KHkjOZm90Rh0txJtHR1eUv434d1XCTZwWI2KTHVxK33iFyk8+IuH6G4kZdq7HFtkNP9ehsaUg7AA+h8NG/p6ZNNT/TmT0aSSnjelAb7KpJCAJSAKSgBoCLjrKnsBqIBH4DhBxwcWRjqFAMXA6sEPNuD6uIwWhjxdADq8dgU11P7GkYB5RAdFMzZpHZICM6q4FfbvDotwTFPcFHdiJDen//+xdB3hb1dl+tSXLlry3HWfvRUKgYZYRRqHQ9m9pSwuUllkKBUIgIWQQQoAEKKNhz9JJKVAoI6WUEVLIIIPsZcd727Ksvf7nO1e2Jcfjal1rnJPHj2Pp3HO+854rffc938LUguuRpoo/L7gO235sqVvJXEdPKV8HjTIr6hDttmzH+oYHcVLG6biy4Mbjxie30mOLboG7pRkVj/weyuycqMkQop6LeF5OCCOE0O3uRE3lYnjcHcgvuhaGzLMiHJFfzhHgCHAEOAJDIRCiovwngNH+0hN1AeNS5eT3AFQBuCQBEOeEMAE2iYsYOQJmTxdWV9+BLo8JNxTdgen6OZEPykcYFgGT/Qj2ND+NbmcNFDINxudejjLDOXFjFRxoAftbXkG16X3kpc3BrKKFUbci0714Z+W1KFAVY/koSlId3OxVlahdsRiaseNRds+qYTEOpUOIei6UoQfsywlhxBACNusB1B27l31oSkathFY3Jgqj8iE4AhwBjgBHYCAEQlSUXQCuBPDmAGP9AMBLABLB/MAJIf84JD0CZHF5tvER7LRswSmGs3B5/rVJv+aRXiBZBY+0v4Gqjn8KVkHdVJZBNE2VP9KiDTt/kOtowa9RnHHasNeE2uGeqpvR7m7ButEvQKdIC7q87e9/Qce7byHnssuRdUF0y6GEqOdCXdZx/TkhjBhCYYDO9vfQ2vQqlKo8oWi9Ij1KI/NhOAIcAY4ARyAQgRAVpQkAlZ74+wAo/hDA8wCMCYAwJ4QJsElcxMgQ+LLrU7za/BRylflYUv4gtHJdZAPyq4dEgKyCVFfQ4qyFQqbFhNzLUWo4O66tgv0X1GHbhy1198bMdZRqEVJNwluKl2Ji2rTe6enwonrxbXA1NmDU2sehyosugQ5Rz0V8p3NCGDGEwgBC0frH0d31P6TpZ6OojLIeyaM0Oh+GI8AR4AhwBHoQCFFRvgVgot9l9FgAiqMAfABgn79AfbwDzAlhvO8Qly8iBNpcLVhdvQgOnx23lazAWB19bHmLBQJUz+9o+xuo7CSPeh+yddMxNf9a6FQUap14rdd1VD8Hswqj6zr6Uce7+Efba7g05ydYkNUXXeCorUHN0jugGTUaZSvXRB20EPVcxPNzQhgxhH0DUNH6msq74XLWITv3h8jOI28k3jgCHAGOAEcgmgiEqCgrAHwMoBTA1/6kMnSUS4FJNQDO9scRihFxCoAnAHzLn52UrIsrAXhEXPx9AIsB0BGz1V//kJSERcS11IUTQpFA8W6Jh4DX58VjdatwyL4PCzIvwaW5P0m8RSSIxJ32Q6yuoMVVB4VMh4m5P0OJ4ayox99JCYfba2dZR22uJkwvuAlFGZRQOjrtkG0fHq1biVn6ebi26LbeQdvefB0db7+B7P/7MbIvujQ6kwWMEqKei3h+TggjhjB4AKejDjVVd8PndaCo7C7o02dGeQY+HEeAI8ARSG0EwlCUVBPoan9x+iIADQC+AkDWw0kAPhOBKKWw2wNgL4AHAVD20ocBPApg6TDX/wrAkwAe8pNTGosykNF15NIqpnFCKAYl3ichEeixwpSqR2FR2WooZcqEXEc8C01WwSPtr6Oq811mFczRzcAUZhXMjWexRcvWbtuHrXUroZKnYz7LOhqdAvFUD/P2o7+AUZmF+yvW98pTffdCOOtqUf7AI1AXFouWU2zHMPSc2KEH7McJYUTwDXxxd9eXaKz7HeSKdBZPqEpQE3wMoOFDcgQ4AhyBiBGIoqIkC93fAChECEXWvUUAyNWUEtVQo7+pEjFVau55rf9Q9LRVCYCOlp8TMc9gXTghjAA8fmn8IlDvqMEDNfTxAu4qW4NiTVn8CpugknXaDmJ389OwuuqhlOswIffnKMn4dkJbBQfaiv0tL6Pa9AHy9HMxq/D2qK3vvuo7UO+swZqKpxgxdNbXoXrJ7VCXlqP8Pjrni36Lop4TJRwnhKJgCr1TS9OrMLW/B412DEpHrYRMrgp9EH4FR4AjwBHgCByHQBQVZSiEkKyI9QB+HCBQOQCKS/wugHcG2SoqXkUWRSpQ5YxgOzkhjAA8fml8IuD2ufFQzd2odR7D93N+hnOyLopPQRNUKsrCebj9bzjWSRV2fMhJm4mpeddAmyRWwf7bwlxHqxfB5m7G9ILfoCjjlKjs3B+ansb/zJ/g+qKFmKGfi/Z/von2f/wV2d/7IbIviU14WBT1nCgMOCEUBVPonXw+N+qOrYLddgCGzHOQX0QeQ7wlOwI+nxeN3ZtQbdoAu6sFWlUeyo0LUJg+nycZSvbN5+sbFAGKD9ravQmfmTaAEkfkqPJwunEB5qbPhzyM5FtRVJShEEIqYk/+QmQRDGwUA0ivrR0EgFcATAXwAoC7AVCFZ4plvBXAphBuG04IQwCLd00MBN5u+zM+7Hgb47WTcUvJPWF9HyTGSqWXkgq3U11Bq6uRZeCcmHsFijPOiJrVTPoViZux3bYXW+vujarr6Gemf+MvLS/ggqzv4eKcy1Cz/C44jlWhbPVaaEpiY9GOop4TBRwnhKJgCq+T29UuFK33mJBfdAMMmWeENxC/KiEQIDK4q/FxNFs2s1o+QpOxf/n6eZhReDMnhQmxk1zIaCJAZPDFxsexw7IZ3oDPhRwyFqR/deHNIT8ERlFRhkIIXQDuAPC7fvjUAngVwJJBcPsQwHy/Sym5mLb5XU3nAhjvT3IjBvKwCGG0ybgYQXkfjoAYBI7YDuCRuhXQyLS4u/whdlDEW+QIkFXwUNtfmOskWQVz02ZjSv410CqzIx88QUbY1/ISakwfIl9/ImYW3hYxCa62V+KB2sWYrJuB61W/xLFFt0BVVIzy+x+OeOzBII2inhO1a5wQioIp/E42y17UVd8HmUyB0or7oNFS+AlvyYhAg3kjdjetDyCDfauUQY5pBTdGNfNVMmLI15R8CGw2b8SrTesDyGDfGuWQ44qCGzEvxIxwUVSUUhDCDQDOBXCBv8wFAWDwu5pSopl7Btl1sjouD3yPyhuF0mJBxkOZn/flCAyGgN1rw/3Vd6LV3Ywr8m/AyQZ+YB6Nu4Vq8u1pfsZvFdRjUu6VKMo4LWakJRoyx2KMYNfRm1GUQWdy4TePz41bj/4CapkaS/Zfgva//QlZF38POT+4LPxBh7kyinpOlIycEIqCKbJOHW3voK35j1CpClA6+n4oFPrIBuRXxw0CLo8FXY4jMNkPo6rzX3B7B8sgL0Omdjzmld4bN7JzQTgCUiCwrnYZjtoPDjKVDGO047EwxM+FCEXZwo7Gh28aAOkik8qQy+jv/WUmAkcezmX0rwB+CCANgD3gwo/8GUbFBqCEbCGMBRkfHlLegyMwPAJ/bH4WX3R9jJn6E3FtFCw4w8+Y3D2IAB1mVkFySCCr4AmYkv+rlLIK9t/hdusebK1fBZU8A/PL10acdXRtzT2odBzCdf8sh35XNcpWPgDNKKpqFJsmQs9FdWJOCKMK58CD0aluY92jsJg3Q58+B4WllPmIF62XAPqoTuH1udHtqIHJcYgRwE77YZaxS2zTKLJxxui+lMVir+P9OAKJjMDiyhtg8nQMuoRMRTbuD/FzIUJRknVNDCHskYtqCQ7XKKlMHYDAAmkUPFI9TFKZHksfEUJbwCT/AdDuJ4vDzU3vh0wIhybjgFGRhYuyf4h8dRHyVYUwKDJTzpIgBnjeJ7oIfGPZhqca1sKgMOLu8rXIUJDBnLdwEaCYOaorSIlUlHI9JuVdhaL0U/lnGcC+lhdRY9rAwnZmFt4aESZ/a3kZn5g+wIVvAtOa8zHqocciGm+4/Rah54YbIqT3OSEMCa7wO3s9Vlaf0OVsQHbej5GdG/0iluFLx6/sjwCReLu7lRE/k+Mw+93lOAqvj8KI+ppOmQ+jdhz7qev6L7qdFE400HMoWQgnYF6pmOdOvh8cgeRBgDIIVjmODLIgshBOwMIQPxdSK0q/8JQXn2IIye/f7H9tIQAy+w9VdoJiBbcA+A4ASvVHzeh3GV0H4D6Rux0yIRyOjPefl2K5eshhvqqo9/8FqiKkKciQyhtHIDIEzJ4uUAp/s8eEG4ruwHT9nMgGTOGrySp4qO1PjPBQo1ILU/J+CY2SypzyRggEuo7OKLgFhRnfChuYr8yf45Wm3+OEr4BLVRcj90eXhz2WmAul1nOcEIrZlSj1cdhrUFu1FD6fE8XlS5Cmnx6lkfkwkSLg9lphsguunz0E0OkJrhdNWbqMmrG9BNCoHQ91wMnmUDGEJN+0/BtRbDg9UlH59RyBhEGADlYerL0b1Y6jA8ocBzGEoWBJT1lUlH63v4zEGACP+JPMBBamPwzgUwC/DBj8LQAnUZk1AK3+pDJTAEwAMLj5NFi6kAmhYCE8NKixlKyCc9NPQbOrAc2uRjQ7G2D3BRox+wRIl2cgT10IIod9ZLEIeaoCaOTaUHDkfVMUAfo+eLbxEey0bMEphrNwef61KYpE5Mtus+5msYJ2dwvLpjkp7xf+bObJ8lgfOUY9IwS7jlLBejqPC701Oeuxsvo2FNcAC0ethnbM2NAHCeEKTghDACuga8iKMrxpIr/KbNqIpvonoVAYWNF6pYpKU/EmJQJenwfdzhqB/PkJoMVJnmB9lj0ZFEjXlMOoEax/mdpxSFMVDenqG5xllMYKthSWGc7HpLwrY+piICWOfC6OwHAI/LvjHbzZ9kdoZBq4fC542WeCfijNUlxkGR1uCf3fJxJHiWDomLkTwPP+khOegI5VAD4BcFXAa2Reo7IUP/LHEn7hLzvxTQgChKznQo0hpAd2stwQQWxyNaDF2ch+098tria4+3lI9MhObr+CZbGIEcYe4pijyodSpgxhibxrMiPwZdeneLX5KeQq87Gk/CFo+UFCyNvt9tpwsPVPqO36N7uWXCEn510dcXxcyIIk2AU9rqMF+pMws4gq/oTenO2tuLP+JngUwCMT/wBljOuLc0IY+h7RFSEryvCmic5VLY0vwdTxITS68SgdtRwyrjCjA+wAo9ADjsPdhk6/26fg+lkJr88R1FurzBUsf5rx7LdBMxoKuTpkuXrqEJILh83VCp0ql7lxVLb/E25fN8Zl/whjsr8f8rj8Ao5AoiFw0LoHj9XfB6VMhYUlK9HgqmN1CNtdrchW5cZLHcJEgjVkPRecZTQyMk5jdbjbBGui029R9JNFqi3ZV1KkD1KyAFMpAWZRZD+FvcQxS5kTcrmRRNosLmswAm2uZqyuvhMOnx23lazAWN1EDlGICLRZv/FbBVtZohQiggXpJ/NDZhE4kuvopuo7mEV1RuFvUZh+soirgrt0fvQhnva+hOoxwOKyB1CmiV1CGZqZE8KQt4hdELKiDG+a6FxFRetrj62Ew3YIxqzzkFf4i+gMzEcBnZ512Y/2un0SAXT0S2ihlOtgCHT91IyL+ekaybSlbhU8Phsm5V6F8szz+W5xBJIWgU53Ox6oWYwujwlX5N+Ik6PsKi21ooyTjQpLzwXWIYwGGR8IC7fPDXrg729VJOLY6aG8Occ3Oiggd9NAotjjjpqhMPKH3Di56aIhBt2Dj9WtwiH7PpyXdQkuyQnMyxSNGZJ7DAppEayClJgYjAROyv1F2K6PyY3W4KsjN9tt9fcxMn3KqIeDQn7EYFL34Cr8u3APNp8C/DTvGpxqPFvMZWH3kVrPJYuzcViKMuxdisKFblcbqivvgtdjRkHxTcgwnhqFUVNrCLLG9bp++i2A/ZO6kGNauro8IO5vHPSq4hHJ8kp+7F83PMAS00wvuInXJEyt2zVlVkv1mn5XtwpH7AdwmuEc/CT/V1Ffu9SKMuoLCG/AhNNztEyH187cTfssi33uqN3entw8wYBoZboBktsIFsY0XrYpvLtnBK/6qONd/KPtNZSqK7CojLwGuBux2O1ote7E3uZnYXe3QaUwMKtgONYtsfMle7+9zS8wd1si1TMLfyt6uZ6uLlTech2OzkrDW9+xSBIDK7We44RQ9O0Q/Y5Wyzeor74fMpnaX7SeMpjzNhgCdne7P+5PKPtAWT89x7l+5vTG/Qmun2OgkFOpsfhozZZt2NnwMBNmZtHtyOcZ1uJjY7gUUUPg7y2v4GPT+xilGYvbSldAJVNFbeyegaRWlFFfQHgDJiQhHGqpFk93UEKbwOQ25Fo4UEtXGIQ4RXI/pZhFdc//C6GOo+/68LY4+a6qd9QwbwFqd5WtQbGGP+eI2WWXx4qDba+hrutj1r0w/VsscUxgIjsx4/A+wQiQF5ngOtoakuuo6ZP/oOXl5yC74HQ8POczlKpHYUn5gzGFV2o9xwlhTLdz+MHbW99Ce8tfoFIXoaxiNeQKKlXFG/l7E+HrTfzCXD+DXY8UMi0M2rHI9Cd+IQKYCOmW682fY3fT7yGXqXBC8WJk6yhPBW8cgcR4t6NVAAAgAElEQVRHYJv5f3ih6THo5RlYXLaGxQrGokmtKGOxhjDGTDpCOBgGFPvd5ekcILFNI0t044Z7wEspLpHFKQaUzKD/56ryoeBWqTBuucguoURSa2uWotZ5DN/P+RnOyboosgFT5OpWyw7saXkWDnc71AqjP1aQkhTzFg0EKBZzW/1qZnE9pXydKJJdt+5+2HbvQvGd92CV9kmWfOuRMS/F9BBKaj3HCWE07q4IxiC3x4bah2Ht3gZ9xjwUlkRWODMCUUbsUsH1s6634DuRQHIFDc7SKUO6uqzP9VMzHunqkhFx/YwGUNWdH2B/68tQyHQ4seQeGLSUwZ43jkDiItDgrMNDNUvg9Dnx6+K7MCVtZswWI7WijNlCQhs4ZQjhULBQPFq7u/X45DbOBrS5W+AboA6skNwm358FtS+xDZHFTGU2T24T2n0ouvdbrX/Ghs63MV43BbcUL+U4D4Ocy2PBgdY/oN5MSYrJKngKy0zOrYKibznRHfc2P89iMsnyOqPwliGv83R3M3dRRZoeFY89jWeaHsEuy1bcXrIypsmRpNZzYgkhmTCe6JdqmypsB6ba7g/oCgDLB0F5CYA1/vdeBnDlAP0mA9gvcncTWlF6PBbUVi6By9WEnPzLkZVzschlJ2Y3h7uj1/JH2T8p4QolWwlsGkV2UNwfuX4qkyxF9ZH2N3Ck/XUW4DyvdAX06pLE3FAudcojYPfa8GDN3Why1eOi7B/iwuwfxBQTqRVlTBcjfvCE1nPilxl+T7JItbqa0UJlM1gm1L76iqZ+ycV6ZiGX5h73U8Gy6HdFVRWB3FP991r4QqXolUdsB/BI3QpWo/LusodYtlneBkegxbKdxQpSEjyyCk7J+xXy00/kkMUIgUDX0ZmFt6IgfXALbNfnn6D5hadhOPNs5F91DT5ofxP/bP8rfpD7c5yd+Z0YSRifWUapGO8ef0FecpilSowUBPUogMBivP1BKQVAP4HtUgB3ApgNYEcAIaSd6J9qk94fOIjgePgTXlE67Mf8Res9KClfCp0+OdwIPV5HsOun4zALjg5sCpmGxfqxsg9aoeyDVpkdsw9ZvAxMblEHWl9Ftel9aJTZmFdyLytTwRtHIJEQoPuY3ES/7v4SU9Nm44aiO2JuCeCEMJHukPiQ1c6S2zT6S2b0EUUijRZv94BCauW6vtqKqkIWr9hTQkPHwzsG3Vg6ILq/+k60uptxRf4NONlwRnzcBHEohcvTzZ4D6s2fMemKMk5lmchVCipdylssERDrOlr/6IOw7tyO4oWLkTZtJvZZd+GJ+vsxN30+ri68OWYiSq3nxFgIKRp4EYBRALr8K6e/yQJYGPCaGFD+BYB848j619PIQjgNwFwxAwzSJ+EJIa2rq/NTNDc8BYXC6C9an1ikiFw/La76oLi/bmc1fPAGbBu5fpb6a/4JRd/16lLIZYoItj9xLyXM9jQ/zZQBFb4/sWQFTyWduNuZkpJ/3Pke/t76KnKUeSxphF6CBxmpFWWcbGxS6Lk4wTJIjG6PmZHFPqsi1VpsZBZGZ7/EZT0XUmmM4HjFIpbsJldVAHUYNWzjEZdwZfpj87P4outjzNLPwzWFqRcGIxY3SjK3r/l5v1UwE1Pyf4V8fSSPwmJn5v16ENjb/Bxqu/6DwvT5mDEAufNYrai8+VrINRqMfuwZyJRKWD3dWFj5K1Y2Z+Wox2IGptR6TgwhpGOLegA/Dlh1OYBjAL4L4B2RaOQAaABwH4B7OSEcGLXmhufR1fkRtLqJKBl1T1wXrXe4O4Pq/XU5jrA6gIFNo8gKiPsbx2LlqA4gb30IeH0e7Gx8FC2WrcjQVGBu8TKo+Okzv0USAIHDtv2sxIRcJsfCkntRrh0tidRSK0pJFjX8JJwQDo9RVHuQ9ZtcTameIpFDVmfRTxxbXU3wDBA1I4MMQnIbIftpn1WxkLlNJntym12WbXi6YS0MCiOWlq9lbre8BSNAVsH9ra+gwfw5e6Mo43RMyr2CWwVH4EahGo+bqhexrKMzC29DQfq8ICnMmzai6dknkXHamSj45fW97604div7Tlg7+vmYHYJKrefEEMJmAOv9FsFAoCz+19aK3MNrATwDYAKAQ/0I4Y8AljaM6gNsAXA3gE9FjkvdkkZRer1O1B1bAYf9KIzZFyKv4IoQYIhdV4/XiS5HpWD9cwhlH+gDFNjkMnWA6+c4lv1To8zhMRgitoXw3d7wINpte5CpnYQ5xYvjqlyGiCXwLimGgMndydLJ0wPz5fnXsrpMUjWpFaVU6xpmnqTRc3GCZ0RieHwedLhbj4tVpIdESnozcHIbBct4GmhZ7CmhkQzJbcyeLtxXfQfLwHhD0SJM158QEcbJeHFz91bsbXkeTk8n6MB8Sv41yOM4jehWt1l3YVv9/Sx2c3752qAkPg1PPAzLti0o+u0i6Gf13c8vNT6JLd0bcVPRYkzRxyaBmtR6TgwhdAG4A8Dv+u1YLYBXAVCCGDGNiqkYAczp15nS+zj9MYoUdXy7vw9Vat8sZuBkIoS0XperBTWVi+H1dKOg5BZkGL4lEobodCM3RqurAZ1E/hgBPIxuB7l+BuYQkrEkKMaAkg+UBTRVXT+jgTxZV7fW3QeytOamzcasotsh56nSowEtHyPKCNDD8ON19+GQfR/mG76Nn+VfF+UZhh5OakUp6eIGn4wTwjjZiOHEcHmdLH6OXFBZ3GJAkhsqpzFQU8nUfqIYnAU1X12EdHlG3B+skjX12cZHsNOyRZKi3cPtQby97/SYsb/lZTR2f8FEK844ExNzfw6VQh9voqakPHuan2U1HwNdR712Oyp/cw1zEx39+LOQqfpq6v6383283voKLs7+ES7I/n5MMJNaz0lFCIsAEIGkhDLrhkGOCvFREpudACgJzUDtuAym9GWUTM3SvRMNNQ9AJtew+oRqTewyUDo9XTDZBaufQACPwu0lA3Bfo5MTlvTFTwANmrHcrTEGNxwpjS11K2Fx1rIvpukFNyVsaY0YwMOHjBME/tH6R3zU+Q7KNBW4veReyWOmpFaUcQI7J4RxshGRiEEJV3riE4UsqBSvSO6ojbD107s98+jk+l6rIrmgMldUcklVF0Inj4/axf/r+gR/aH4aucp8LCl/CNokywoeyZ43dW/GvpYX4PSYQBnUBasg5VbkLV4QEFxHqWB9W6/raPfmL9G4/ndI/9apKLzupiBRj9oOYl3dMkxPm4MbislmFv0mtZ4TQwjJZfT3AKjMRGALxWWUrICUlZQS01CBueEazUe1FyhWUUxLSkXZ3vIG2ltfh0pdgrLRqyGPwhcsuSaaHVVBsX82N21xX6OC6b1ZP/0EUKvMjfsTSjE3SiL0sbvbsbl2GXPJLTWcy4rS8tTnibBzqSHj9u7NeK7xEaTJ9SyJDLnASd2kVpRSr2+Q+ZJSz8UJtiMuBh1qW7zmXqsixSv2xC42uxrh8pEj1fGNYvWEchmUAVUomSHELxZAJVFymzZXM1ZX3wmHz47bSlbEtDbbiG9UCALQYfv+lpfQ2P0/dlWJ4SxMyPkZP0wPAUMpu7ZaduLrhjV+19F1aH/mBRApLPzN7UifE1wCxOl14rajv0C6Ih1rKp6OyTOa1HpODCGkpDJ1AH4SsDFlAKpDSCpDnwZyPT1d5OY+6SeERCDFtKRUlKxofc1DsFp2IN3wLRQU3xzSTUcKhlw/e9w+6bfZcayf6yegVxUHF3zXkOunUgzuvE+MELA6G7G5bjk7URyd9T2Mz7ksRjPxYTkC4hFoctazeoN2nw03Ft2JaSN0yi21ohSPUEx7JqWeiyliSTK41+cNSG7T54JK7qgtriZ4h0luE2hVJOKYraTkNtHJ7E2yPVa3irmPn5d1CS7JCXxUTJINCGMZjd1fYl/Li3B5uqBV5mBK3rXIjVGsWRji8UsGQaDXdTRtPvQrt7Feo594DnK1+rgr1tTchRpHFe4b9SSyY1AyTGo9J4YQUtkJsocSOTP7EVnozxQqpuxEBYBKADcCeErEXUgpKPcC2A5ArGNu0ipKj6ebxRO6XS3ILbgCmdkXDgohuRv2uX0K7p/9XT9VCgNz+8xkNf/GQXD95D7sIu5LybsQed9Sdy/bQzpVrMi6SHIZ+IQcgR4EHF471tbeg3pnDS7I+j4uzqFcYCPTpFaUI7PK42ZNWj0XJ/gmpBgUz9vmakGLPwsqWRN7LIsd7rYBk9soQMltCvyWxT6rYr66EJmK7GEPnokEbu3ehM9MG1DvqGEHRNmKXCwb9Yjk7uPxtmkOtwn7W19CU/eXTLRSw9mYkHs5lHHi2htveMWbPC6PFZtqFsLhbkfB34CCzJNReONvBxTzT83PY2PXR6y0yuwhCtuHu0ap9ZwYQkiF6Ymg7QZAhempjuAj/iQzgYXpD/szg/6y3+LvArCKMusCCE5LKSSZeRfAawDoeqrKfau/cP0pALaKBDKpFaXddhR1x5aDLIYlo5ZBlzYRXp+LWfsCCaDV1RgEF7l+UhkDIe5PKPiuU+YN+2UvEnPeTQIEOm0HsLV+Nbw+J6bmX4cSw7clmJVPwREIRoC8DV5uoqxqX2CybgZ+XXxXzIvPD7UHUivKOLkfklrPxQnGSSUGubVReYyeWMXAJDddHtOAa1XLNMz1lOIUyZpIsYqCS2oh9PIMRjBfbHwcOyyb4Q2oMSyDHLP181ihbipDk2qNviOJBDKroNcMCrOZmn8tctJmpBoUCb/eVssOfN3wABTdwGzXdcg+ceDnLqq1STU3F2R+F5fm/jTq65Zaz4khhLTIKQDIjZPSXVKKrOf9JScC005WAfgEwFX9UNkBgJjK+QOgpQXwJwDknEuBKHYA5F5KSWOE4xVxLakVJX3RNLe9jYbWv8Cp0MCrKYbZWQMfq9TR16iweWDilwzNKO76Ke7+iete5Ne+veEh+ODFzMLfoiAGJ1FxDQAXbsQR+LTzQ/y19SVkK3NxV9n9I15bTGpFOeIbIAiQ1HouTjBOGTFsXitanI2stmJPYhtmXXQ1gN4bqFHccJo8Ha3upgHfl0OOKwpuxLwMShKfOo1qMhMRbLYIifFLDef4rYK85nIi3gU+lwtfvnsVzNM9KEz7FmYUUxqU41udoxqraxZhgm4qfltyT9SXKrWeE0sIo77QKA+YVIqSipaa7EeCEr/QiVNgU8nTe61+ggWQXD/TowwrHy5eEGg0/w+7mh6HDAqcULyInzrGy8akgByV9kN4pHYFqOD2baUrUaEdO+KrllpRjviCIyCE5FlyoHsTvjFtQJerBQZVHqYbF2Bi+nyewThONjaexKAD6G5PF3rIoWBVFLKg0m+Xj9JBDNZkGKMdj4Wl98bTkmImC2HV2L2JlZMQrIJ5zJMnJ21azObkA8ceAcuOr1H31EOou0kFl86FWUULka+fe9zE5K59+9GrQQch68a8EHXLuNR6jhPC2N9bQ87g9bn7XD8dQtwfJYIJbDIoQdY+o2YMPObtUDhbkZt9EfIKfjbC0vPppUSg1vQf7G15DgqZBnNKliJTO17K6flcKYgAFZpeU30XOj3t+HHeL3G68dy4QEFqRRkXiw7DQkhk8P3Gx3HEspl5GAiNqL0MY/XzcEEhJSpLPfe+ONnPhBODYgcXV93ACs8P1igG8f7R6xNubaEKLFgFX0CzZQu7tMy4AONzfgplFLLBhyoL7x9dBJpeeBrmzz+B+qaLsT/zHagVmTilfN2ARhc6LD1s3497yh9GkTq65eGk1nOcEEb3PhpyNDpNsrlb/HF/h5gFkEpAUDxgYEtTFbJkL8z9kyV+qQDFA1JzOZtQU7kEXq8FhSW3Id0wT8IV8KlGGoHKjn/iUNufoJTrcWLJcmRoxFZmGWnJ+fyJhgA9/D1Rfz8O2HbjpIzTcUX+DXETfyy1ooyTvQvZE2a/eSP+3bQ+gAz2rYRivs4tuBGTUsy9L072MmHFWFe7DEfth8iDeYA1kIVwAhaW9q9SlrDLPU5wwSr4hd8q2A2dMp9ZBbPTpibPIlN4JT63G5W3XAevw8GK0e8zv4p68ycoyjgN0wt+fRwyb7T+Af/p/BeuyL8RJxvEFlIQB7DUeo4TQnH7ElYvl8eCLscRRgA7WcH3wywFcWCjB/vAuD/6v1qRMeR8FvPXaKh9CDK5zl+0vjgs+fhFiYnAwdY/oarzn+zUal7pSqSpChJzIVzquEbg7ba/4MOOt1CiLscdpauglmviRl6pFWWcLDxkQvh67TI02A8OIr4MRdrx+GGKuPfFyR4mvBibzRvxatP6oIQyPYtK9hhCh7sDe1ueR4tFKEdQbjwf43J+zK2CCX9X9y3AunsX6tfdj7SZs1F8652g53gqWO/wtGNW0R3I188JWu1W8ya82PQ4zjAuwGV5V0cVCan1HCeEUdo+cv3sdtTA5DjUm/nT4qoPGp3iv5jrJ1n+/AXfKRFMOEXH25r/io62N6HWlKG0YlVUitZHCQo+TIwRoBPKfS3Po7brP+x08sTSFdAqs2M8Kx8+lRDYZdmKpxvWQSdPw52l97MMg/HUpFaUcbL2kAnhC5U3wOLpGFR8tTwNV1f8Hmo5T34RJ3sc92KQ50BfllGyEtIP2ZtlmJWkWUZJ5zaYP8f+1ldYGSidqkCwCuoo3yJvyYRA88vPoeuT/yD/l9fDcNqZbGktlu3Y3vAgNIoszC9fG+Q62upqxrJjN6NCMxaLylZHFQqp9RwnhGFsH3052N2tQQXfuxxHj3P9pIf1HrdPIoBUAkIhP764ZRgisBIU9TVrYLN8gwzDqcgv/nVYxDKcufk1I48A7T8lmaE01+nqMuY+ypMKjfy+JIMEVOz6gZolLNPgdYULMTP9+GD6kV6n1IpypNfrnz9kQihYCAdz7xNGJTI41XAWZhrPZwlneOMIDIeAx+vGFy2vYKP5c3T6HMiUaXBqxmk4Je9KKOTK4S5PqPft7nbsbX4OrVYqjS3zWwUv41bBhNpFccL6vF5U3XI9PFYLRj/2DBTpfYkadzc9hXrzpyjKOB3TC6isutCIDyyqvBYOrw0Pj30JKn94l7gZh+4ltZ5LaUJID9WUIaratAF2Vwu0qjyUGxegsF/2NbfXKmT99Lt90m9nv6BqKjpqDIj7o7p/aoUhGvfEoGN43F1C0Xp3G/IKroYxe0FM5+ODxxcCZJXe3rAWbdadzOJMiWZ4QHt87VGiSeP0OkAxQrXOY1iQeQkuzf1JXC5BakUZJyCETAiHiyEs1k5khNELN7PxjEufh9mZ30EhT1gVJ1sef2Kw56a6x2ExU4mFvkRFRJb0GfNQWJIciYroQZ8IwIHWV0HPgJTbYWr+9cjSTYq/TeESRQUB6749qH9wFXTTZqBk4ZKgMSn7v+A62oHZRXcgL8B19Pf1D2CPdQcWla6OahZuqfVcyhJCZmFpfJzVjemffS1LNxX5+nlC/J/jMCzOuqAAanL9TNeU97p9ZmrHQXD9lD5bm912GLVVy9mNW1qxAlodzzwZlW+GBBnE7bXj6/o16LQfQLZuOitJ0ZOAKEGWwMWMEwToAegPzU/hS/NnmKibipuKl0AhU8SJdMFiSK0o4wSEkAlhcJbRPve+wCyjVk8XvjH9G7voYNRf3qhIOwGzMi/EWP2JkMfpPRAne5JyYphNG9FUT1lEe8hgIARy5BVdC4Px9BF5HorWZtjdbX6rIJXRlmFU5oUYl/0jKOIojjpaa+Xj9CHQ8ocXYfrPBuRd9SsYzzznOGhaLF+zmtD9XUffbXsd73W8wWIIKZYwWk1qPZeyhLDBvBG7B8m+1n8ztcpcf9zfeH/Wz9FRc/2Mxo1j6tiAlsYXoVRmo2z0A1AoY2uZjIbMfIzoIUBBz1vr7oXZeYwdZMwovIU/xEUP3pQZaaPpI/yp5XlQ2vjFZWuQoTTG7dqlVpRxAkTIhJDkDq5D2AqDKnfAOoRurxNkUdze+S90uOgQFDAo8zAz83xMMXwbGnlanMDAxRgJBHw+Dxz2o2isfQxud6sIERSQyVWQyVTskJJ+9/zN/j/ka0rIZOrePux6ec9r9Jv+pvf7v9Yzbs979Lf4x1zBKviJ3ypoYwf90/KvR6Zuooj18i6JjABzF73t1/CYOlHx2NNQGgbWf8Qb6s2foTjjDEwruIEt+RvL13iq4SGcTNm4A9xJI8VDaj0n/pMS6cpie33IivKr2mUwDZp9DdAosjE5/2pmBdQoM2MrfYSj05dYc8N6mE2fQ6efjuKyxQl9OhchHCl5OdVE2lK3AlZXI4ozzmQB76EowpQEjS+6F4Eq+xE8UrscPvhwa8lyjNFNiGt0pFaUcQJGyHouHLlJnxyz7sSOzvdQbdvFhlDJdJhmpDjD82BQ5YczLL8mwRDw+dyw247Cbt0Hm3UvbLYD8HntIlYhh1KVA5/XBZ+v72fgMhUihou0i0zZR0gHI6UyFVwyL+pcx9Dt7WQz5qtGo1g7lVkF5UROGbkNJKB+0sleDyCnjLgGEGGWN0LB9fEQ+0iHVt1dm0DGDZerBSpVHoxZC5BumC/Zs6zt0AHUrV4O3eSpKLnznkGlDXYdXYQ8/Qkwu024s+o6FKpKcGvm96K2Dqn1XMoSwk8rb2C+wIM1IoRnJFBxVa/Xgdqqe+B0VCMr53vIyb8s0q9Rfn2CIWBzNWNz7XJ2X4/K/A4m5PyMK6EE28ORELfbY8YDNYvR7m7Fj3KvwpmZ54+EGCHNKbWiDEm42HWWhBAGit/mqMF203s4YN4Ij88lFLRPPwmzjReiKM4PDWK3Dck5skAAjwjkz7oXdutB+HyO3sXKZBpo0ybC5ahjeQsGbjJodRNQWhFch5AOGQDPcSSRajD7vG74fM4+8siIZM9r/t/HvUbXuVgiv0DS2Z+EsveOI6bBkpNkZhnQpgB8MkDlA/I8gHagMosRbH2QVXQgYuq3pvaQTsEq2mPxDCCi/QkokdTefn5yKu9Hgv1jxSMxjZeY1JY/vwrTh+8h92e/QOY55w25082WbdjRsNbvOkoF6/VYWnUT06E3uWRQ99boJIoVfmyt1HouZQmhYCEcvLhqpnYCq/GWSM3pbEAtK1pvQ1HpHdBnBNdLSaS1cFnDQ6DbWYsttSvh8poxLvsyjMn+XngD8atSAgFKIb++4UHste7E3PT5+EXBbxLiEEFqRRknN4PkhLBn3Va3Cd90CXGGNn8t3ULNeMzO+g6PM4yTmyNUMYgo2e2HYbMQAdwHu40IoLOPAMq10OkmQpc2BTr9FGi0o5mFbLgYwoLiG5FhPDVUcSTp30dMiYC6mUfN/rbX0MG8xWQoTT8F5emngB6MBSIp9Ov97SeXAhF1+smsWFIqjEPXwueWZL3HTyLrc9UdkpT2uPkS2exx3Q0kpYEuuWQ97ee6S27CQcS1v8twX2x6PNxPzCti4W/gbm/DqIefhDIry583xEc+98xzRrBw099e9r89Lc+hsft/KEqfj8m5V+LZujXY7arCD91A2XGHCXKE87mQWs+lLCEcKoaQsq1NK7gRRRnx+aU21DdJt3krGmvXQS5PQ9noNVCpedHyEfrmHbFpKSPu1rpV8PjsmJx3NcqiGOQ8YoviE8cEgZ5g+CJ1KRaV3geNXBuTeaI9qNSKMtryhzneiBHCHnkpzvBAN8UZvod2Zy17OUOZi5nGCzCV4gwVPM4wzL2N+WVerxN226FeF1D6P1nQeppcroM2bZJAANOIAFZANkBCoWCLTl+iokgsITFffL8JiABQHd+Dra8xPalXl7JYQSoTJkUjDAWiGUg2e6yk/V+jv/sIaDhW0UBLqXC9Gz4vkX+PFMsdYA55b0yp12MbUg5yxxWeY32sxEMfMSOa1pPYyBtM3AL6MTLn6+sn/N03Tu/7Xi/dwsKPiEbI1SoBjwwodAN7ZMDnCuA0D3DicfmWyHI+HqUV94oYua+L1HpO5NJDWsNIdA5ZUQZnGQ3OviYk5kjc1MmtzX9CZ9s/odZUsBtQHqXahyOxsXzO8BBot+7B1w0PgEpTTC/4dUIeboS3cn6VWAT2WLZjPWVMk2lxZ9lqFKiLxV464v2kVpQjvmBBgJD1XKzkpgczii8kYlht3cmmoTjDqYYzMTPzAhh5nGGsoBc9LoWREOkTXEDJAngoyDIll+sDCOBkPwEUlyk9OOarFSpVruQxX6KB6NfR6mrG3uZn0G7bw0qtVGRdjDFZP4irRIHhri3U6/qIqd8S6u2xiAZYR4Nec8HbzwV3ILfcAV/zu/16e92DBVIa6JYcqvzB/XvojByQkXN7D7uTBfztv79l8qD3vXY7fHY75Lo09gMI/ej+oLF6mKKgd3p+5Oj2WVHra4YSCvjcXryh9GG8F7h4AJ6tUGZj9HjKziu+Sa3nUpYQCtpVqENYQ24wrlboVLnMmtK/DqH47YuPnpQNrL76ftise5BhPAP5RdcnhBtYfKCXPFI0d2/FzsZH2BfYrKLbWfAzbxwBQqDV1cziBq1eC64pvBWz009KKGCkVpRxAk7cEMJAPCjOcIfpfew3f94bZzhGfyJOYPUMJ3DdI9HN4/XaWdwfkT8WA2g7HGR5IQIouH9Ohi5tMtSaUZIl7JAIgiGnoee9mq6PcKj1j/D4HEhXl7G6gkbt2HgQL2VlqK1aJhxW9MbdBUIhg0Y7FiXlSwBW1k0gY4zsMXLWc4BBrrDh0Rl2uHXnb+FqbmLuoqqc3JD24pumJ0Eeh3pk4I8+MzIAXHOcR/DAsbXDTSS1ngsPweFWIf37cakopYehb0a3u5MVrfe4O5BXeA2MWWePpDh87hFCoL7rM+xuXs+yrM0pXoIs3eQRkoRPGy8IuLxOrKtbjhpHJc7O/A5+kPvzeBFNtBxSK0rRgsW2Y1zrOSHO8CN/nKGJIVGgGcsK3Y9LP4mXwonyvUEE0GY94E8AQwTwaDABVGQw4ie4gBIBLEspAhgIt9XVhD3Nz6DDtpdZfUZnXYIx2d/nNXujfE+GM9xIxxA6jvLKiC8AACAASURBVFWhZvld0IwZi7Jlq0NeAmUd/aJ6IZyeTnzqAzpkwHUuQB80Eo8hDBnYCC6Ia0UZwboiupSURd2xe9lJSumoldDq+ElYRIAm6MXHOt9jdZWUch3mFi+DQTs6QVfCxY4GAn9sfhZfdH2McdrJuKVkadwWnx9qrZwQRuNOiM0YFGd4sHsTq2fY5qxhkwhxhudhquEsaBTBj0qxkSL5RvV6rKz0A3MBtexjNQEDi8MrFAZoewngFKg1JSlLAHt2n1kFTRtwsO3P8DKrYDmLFTRoxyTfDZKgKxrpmNS2N/6KjnfeRM6PfoqsC78bForNlq3Y0bAOOyBHFby41A2MYYlleJbRsACN8CJOCAcBsLP9fbQ2vQIlucNWrIFCSQZt3lINgcNtr+NoxxtQKQyYV7IC+gSKF0u1vYrlejd1/RevNT8DgyITi8segDHOa6wOhgUnhLG8S6IzNrli1dh2M2J4zLqDDaqSaVnyGSp2b1TxhGdDIe3xWGC37u91AXXYK4Pc6hQKI8v+KVgBp0KlLg7bbS46Ox5fo1AG0T1Nz6DDvg8yKDA661KWdVsuU8aXoFwaFr7VV4dQuphU5i66+Ha4Gusx6qHfQZVfGPZufNP4JDZ1bwRFVE+DAhN9XqhlGpRknIaKvCshl4d+30mt57jLaNjbnxgX0g3fVP8E+7Cl6WeiqOzOlD81TIydi66UdB8caH0F1aYPoFXmYF7JSmhVofnKR1ciPprUCJCL6LraZfD4PPhtyT0Yl8Duw1IrSqn3apD5Evbgs91Zxwrd7zN/FhRnODvzQhRpJ3IiQ86enm5GAK2sBiBZAKuCCaAyK8AFdApU6iKO2wAfFCIXpOcOtf0FlMAkQz0KUwuuh0HDPWPi5HssbsRw1NWg5u47oBlVgbKVD0Qkl8NtwttVN+ITeJAPYD4bTYh3DDdRpdR6jhPCiG6BxLiYYg1qK5fC6axFdu7/ITvv/xJDcC5lVBEgRbm7+Sk0mD9HmqoYJ5Ysh0ZpjOocfLD4RMDq6caamiVoczezmEGKHUzkJrWijBOsEpYQ9uBn9XRht4niDD+E1dMXZzgr80IWZ6hIIeuNx232W/+EJDBOR3UQAVQqs1n8n9ZfB1ClKuAEcJgPosXZgD3NT6PTfoBZBSlOkOIFuVUwTr7B4kyM9rffQPubryP7+5ch+7uR1WymxDI7mp7Eu/41agBQvlI6hiiDLKxs71LrOU4I4+wGjZU4Tkcdaqruhs/rYFZCffqsWE3Fx41jBKgMxc7GR9Fi2YYMTQWLKVTx2mFxvGORi0bF559uWIvd1u2YrT8Jvyr8bcI/WEqtKCPfhaiMkPCEsAcFt8+Fg+YvmNWw1UlECEhXZrN6htOSNM7Q4+7qdf+kTKACAexrSmVugAvoFChV+Qn/OY3KXS9iEMEq+L7fKuhium1a/g3I0IwScTXvMtIIMJfRPZtg+noDXKYWqIx5MJ6wAOlT58fUo6166SI4a6tRvuYRqIsiK7v0Zc09+MhxCPX9wCSSVQTgXM14nFS2KiSopdZznBCGtD2J3bm760s01v0OckU6yiruh0pNhm3eUg0Bj9fJahRSxrUs7WScULw4JWswpcq+v9/+D7zT/jcUqIpZvUGtXJfwS5daUcYJYElDCHvwZAXCWZzhe6iybmcvq2QaTPHHGWaqwo/pGek9o0zfrP6fvwyE01EbTABV+UFZQLk+Dm/HLM56v1XwILMKjs3+ASqyvsutguHBKflVLKnMW4/DcmBzQAF5oayEfuI8FF4am5rgzsZ6VN91G9QlpShfvS7idb9y5Gps9lkHKZ4BzJPpceXYF0KaR2o9xwlhSNuT+J1bm/6AzvZ/QaMdg5JRK3jR+sTf0rBW4PbasLVuFbocR5GbdgJmFd3GFWhYSMb3Rfusu/Bk/RqoZWosKluNInVpfAssUjqpFaVIsWLdLekIYSBgQpzh+9hn/pTFGVL8zRj9XFCcYbF2Utxby9yujgAL4F64nMG2ApWqkBFALasDOIUVc+ctfASISFAG7cPtf4XXR1bB0X6rYHn4g/IrJUfAvHsjmt5dH0AGA0SQyVFw0Y3ImHZq1OVqf/cttP/9L8i65AfI+d4PIx5/+ZGr0OKzDzpOvkyLFWNfDmkeqfUcJ4QhbU/id/b53Kg7dh/stv0wZJ6N/KJrEn9RfAVhIeD0dGFL7QpYXPUoTD+F+bjLWPFX3pIBgXZXK9bULIbFa8bVBTdjboYQ5p4MTWpFGSeYJTUh7MHYxuIM/4OdLM6wk72crxnDiOG49JPjJs7Q7WoXSkCwn31wORuCbhNK+tJXB5BcQLPj5DZKfDEszjrsbnoaJschyKD0WwUv5oeaCbi1ta8ug73u4CCSy6AtHY/Sn98b9ZXVrFgCR9VRlK16CJqyyA8RFh39Jbq9lkHlzJDr8eAYbiGM+kYOMGBKKMpoAUknmaxovacT+UXXw5B5ZrSG5uMkGAJ2dxs21y6H3d2KMuMCTMr9RdyfxCcYxCMirsvnwqO1K1DlOIJvGy/AD/OuHBE5YjUpJ4SxQjZ+xqU4w0Pm/7GyFa3OY0wwvSIbMzPPwzTD2dAq0iUV1uVqFYrAW4QkMC5XUz8CWOwvAi+UglCqsiSVLxUm8/o8ONb5Lxxpf51ZBQ2asayuYLqmLBWWn3RrpHjB6ucWwudyDLo2RUY2Rt+0Pqprd7U049gdN0NVWMTiB/36JKI51tbcg0rHoUHHGKOZgIVloRFbqfUctxBGdAsk7sV0oll3bBVkMgVKK1ZBo61I3MVwySNCgDKzbalbAafHhDFZ38e4nB9FNB6/eOQR+HPzC/i8698Yo52A35YsgzLJsjdKrShHfkeZBGEdfLIYne5NqDZtgN3VAq0qD+XGBShMj23ChmhhJsQZ7mXEsMr6NRtWyeIMz8As4wXIVFPKhug3l7M5KAmM29UcNIlaU9pLALVpk6BM0Jqe0UcuNiN2O2uxu+kpdDmOMKvguJwfYlTmRZDLFLGZkI8aEwTo82yr3gvT1g9gObSVvtWGmIcshBNQ+vOVUZWl4/130fbX15B10SXI+b+fRGXszeaNeLVpPbzwHjeeHHJcUXAj5mWE5voqtZ7jhDAqt0JiDtLR9i7aml9j2czKRt8PhcQnromJWnJK3eWowta6e+H2WjEx9+cYleBlCZJzl8St6quuz/BK83pkKIxYXLYGmcrkc1WTWlGKQz7mvUImhEQGdzU+jmbLZvh6H1Qiq40V81UOMUGHs743ztDtc/rjDOeAylaUaCeHfdJPD6lE+HrcP+m329XajwCW+wkgxQBOhkJpGEkoUmZusgpWdbyDI+1/hw9uGDXjWF3B9CSJh06VjfQ67TDv2QjTtg/hbKlhy1bojdAUT4D18LZBYghlKLjo11GPIaxZdQ8cRw6hdMUaaCuiU5+Ssnm/2Pg4dlg2w8tSy9CPDHLIMEs/D1cX3gx5iCE5Uus5TghT5dM4wDpJCVLWUYv5K6Sln4Ci0oU8hiyF74cO235sq7+fFfOdmn89SgzclTjRbodaxzGsrb0H5G53c/FSTEybmmhLECWv1IpSlFCx7xQyIaTaWLub1geQwT4h6VFlWsGNKArx1Dr2yxx+BpvHzOIMqZ6hxdPBLsjTjGZxhuPTvzVsnCHpPnL5tFmoCLwQB+h2twdMLINaE0gAJ3ECOPy2RL2H2VGDPc1kFTwKuUyFsdk/QkXmd/hzStSRjt2Ars5mRgK7dn0Cr12IsdMUjUXm3PORPulkQKEIyDLaQ6T88sgVKL/2Yaizopdt2N3ehqrbfg1lXj5GPfRY2IdIAyFGpHBr9yZ8ZtoAiuHPVuXidOMCzE2fHzIZpPGl1nOcEMbuc5AQI3s9VtRULWUZ0bLzLkN2bmTFORNi0VzIQRFosWzHjoZ17AFyZuGtKEifx9FKEASsHgserL0bLa5GXJrzUyzI+m6CSB66mFIrytAljMkVIRPCr2qXwWQfLGEDkK4uxwnFd0GjyEzIh2yPz41D3UKcYYujioGuV2RhhvE8TDee0xtnyAigsyEoCYzHLRBJoclY2IQ2bTLSWDH4SdxjJia3sLhBqV5un1XQA6NmPKYVXA+9ukTcALzXiCLA3EKrdsO0jdxCyc3bB8gVyJj8LRjnng9t8bgg+XrrEG6nOoStUBlzIVenwXp0BzSFY5jLqEypisqaOv/9Plr/+Aoyz78IuT/+WVTGjNUgUus5TghjtZMJNK7DUYPayqXw+ZwoLl+CNP30BJKeixptBBrNm7Cr6QlW0+mE4juRk8bvh2hjHO3xSAE/0/gwdlm2Yqb+RFxbeFtUTz6jLW+k40mtKCOVN0rXh0wIP628AQ6/BW0oGchaqFZkQqPMglaZDY0yW/ityOr7vzILyjitYUn3fx3FGZreQ6VFeABVytQYqx6DMdBCaatiSdSCCeDoXhdQgQDqo7RNfJhIEDA7jmF389MwOyqZVXBc9o8xKvOChDywiASHRLyWuYXu/gydWz+Eq62OLUGRngXj7HNgmHU2lOmZopfl87hR96dVsNcegGH2Ocg//1eirx2qY+39K2A/uB+l96yCduz4qIwZq0Gk1nOcEMZqJxNsXLPpCzTVPwG5IgNlo9fwGkkJtn/RFrfG9BH2tTwPhUyDOSVLkamN7y/OaK8/0cbb0PE23mr7M/JVhbiz9H7oFGmJtoSQ5JVaUYYkXOw6h0wIBQshZb4bOHGDUp6ONFU+HO4OOBhhGirBA6CQ6aBVCiRRII1Z0Cj85JG9Rn9Lb20kC4PTUccsgM3d27DfsR81cMJDTzg+IN8HTFAWo0x/AtL0U6HTTYQ8yT8jsbsNYzMyWQUrO97G0fZ/wAcPMrUTMTX/OujVxbGZkI8aNQSc7Y0wff0hzLs+hddhZeNqS8bDOIfcQk+CTKEMay63uR01Ly6Gx2pCwcUUS3haWOP0XOTu7ETVrTdAmZWFUeuehEwe32W2pNZznBBGdHsl18UtjS/D1PEBNNpxKB21HDJ5dEz0yYVS6qyGlPOhtj9DKdfjxJIVyOCpveNy8w9Y9+Dx+vuglKmwqPQ+lGgir6kUlwsNEEpqRRkneIRMCEOJIaTkHZRp2OFuh93dzn4TUbR7hP/biTS62+EZovgy4XS8tTGQNPZZICOxNgoEsCYoC6jXYw7YJgXk2lGoVWpw0FUDq7ebvZerrmBxhhMy5g8bZxgne54SYlBSsz1NT8PsrIJcpsb4nB+j3Hg+twrG8e7TZ9Ba+Q3LFmo9skM4eVEokTF5Poxzz4O2aGxUpLdW7Ub9X1ZDplSj9Mr7oMkLv8SI6eMNaHn1RRjPvQB5l8d/KSap9RwnhFG5ZZNjEKFo/UrYbYdgzFqAvMKrk2NhfBVhIUBuWIfa/oSqzneY69iJpSuZNYG3+EGg093Ois+bPSZcWfBrnJQR2Qlq/KxsaEmkVpRxgkvIhDA4y2hf5jvKM5qvn4cZhTeH/NBNmYgZUewhjPSbkcae1+jvcK2NgS6q5LIqWBsFAnhMIIBUB9C2D16PQPKEpoBWNy7ABXQC5HIte0eIM/zSH2dYyV4T4gwXYJrxHOgUGXGyvaknBlkFj7a/icqOt/xWwUmsrmCaOnpJRFIP1diu2OuwoeubT2HatgGu9nrh00duoScsgGHWWVDqjVEXoH3Tm2j/9K9QZRej7KrVkGt0Yc1R99B9sO3djZLFy6GbODmsMaS8SGo9xwmhlLubAHO5XW3+ovVdKCj+NTKMqfGAmQBbMyIiEinc2/Ic6ro+hk6Zj3mlK5lbGG8jj4Db58ajdStRaT/EMpn9OC91DnCkVpQjv9tMgpAJoXCRUIewxrQBNlcrdKpclMW4DmGgtbGXKHr6rIw9FkePzzYMtFRxTgmFzwOFzwslGSGoDiHk0KlLka6bAIN+NtL10yCXa4Yci77L6u37GTE8atnWG2c4OeN0VrYii7smSnqbdzkqWV3Bbmc15DINJuT8hN2XdADAW/wh4GyrZySQyKDPKXxutaUTWZKY9Aknhu0WKmal9B3W8PpaWI9sR/rkk1FwyS0hx8h7zF2ovOV6KDIMqHh0fdy7ixIuUus5TgjF3I0p1sdq2Y366tWQyVQorbgPGm3yu6Cl2BaHtFxmZWh6HE3dX7KshCeWLIOK16wMCcNYdP5by8v4xPQBKjRjcWvpCqhkqePiLbWijMX+hTFmWIQwjHkku8TttTE3VCKqFvshdNsOweasYxZHt88LtwzwsCejoUVSyLR9MY0U26jwxzP2JMdRZkOtMPYWMe90NmKH6X3s7foEbp+DDV6RNhuzM7+DUt3UkB82JQMsCSby+lwsTpBCEiibdZZ2MqYWXIc0FbcKxtv2MrfQozsFt9CjO5l4MoUK6VNPQeac86ApjE4NPzHr9ti6UfPSYrhNLcg99ypWtiKU1vXpx2h+6VkYzjoX+Vf8MpRLR6yv1HpOLCGcAuAJAN8CQL4gzwNYSd4YQyC1AsDyQd5fAmBNwHuXALgPAGWuOOof+68h7ELSKcoQ1h6Trh2tb6Ot5c9QqQtRWkFF65M7SUVMQEyiQUmJb69fizbbLpYCfE7J3VD6XbKSaJkJs5Qt5i/wUtMT0MszWPF5qneUSk1qRRkn2CaNnqPwBIe9ktUBZMXgbQfh8/ZZC2UyNbS6CawAPGUAlany4PSa++Ib+1kbKZMqkcuhm4y5oLLEN36iKJPpUe9qwBHbHti8QgxirnqUUM8wYz6Ly+Utegh02Y9idzNZBWtYwrLxOT9FmfFcbhWMHsRRGcljt8L8zSeCW2hHIxtTmZENwwkLYJx1FhRphqjME+og9oYjqP3DcnJ7QOnPVrDENWJb/cNrYP1mJ4oXLUXalGliLxvRflLrOTGEkPzD9gDYC+BBABQp+jCARwEsHQKtUgD0E9guBXAngNkAKAqV2qkAPgGwHsCbAC4EcDsAov8bRO5G0ihKkeuNeTdWtL72YVi6t0KfcSIKS5I7jX3MAU2CCdxeO7bVr2ZZC3N00zG7eBFLC86btAjUO2rwUO1SuHxO3FS8GJPTZkgrQBzMJrWiDFhyOIejgYiRP9xmAHMAXAzg3RDgTFg9RwTQbjvSmwTGbj0An98yR+uXyTTQphEBnMJ+tLqxkMlCy0woWBsD4xj7/t8T7+j0dDKrVP9G0ZVEB6k0vd3/pgpKlKqLMVo7GQZ1kT+zqpAUh0p0yGXkvMqbGAToQPFI+xuo6vinYBXUTcXU/GuRpioQcznvIxECzrY6mLZ+iK7dn8HnFD4J2rLJzBqnnzAXMvnI3/Omr/+Nlg9fYAS17OoHRJFTj6UblTdfB3laGkb/7mnIFCO/DjFbKrWeE0MIFwNYBGAUgC7/IuhvsgCSjb/nNTHr+xeAMQACozk/BEBPlWcFDPAeADqCILIopoWlKL0+L7Z2b8Jnpg1oc7UgR5XHYnHmps+HnPuxw+OxorZyCVyuRuTkX46sHHp+4W0oBJL9nnJ5urGl7l4W91GgPwkzCsmXn8d8xOpT0f9+ylJmo93dhi5PJy7OvgwXZH8vVlPH9bhSK0o/GOEejgZieS2AewHQk3DSEkKf1wW7nQggWQD3wW49GEwA5VpW+oGRP7IC6saETADDuUHJBY4S3rAyGwEZVHtiGu2uNnR4WtHic6InZQ09JFGaDNr8vijF462NfTUb/WU5FNmsbqP/Xg1H3KS4xmQ/wqyCFmctyLV3Qu7lKDWczfVGnOyuz+tlsXmdWz+AreobJhUVgc+YehqM5BZaQI/+8dPIWNH8zu9h3rMRutEzUPyju4aNB+z64jM0P7cehtPPQv7V9BWcGE1qPSeGEH4GgFIJ/TgAQgoqOwbguwDeEQltDoAGv2soKURq9P1KB3M3A3g6YJwrALwEIBuAScT4IRNCetB6sfFx7LBshrf3xJASZsswSz8PVxfezEkhAIf9GGqr7oHP50Jx+VJWw4m3gRFIlXuKHqQ2162AzdWEEsO3MSXv2pR/6InFZ2Lg+0mYyaDIxH2jnoRSHpoVJRZyjsSYUitK/xojPRwlTnEQwF3+sIukIYRerxMO2+E+CyC5gPpcvbeGTK6DTjcJOv1kRgI12tGQxbGFjbwhWmwHsavr3zhs3c4ylVLLVhiRL9dD7bXB5TENaG0M/DyQW+RQNRu1iiyolVlJaW30eJ042v4GKjv/yRL4ZOumMaugjmeqHomvzOPm9Ngt6NpFbqEfwt3ZzN5XGnJhnLMAhhnfhiItfrPvep121L6yFM7WWmSf+n/IPu3/hsS0/ndrYd2xDUW3L4Z++sy4wF+MEFLrOTGEkO4Ucucki2Bgs/hfWytmYQCIlj8DYAIAqpRLjdxvyB3123630Z6hTvS71cwDsEXE+CETws3mjXi1aX0AGeybRQ45rii4EfMyxBooRUiYwF26TJ+huX49FAojK1qvVBFP560/Aql0T1ldzdhSuxwUuzMq8yJMyLmck8IofyRS6X4KFTqpFaVfvkgPR5/0h1H8FgDVP0hYQkgEkMoTCRbAvYwMBhJAuTyNxf4JLqCTodFWxDUBHOr+c3gs2N31MXaa3ke3m5xKgRx1OWYZz8fotGlweSi2sa9eY1/9RqFuI5XpGLrJWMIbckVl8Y2K7N7/C69R+Y3EsjZ22g+xuoIWVx0UMh0m5l6OEmYVFPPIGeq3Ae8fCgJEosgaaN79OXwuIaGSbtRUZg3Uj58TF26hYtZDWU9rXl4Cn9OBosvugn7MwETPa7Oi8jfXQaZWY/Tjz0CmTJxDVKn1nJhPJx3z3QHgd/02qRbAqwAoQYyY9rHf84JiJ3raKQA29osppPfG+UnjeSLjCEMmhOtql+GonQ5rB25ZyhycYgj0YhWzxOTtYzFvg8N+FEpVDgzGMwHuJnjcZn/R9TE63G0pc0853SbUmT+Bx+dkMYVZuknJ+wEYgZUNfT/JMEY7HgtLe5wtRkDAEZxSakXpX2okh6MU6PklAPpN5qaEIoRerwN220F/Eph9sNsPA36rGWEjl+sZ8WM/+ilQa0YlnUsgWQmPdG9mZSuaHEfYLZGmMPrrGZ6LNMXAiTbI2thHEqleY3DNRrunHU73wLGNgR8xwdroT4gzQBZVwdpIsY0j98BLVsEj7a+jqpNCY31ML0zJv46VOuFt5BAgt1DL4a9h2kZuobuZIFToPWOa3y00PzEzyZv3/Q9Nbz0GuS4DZVevgcpw/H1m/vILND39BDJOOR0F19w4cpsQxsxS6zmpCGERACKQlFBmXRQI4XEZTMmvOJS2uPIGmDwdoVzC+3IEOAIcgbhBIFORjftHk/NG6jWpFaUf4UgORz8F8JU/Hr8i3gmh12sHJX7pjQG0EQHqSyouV2RA12sBJAJYlnQEcLBPFT1rNNgP+usZboEPPihkKkzKOI3VM8xR98+lN/znk2IbnZ4uIYuqRyCNdhbn6P+/JxJroz+mUZnlL8dB1sa0iKx1PbUtq00bYHe1QKvKY+SvwbwJNneD3yr4cxZSwK2Cw+9/rHpQqYaunf+F6esNrFwDNaUxj1kDDTPOhEKXHqupJRu35d8vs7IYmuJxLPOoTBF8INLw5COwbN2MolvugH52oD1KMhHDnkhqPSeGENKp6O/9pSACFxaKy+gt/qykFJ1aEzBIj8vomQBIYfa0mLuMChZC8lwdmEjmKQuwIJuqYfDWg4DH3Y2O1jdAp8WGrLNZJjje+hD4sP1ttLqbBoUkWe8pi6MOx0zvs3gaShZg1PL7Ihqfi6HvJ7IQTsDCUqr+k3pNakUZISGk+HvysKFwCUrCJpYQRnzwSXLTw3t31yaYOjbA5WqBSpUHY9YCpBvm95I4r8cGm62PADpsVP2pjwAqFAaW/EWwAhIBLE0ZAjjUp8vkasLOzg+wp+u/cPmErIyj0mayeoZluulRJ0OB1kZy1xeypxJ5FKyOVL/RwayNQ1UEAysErx3M2qjoIZADWxtZXdrGx9Fs2TxgDGW2bgam5V8LLbcKjtgXs6O5mlkDzbs3wud2Mjl0FdOROfc8pI09YdgkLCMmeBgT+zxu1L62Eo76QzDOOR95C67qHcXrsKPyN9cCcgVzF5Wr1WHMMHKXSK3nxBBCipuoA/CTAFjKAFSHkFTmfwDodPX0ftD2JJX5jT++sOftnwN4OZZJZXh8Tng3ubV7J+prHgDViSobvZo9GPAmIJDK91RT92bsbHwUlJZpVtFC5OmpsgxvkSCQyvfTcLhJrSj98oRzOEoZtIldPeJPlEZDkX8WVXkmokgZtYUCeMO3kEMjmCWn7nFYzFTpoqfcAql9GbS68dBox8Nu28dqAva9DxYv3kP+yAVUpS6JOrkZfrmJ08PhsWIPizP8AGZ3KxM8R13GLIYT00+BUi7dg+hA1kahHIdgZRQskFS3kc70h2oU22gQajb6XVQpptHmbkVd138HOUyXYVr+jSg2nJY4m5ckkvq8HlgObWPWMls1VYkDZCoNMqadzoigOjd5n9VcXa2oeXExvDYzCi65GRlT5rP1d2/5Co2/fxTpJ89H4fWUuzKxmtR6TgwhpMxqFENI1r0exbXQnzpbTNmJntNQct59aoDtoLITVBTknID3yAE9M5ZlJ4Iz+JGVkH54llExH5f21n+gveVvUKmLUVaxGnKFTsxlSd8n1e+puq5PsKf5achlaswpXowsXWB1maTf/qgvMNXvpyEfVYXkFGL0VzT3JZzDUdJjQ8UmkC8mxcyLaSETQrNpI5rqya34+Np7gRMqlFl9BDBtMvtu565+YrYkuI/X58Hh3jjDw+xNHYszPBfTDeciTUkFLOKjCdZGv1vqgNZGoTTHcNbG4NXIkKkdj3kpGts8EjvrsZrRtfNjUH0+d5dwGKHKLGDZQjPILVSrHwmxJJ/TenQn6v/6AGRqDcquWg11Tgkan3oc3V9tQuFNtyF9LuWoTKwWj4SQUmXTcQNFolJheqojSKed5AITWJievv3I7fOX/SCnFNurAFAc9k3UGQAAIABJREFUoXC3BreewvSUge0tf2F6IpwxL0wfWOOr3dWKbFUur0Mo4vNCJ5ANtWth7d6O9IyTUVBCteikfjYTIegIdEn1e+pY53s40Poqq781t2QZDJrRI7ALyTNlqt9Pg+2k1IrSL0c4h6MU0NI/XTUdpP7Zn5CNkq1RbKGYFjIhrK1axpLBDNaUqgIUl98FlaqQf4eL2YEQ+jTYhDjDI8y1UogznJhxKmYbL0SOhpys4r/1WRv7sqgebP0jPH732IFWQBlRz0jR2GYpd9TRVMWyhXbv/QI+t1DiJW30TBiZW+islHTpbv/872jf+HdmDS3+6XIcu/03gNeH0U88C7mmr4qolPsUyVxS6zmxT/EU60eE7VsAOv01lCi+IdBRvcpfOqLPgVdAYgeARj/BGwybS/31Ccf7g+1p7L+EAGTIijKEsXnXARDweLpRU7kYblcLcguuQGb2hRwnjgBD4HDb33C04x9QKQyYV7ICenUxR4YjEFUEpFaUfuEjPRztwUBsDGF/zELWc5WHboDHPbiBUqHMxujxqZmYKKo35BCDmVzNAXGGNtaznOIMjReiPG1GwhHxr2qXwTRo/gWyEE7AvBSNbY71PUXxcpaDW9G57QPYa/az6WRqLQzTz2CJYtQ5qa1rKZtq/d8egK1yF7RFk2H/ZB/0c09C0U23xnprYjK+1HpOLCGMyWKjOGjIijKKc6fsUHZbJeqOLWNJC0pG3cOyzvHGEaAsfPtbX0aN6UNolbns4UCrzOHAcASihoDUijJA8EgORyUnhIKFcLDkaRRHOAGlFamZmChqN6PIgYQ4w/+yeoY9cYbZ6lLMMl6ISRmnShpnKFLkAbs1mDdid9P6ARPKUNDNtIIbUcRrOEcC8XHXeqxdMO34D3ML9ZiFWpiqrEJ/ttAzINekRXW+RB6MsKp58S64CadGoOCnNyPjJCGmMNGa1HqOE8JEu0PiTN6uzv+iueEZUAwKK1qvpJAZ3lIdATokoIeGhu6N0KuKcWLpCpaggDeOQDQQkFpRRkPmKIwR8sHn0DGEchQU34gMY3+P1ihIyocYFAGKMzxi2cLcSRuZpY3iDA0sxpBiDdPiXIcGZxnty78ggwz5+nmYUXhzSrorxuKWtzccZdlCu/f+Dz6P3y10zCwY556PtDFkXZbHYtqEH9NWvR91r5GjIVDy02XQVdA5XuI1qfUcJ4SJd4/EncTN9c+gy/Rflpa8pHwpZDLKEcRbqiPg9bmxo+ERtFq/hkEzBnNLlrL6V7xxBCJFQGpFGam8Ubo+ZEIYnGW07+Gd8vHoM+ahsIQ/vEdpb8IahsUZmt7Dke6vWJyhHEpmLaSyFfEcZ9hTh7DGtAE2VysrPF9mXIDC9L5SJmEBwi8CuYV2H9jMsoXa64T4X5lax+oGUqIYdTal4+BtKAQsu7aj4cUHgQKqu5iLsl88kJA1F6XWc5wQ8s9VxAh4vU7UHVvOUpdnZl+E3IKfRTwmHyA5EPB4nfi6fg067PuQpZ2ME4oXQyFhCvbkQJGvoj8CUivKONmBkAkhyR1ch7AVKlXucXUI42R9KStGF8UZmj5kpSucXiHOkOoYzs68kNU15Jag5L813JZOdG3/D0zbP4KnW4j7VeUUC26h006H/P/Z+w7wNstz7VtbtiTLe9uxMwkJkA0kQAsBCuX8peNAS89poaWLnEIXtBAgJBCgUFooBbpoy+igh9NdymjCCCGEDBJIAgkZduK9Lcva67+eV59s2fGQbOnTJ+l5e/lKsd95P6/0fPf3LANnc4/1FnT++ucY2PIKDOfMgqfrKHJnLUbFFTel3edIbj3HhDDWG8b9JkTA5+0USWaCQQfKq74Nc176pfhlEScHAX/QiZ0td8HuaUBJ7lKcUfEtqFWUfJEbIzA1BORWlFPbZcJHTYkQJnwXPGHSEPAEnXhv4FW80/88BvxdYp0CXZUghqdYzk2bOMOkAZSBE7tbj4aLyL//JhDwi2o6ubMXI3/ZJaKYPGdwj0/ooUAADd/4GoIuJ2Y88GO0/u898PW2ovBDn0bhyk/EN1mKe8ut55gQpljgmbS8Y3AP2pruh0ptFPUJ9YbszniVSbKd7lm8gQHsaF4Pp69VJByg4sX81nu6qGbveLkVpUKQZkKoEEEkexsUZ3jMsUvEGba5w26DRrUlXM/QejFMCo8zTDY+6T6/cAs9uF2UjfC0hutVUmIYqhuYv/RikTCG29QQcL63D633343c0xeh8ts3w9PVhOYnb0PI70XlZ9Yit+60qU2cglFy6zkmhCkQciYv2dP1LPq6/wS9oRrVdRuhVhsz+bh8tjgQcPu6saPlDrj9Pai1XoJ5xVfz28848OOuwwjIrSgVgj0TQoUIQs5tUOKZPf3/whERZxgUcYbzLKuE1bDYMEPOrfBa00TAP9gnXELJNTTgoApuEDXzyC3UsvBcqPX8vDRNiNH55OMYeGUTSr/4VeSdd76Yzr5/Kzr+8Qg0uVbUfPFeaC2F011GlvFy6zkmhLKINXsWoXiV1qbvw+V4F+a8VSir/Do/9GeP+Cc9qcPbih0t6+ELDGBmwacwu+iKScdwB0ZgNAJyK0qFSIAJoUIEkYpt2H3deMf2AvYPbOY4w1QIYIprUhkmsgKKIvIHtwNBKt+tgmnOUlFEPmfGQn5GmiK2o4dRHcLGb16HwKAd9Q//HBqzZahL5wuPY2DPJhir56Hqs7dDpVF+2Irceo4JYYIuIk8zjEDAP4CmhrXw+7tRXHYN8gsvYXgYgSEEBjwN2NVyJ/xBF+YVfx4z8j/K6DACcSEgt6KMa3PJ6zwlQiiSyjRvg+3YS/A5u6DLLYF15sUwV3NGyOSJKnkzU9IZijPcK+IMO8VCBbpKLJLiDHVqQ/IW55ljRiDk94m4QMoW6mk/JsapjSbknXE+rEsuhi6/NOa5uGNsCLgOvY+WezcgZ8FpqLrp1hGDSB7NT98hZJG/4jIUr/5cbJOmsJfceo4JYQqFnclLu11H0Xz8Dkpxh6oZdyAnd24mH5fPFicCfa73sbv1HgRDPiwovQ5VeR+Kcwbuns0IyK0oFYJ13IRQlAfY+TAcrTuAUFA6hgpQqWCqXIHy5Vx2QiGyjXsbwVBQxBnu7X8Ore5DYjzFGZ5mvRCnizjDgrjn5AHTR4AKolMB+YG9LyPgtIkJ9SU1onagZcE5UOuYsE8f5bFn6PrtE7BtegElV38J1vMvPKmTr78TTb+5BUG3A+Wf/DbM85Sd/FBuPceEMFk3k+eFrW8Tutofh0ZbKBWttzIqjMAQAl2Ot7G37YeUGB9nlH8LpebljA4jEBMCcivKmDaV/E5xE0J701Z07H4sigxGbVKlRtnSNbDUcGH65IsuuSu0u49gb/+/cHhwuxRnqBFxhovyL0MJxxkmF3xR2iUkagaSNZBqCAq3UHrpMne5iA/MqT2V3UKTLAXhLvqdryPQ34e6h34KrTV/zBUdR95G27P3izIe1dfco+i6jnLrOSaESb6k2Tw9fUl2tv0UdtsW5OQuQGXtrZxZMpsvxBhnb7O/gX0dj0AFDZZU3oyi3IWMECMwKQJyK8pJNyRPh7gJYdNrt8PTe3jc3RnyZ6H6wxv5YVUe+SV9lXCc4YtSnKFTrFeds0AkoKnLXcz6N8ESCPq9GHxvG2y7X4SnvUHMrjaakbfoAliXXASdtSTBK/J04yHgOvIBWjaug3HefFTfcseEQPW89gz6tv0V+tJaVH/+LsVabeXWc0wI+fOVVASCQQ+aG2+H13MCBUWXo6j0qqSux5OnHwJNtpfwftevoVEZsazqNliNs9PvELxjWRGQW1HKerjxF4ubEB77+7UIBhwTbl+l0UObWyJiC0/611QCjT6PCaNCLkCs2/AG3Xif4gxtz8Pm6xDD8nUVWJR/KeZbPgSOM4wVybH7+Qd6YNvzb9j2bEbQZRed9KUzkL/sIzCfSm6h+uktwKPjRqD7mafR/8JzKP6va5B/0cR5K8ia2PrM3XAdPyBKfZRd9rW415NjgNx6jgmhHFLN8jW83nY0N6xFMOhERfWNMFmWZTkifPzRCBzr/QuO9P4ROrUZy6vXw6yvZpAYgXERkFtRKkQUcRPCo89eg5DGTUkNT24h+pUKan0ugr7xSSMTRoVIfwrboDjDBsduUc+w1X1QzGBUm7FQijM0a9Mj/f4Ujp7wIcIttPmgyBbqOLQz7IatUsM0b7koIm+sPoVfnCQc9dgmJNkcv/F6+Hu6UffgY9AWTH6v/Y5+NP36FgQG+1D60a8g74wLYltMxl5y6zkmhDIKN5uXcth3oa35AajVuaiuvwd6PRdezeb7MPrs9IX+Qc9vcbz/ORg0BVhRvQE5Os7CxndkbATkVpQKkUP8hPDxLyJU6ByfELYBucWLoC0uhzbfCnWuASFNEH53D/zObpGV1O/sYsKokAswnW10uI8OxRkGEYAaGsy1rBTZSUsN9dOZOqPHBn3kFroV/btehLfzuDirOscC6+LVyFt8IXR5xRl9/nQ4nLvxGJrXr4Vx9hxU33ZXzFt2NR1Ey+/uhEqtQfXVd8FQVhfzWDk6yq3nmBDKIVVeQyDQ0/kH9PX8DXpDLarr7oKa02PzzYhCgEjhe50/R4v9VeToyrCiagMM2rEDwxm47EZAbkWpELTjJoRNT90OT+gwECnHRRpfWAapWjOA1jFOplJDX1QpMiPqS2phKK2BtqAEIW0IAVeYJPocYaJIP/Tf8VkYi0e4pmoMVrasyHjB7P4evNsfjjP0BMOW4aqcU7E4/zLUc5zhkCR8tm7Y3n5JZAsNugfF74kwULZQ86krodayW6iM13bCpbqf/QP6n/sbij7zORRccllc2+rb8Rx6Nj8NbX4par5wLzRGU1zjk9lZbj3HhDCZ0uS5RyAQCgXQeuIeuJwHYLGeh9KK6/hBgO/IqDsSxDvtD6HTsQNmfS2WV62DTmNmlBiBEQjIrSgVAn/chNC+fys6/vkoYAkB9G5FB8AHoJ8IoQoll34VhrIZ8HaegLfrBDxdTfB2NQk3qtFNpTdCX1wjCCIRRSKMhpJaaHItCPicIwhi3IQxpxg60xgxjLklYMKYnNsXjjN8TYozbBeL5OvKhcVwvuU86NTG5Cys4FnppaTrxHsiSYzjA3ILDQFqjShPQETQWDWXn1kUJj+S2YmbvwVfRztm/OBh6Eri8yyi8e1/eRCOQztgmrMM5Z/6jmJkLLeeY0KosMud6dvx+21oargFAX8vSsq/BGvBybViMh0DPt/ECFBtwrdb70evax/yjXOxpHIttFn4cML3ZHwE5FaUCpFF3IRQ1CH8y4/Fw454uI1YCCkl/rwVKP/EN8bMPBlwDgyRQ0EUO5vg7W5CyOs+CQqNuUAihxJRLK2FvqhqRGINJowKuUFjbCMcZ/i2qGfY4n5f9DCoTViYdyHOyP8IsiHOMOjzwL7/ddh2vyRejFDT5OYhb9FqkS1Ua5k8Jk25Es7snXmajqPp9u/BUD8TNXfcM6XDBtxOND+xFr6+dhSd/18oOOv/TWmeRA+SW88xIUy0BHm+SRFwuw6juXG9qNNTPWMDjDmzJh3DHbILAX/Qjd0td8PmOYyi3DOwuOImqFXa7AKBTzsuAnIrSoWIIn5CGAyi7bEfw3l4B5AXClsI/QBsKuTOWYGKNd+ASq2O6XhELv227rAlkQhiF1kVm+DtaT25zqFKBV1BBfSlYStixP1UV1A6NgGdjoVRrQu7oLKFMSY5TtSp092APbbncNj+JiJxhnPMZwt30lJj5sUZUqFy4Rb6ziuiWLkgw+Uzw0Xk558NlZY+MNyUjEDPn/8XfX//M4quuAoFl10+5a16Oo6j+anbEAoEUPXZ25FTO3/KcyVqoNx6jglhoiTH88SFQH/vC+jueAJabTFq6u+BRpsX13junPkI+AKD2NmyAYPeJpSZz8LpZTdwHa3MF3tMJ5RbUca0qeR3ipsQ2rdtRcfjjwHB4Mm7U6tR9qU1sKycXmH6kN8nSGHY5fQEvBJZ9Nt7T1pTpTNAX1w95G5KhJHcT7Um64ToBX1O+JzdQzGLkdhF8a+DYhjDMV5jNdVowphTAq1puMwGu6SejNqgvxfviDjDTcNxhsb5otB9vWmJMDQfGtyGfbaXMODrQp6uBKdZL8Y880rFf0cLt9Dj+2Hb9SIcR3YPu4WecpbIFmqonK0Yl8Hkf6Wk/won1t4Ib2szau97CPqy6SUrHHj3VXQ+9zNoTPmo+eL3oTWnNoeB3HqOCWH6fx7S8gT0pdzR+ggGB95Ajul0VNbcrHhFkpZAp/mmPf4+7Gi+Ay5/J6ryLsCpJV9mZZ3mMk3E9uVWlInYcwLmiJsQNm9cB/eRD8ZhSqpwVr5b70zA1k6eIuAaFG6mRBAFURTxiScQ9LhO6qzJtQprYiQuMRyjWB1zweiEEMboOoxMGIWMfBRnaN8ispP2+8JxhnnaMhjURnR7mxBC5EWDCvS/WaYVuLRcmS/ugl437Pu3hN1Cu5vFWTQmq8gUal18IbTmgqR8DnjS5CHgbW3BibXfgb5mBmrvui8hC3X+6+fCYmysnY+qq24TGUhT1eTWc0wIUyVpXhfBoBvNjbfB62lGQfGnUFRyBaPCCJyEgNPXgZ3N6+EJ9KEu/2OYW/xZRinLEZBbUSoE7rgJYcM3r0Og/+QEMZHzqC0W1D/8C9lestCLQCrqHXE39YhkNuR22gIEA6NgJrfTshHZToko6grKY3ZzjUzIhHF6N5jchRucewQxbHYdGHcyFdS4qGwNTrFMz+o8vd2OHE1xYf27X4L93VcR9DjFH8kKSNZA8ylnQaXhUIRE4i3nXL1//zN6//y/KPzEFSi8/FMJWZrKjDQ/vQ7ejkbkn305ij98VULmncokcus5JoRTkRKPSRgCXk8rmhpvRSjoQkXN92AyL07Y3DxR5iBg9zRhZ8t6+IMOzCm6CvUFU48VyBxUsvckcitKhSAdNyEUFsKjh8NuceM0XWkZLCvPFT/0/1PRQgE/vL1tIttp2O00TBT9A90nbYfiuiJup6IsBpXHKK0Vbl7SvYj7COMTxnCZjaCXanSM3YZcUrPEwvj7E99FtzeceGWsZtEW4/ySa1FiqIcpRWWDhFtow7vo3/0inEf2hGutqDWwnLoS1qWXwFjJeQvi/pAocMCJ278Hb9Nx1N7zQ+grqxK2Q3qJ0PSbteIFQsV/3iiyj6aiya3nmBCmQsq85ggEBgfeQnvLg1CrTaipvxc6fXxpgxnO7ECg330Yu1s2IhDy4NSSL6Hayhlqs0PyJ59SbkWpEJzjJoQTxhBS4pfSMpGuPdKMc+fBsvI8mJefBY0p9fW4KPufcDslK6Igi5LbqZQAJFouVCxckENyN41KZqPWT798QtDngs/VDb+jUxDE4RjGWAnjyNqLugh5NEXKasSW2EcJ9/BXDdfBERjf6hy9R5OmACWGOlH4nv4lkkiEcarEfbLzkzvyALmF7noRvt5wkU3KgksuoXmLV0NrSm1M2GT757/HjoC3ox0nvvdN6CqrMOOeH8Y+MMaegx/sQvufHoDaaELNNfcIbwW5m9x6jgmh3BLm9cZEoLvjt+jv/ScMxnpUzdgAtZqLvvJVORmBHuc+vN16H0II4PSy61FuWckwZSECcitKhUAcNyEMBYNo/+nDcOyWyk6I0hMq8WNaugLl190AX2cH7G9uhX3b6/B3dYqjkhXOtHgpLKvORe7CM6DSKsetjqw/VCdxyN00Uj+R4sIClEJ1ZKOC00NEkWonltZCV1iR0NigbCKMzzavQ5v7cNjqNkbL05aiKucUdHka0eNtjoozDHc2qs2CGJZKBJGIItU/VKmmTorJuky1A+37XhuKUaWagaKI/LwV7BaqkC+wRG6j77m/oefZP6DgY59E0SevTOTUQ3N1v/w79L/1DxjK61H1uQ1Qa+V9LpVbzzEhTMo14knjRYCK1rec2Ai3833k5V+A0oqvxDsF988SBDoGd+Cd9gdB8SpUjqLYtChLTs7HjCAgt6JUCPJxE0LaN5HCwe3bYHvlJfi6u6ErLob1/IthPmvliFg8Ilruw4dgf2MLBndsR9AVjrfSWPJEX8uq82CYUZ806850MQ4FA/D1tsPTeXwogQ1ZFP39YZI7omm0olZixN00ksxGYylMyvkyiTAetG/FvzseO4noEb6jYwj9QS96vE3o9DSgS/w0CnfTQMg3Qhw6lfEkS2Khvgpq1fgJPSiu0XnsHWENdB7bG55Pox12C62YOd0rxeMVjEDThrXwNBxDzZ33wVA7Iyk7pe+Ult9vhLvpfVGTsvTSLydlnfEmlVvPMSGUVby82EQI+P39UtH6PpRWfBV5+eczYIzAmAi0DLyCA50/h1qlx9LKW1GQM4+RyiIE5FaUCoF2SoRwKnsPer1w7N0N+xuvw7lv71DZCn1ltbAaWs4+B9rCoqlMLfsYciOkrJLRJTGIKAZdJ8cFknvYcKbTcGyivrgGGmNuUvcd9LtHuqI6ukb89+QxjPK5pBIRe779YRx17EBIWAnpJ/Yso4GQH33eFokkNg4RRV/IM5Kzq3Qo1teOcDct0tdA7fNj4N3XhEWQYr0ED7QUigLy1kWrRUF5bpmNgK+7C8dvvB66snLUfv/BpLzEiSDoH+xD069vRsBhQ+l/rEHeaefJBq7ceo4JoWyi5YViQcDlPIiW43dCpdKguu5O4ULKjREYC4HGvufwQc/T0KpzsbzqDlgMyXlLyOgrDwG5FaVCEJCNEEaf1z9gw+D2NwQ59BxvCP9JpULO/AXCamheugJq4/Tj9OTEWLidOvpHxCWKOMXuZlBdxdFNm1ccznZaKiWxoTjFokrZXBGnQxih1kKXUzyi9uJQDGNuCTRGSsYTn7tmMOjHuyeexH7H63CqPcgNGrDQdC5Or70aanX87sXBUBA2X/sIkkhWRU8wXCw+0lQhFSwDgKU3BGs/UKKrRe28/0D+3JWyyULOe8prjY1A3wvPoeeZp5F/2eUoviL5WUCdxw+g9Q8bodLoUH31RuF2LkeTW88xIZRDqrxGXAj09zyH7s6nodWVhovWa8xxjefO2YPA4Z4/oqHvL9BrrFhetR4mfUX2HD6LTyq3olQI1CkhhNFn97Q0CWJIMYeBvnDheZXeAPOyFSJLac6pC+MuCaEQbMU2yL2WrE5UFsPTGU5gQ0TR19dxcsycWiNIoSCKUdlOiTwmK2nKeFjJSRjJQti+82E4WikudbgOoYhLrVyB8uWJqUNIpH3A14nm4y+jpe1N9Kg6YSsAvCe9e1ChQFcR5XIaTmBj5OcGJX20ErqXSH3V6jvuhrFenoyxfW/+DT2v/kGUvan5wj1QG5LrNSC+Wynem8zvMjXZFkryeVKuKJN8vqyaXhStb/kxBu3bkWtejIrqm+J+g5lVgGXxYemuHOz+DZpsL8GoLcaK6jth1BZmMSLZcXS5FaVCUFWMniPi5Hr/gEhEM7jrLYQ8YXc/TX4BLCvPEZlKDdU1CoFt+tugoube7pYwUZRIorezCQGn7aTJ1YYc4WYq3E0piQ1ZE0tqoMlJ3YvNcQmjyJzahYB3YHyQRlkYAz4HHC07xk4qo1KjbOkaWGqmV4cw4HaIuoFURN7XT2Qc0OYVwbrkYmgWLkGPukvEI1JcIlkS7f6Ty5NQcpvoDKeU6TQ3RWUwpn8DeYYIAv6+XjR+aw20RcWY8cBPZHv5Qi9C2v7vh3Ae2Q3TKWei/OPfTPracus5JoT8OVMkAsGAS9Qn9HlbUVhyJQqLP6nIffKmUo8AfVHv63gU7YNvwKSrwvLqO6DXcBxJ6iWTvB3IrSiTd5K4ZlYMIYzeddDtxuDuHYIcut7bP1Tz0DCjLlzC4qyV0FozM92/32ELWxE7m4aJIrmd+kbGwwmybCk8KdspJbahjK6pbkQY/c5wCY3hkhpSHONkhHHE5lUwFs5B9YfunNKRyGW3f9eLsO/fMoRhTu2pIluoac7ScTPDugJ2iSAOk8R+X9tJexhZBoMyndbDrC1K+oP9lMDgQWMi0L/pBXT/9gnkf+QyFF/1OVlRCrgG0fTEWpGoqnj155G/4qNJXV9uPceEMKni5Mmng4DX04ymhlsRCnlRWXMzcs1nTGc6HpvBCARDfuxt+yG6nXuQZ5iJZVW3Q6vOyeATZ/fR5FaUCkFbkYQwGht/bw/sFG+4dQu8rc3hP6nVyD3tDOFSalq8DGq9vKnb5ZYdvaDy9XUOuZtGktn4+tqGyPLQnlRqUQLDUCrVT5RcT7X5JYryiokmjB07f4KgP5yBdqymMeSh/qO/iBl2sjY7j76N/l0vwNW4X4xTafWwLDwH1qUfgaF0arHhnqAT3Z7jUZbERvSOWQbDIlkSw3USiSRadWWKwj9mMLOgY/O9G+A+9D6qbrsTObPnyn5id3sDWp5aB/qcV/3XOuRUJy+hndx6jgmh7NeJF4wHAfvANnS0PAy1xhIuWq8rjmc4980iBAJBD3a33ot+90EU5CzAkorvQcP1LDPyBsitKBUCouIJYQQncuX2HG8Ml7DY/gYC9rBLojonB+blZ4tMpcY589I63jDeOxH0eeHtaRGJbMKupxSj2CRqKo5uKr0R+uLqIXfTSDIbJWTQbH5tHdy949chpLMYCubAWr8a5qqzodYaxoSKrC0D774C29v/HioNorUWw7rkI8g74/ykuNiOLoNB7qbdnhMIYmT9Sp0qByWGGVKG0zBJLNBXTlgGI977wP3jR8Bv60fjN6+DxpqPuh89mrLvD9ueTeh64XFh9a/5wr3QmqzxHyaGEXLrOSaEMQiFu6QWga72J2Hrex4G4yxUz1gPlTr1LjapRYRXHw8BX8CJXa13wu5pRIlpGc4o/xYr8Qy8LnIrSoVAmDaEMBqvkN8P5/53Yd+2BY63dw9l8dQWlwirIf3oy7M3GVTAaR92N40ks+luQsjrPunaaUz54bhEKT6RktnTW3bDAAAgAElEQVQQcVTr5LO62pu2omP3Y1EJZaK3qYLGYEXA0x9+AaDLFfGEeXUXwmANZ2YkImzb9QLsB7YOu4XOWBB2C51NbqHxZTyd7mdzdBmMMElsxMRlMMIksdBQA62Kn0emK4NYx9te2YSuJx+H9cJLUPLf18Q6LOH96IVX5z9/Klybc+pOQ+Wnb0nKvZVbzzEhTPhV4QkTjUAo5EfL8bvgdh1CXv5FKK24NtFL8HwZhIDHb8POlvVw+tpQYTkPC0u/xu4/GSRfOorcilIh8KUlIYzGLuBwiCQ0ZDl0f3Bw6E/G2XMEMTSvWAmNOXXJVxQiZ+GO5rd1n5Tt1NvTejIRU6lE5sOhBDYSWdTllyXlIXVkltHhOoSRLKNly66Hp/cD2Bo2YbD1LSAYtr7pcioAmwq+BjoDoNIZYFl4btgttERZCYhGlsEIJ66hJDajy2CooUGhvnqoViKRxGLDDOjU6VWGRSn3frJ9tPzgbrgO7EPVzeuQc8qpk3VP6t+DPg+an7xNWPkLVn0SReddmfD15NZzTAgTLkKeMBkI+H294aL1ARtKK9cgzypfcdBknIfnTC4CLl83drSsg8ffi1rrJZhXfDUnDkgu5LLOLreilPVw4y+W9oQw+mi+zg5RvoKS0fg6wgXGodXCdMYSUd/QdPoiqLTx17RTiKySsg2qkUikcCjbqVQaw28PlwCJbkS4yHo4TBTDcYqJcG8jUjjYvA22Yy/B5+yGLrcY1pkXw1y9csTLN29/G7p3PQ1n7zuALhDeXlAFg2Uuihd9Bjml85OCUzImJauQ3d+FzqjsppTl1BkYnWk2XAaDyCHFJIZ/ZnAZjGkKJTBoR8MNX4XGbEHdQz9NysuOeLdIn8WmJ25FyOtCxZXfg2nW4ninmLC/3HouVkJIVPwnAM4GQL4AjwPYAED6hE94JkoPeQuAhQAoEnkngE8BiFQcfQLA1WPMQN8Uw68QJ4Y5oxRlQm9UBk3mdBxA64mNUKl0qK67Cwbj1ILNMwgSPsoECDi8LdjRvB6+oB2zCq/ArEL62uGWCQjIrSgVgllG6jl60HYfPRyON3zrTQSd4UcDtdkCy5kUb3geDPWz+IXOBJeQ4vG83U0js512nUDQ4zpplCbXCr1IYkMlMaRkNuR2qo/dqiUI4YFtsL39Eny2LuisJaIkhHlBmBB6Oo7DtltyC/X7xB709TOhLjXAYz+CUDD8O0PBbFjrL4S56iyotbGvr5DPo9iGw98nWRDJkhjOcjp5GQxyOa3jMhhxCHJgyyvo/PXPkXf+hSi9+ktxjExu18GD29H+l4egNppR88V7xWchUU1uPRcLISwAcADAewDuA0BVIH8I4EEAt01ycJLaIwDuB/AyAJrrAmlc5LUKEcIzAXxh1Fx7AZzsRD/2ghmpKBN1qTJpnr6ev6On8/fQ6cpRXX83NBpTJh2Pz5JgBAbcDdjZcicCIZewEs7IvzTBK/B0qUBAbkWZijOOsWbG67mQzwfHO3sEOXS8uwcIhN8568orpXjDc6ArTtwDl0LkmpRtENH2D/QMZzsVyWyaRGIbBEe/y1dBl186snZiaa1wRR0d0ydcRv/6MByHTi5Mb6icBag08DSH3+WTlTLvtA8Jt1B9cZX4XcBjh71pC2wNm+EbbBW/U2tzYKk5F3n1q2Gwpv+L3uEyGMPupuOXwQjHI0ZqJnIZjLE/Dq0/ug/Od/eg8qZbkbvgtKR8ZqY6ademJ2Hb+Tz05TORv/RiDOx9ecwXJfHOL7eei4UQknXvuwDoUxqpXkr/vR5AedTvRp+V0kE2APg2gF9OAAQRQrIeLosXrKj+Ga8op4FNRg0lJdfe/CM4BnfCZF6G8upvc3xYRkk48Yfpdb2Ht1vvRTDkw8LSNajMY3fjxKMs74xyK0p5Tzfualml5ygzqf2tbcKl1HPs6BAoFDtEVkPzshVQ5+QqRDTps41QwA9vb9uobKcnRMzi6EY1EiNup+RuShZFb187uv/95DhJZcIzUPyiddlHYDntw9AYx5aRsAz3HIStcTMcLW+NtBrWrYa5mjKUpqfVcKzbMFwGI2JJnKwMxjBJzPYyGBR73HDDV8TnvZ7cRRXmSk6fqebfroen9Qi9BoEIkhVNRQHvMM1bgfKP3xD3s6rcei4WQrgFAL3G+UzUJad0UccBfAzAP8b5KlwjWRSLAHiZEKaPwlD6TgMBJ5ob18LnbUdRyVUoKL5c6Vvm/aUYgS7HblGnkNoZFd9GqWk6759SfBhenpPKZNkd8La2CGJIP1TrUDxq6fUwLVkGy8rzhMVApdFkGSqJPW7Q4xwqhUGlMcJlMU4g6I5E98S2nq6oCrVf/kFcD79hq+HrIhFNploNx0KPymB0e08IN9NI4prxy2DUCTfTSK3EbCqDQZ/7jl88Csu5H0bZtV+L7SLK3Kt/5/Po3vTk2Kuq1Cj7jzWitmY8TYmEsBPAY5JFMPos9C1BVsIfjHNAQmYBgF8BuBVAGYC3AXwLwLaoMWQhpPQ8lIqKCtZQjCH1fy0O4LLqzWkcuGRsV4/7BJobb0Mo5ENl7a3INZGRmRsjMD4Cbfat2NfxKNQqLZZU3IzCXPp64paOCMitKBWCUdbrOSpi7jr0viCGgzu3I+QOR5VQXTLLWavC8Ya16e9yqJD7BrLiUZ1ET8TdtOsE7O9tG8PldHjHVJut/uv0yBh/i1gNBxo3Y3CE1XAWrHUXZpzVcCyEqAxGr7dlFEkcrwxGpFYikcXMLYPR9uMH4NizCxXf/h5Mpyc2cUv8t3TsEc1PrYO75YNxplPBWD0H1Z+7M67l5NZzsVgIKfr3JgAPjTpJM4CnAKwd54QvAlgpuZSSiym91qN/6dX8HAAd0rhvSBZEilGk4IDvAFgKgKj0jhjRy3pFGSNOGdXNbtuKjtZHoNHkoab++9DqCjPqfHyYxCNwov9FHOz+DTQqI5ZV3Q6rkUKiuaUbAnIrSoXgw3ouShBBjweOt3fC/sbrcB54FwiF3bT0NbXCamg5exW0+ZS2gFsiEQg/+I5XmJ4efOei+nOUc3B6bchq2LgZPnuLmIxiDc0154hENJkQaxgrQlQGg2IQoy2J45fBqJEsiWGSmO5lMIIuFxqu/wpUOh3qf/ILxbmLRmTY8JPrxMuT8dpUXpTIreeSSQhfAnARAMri8IIEUp7kakqJZm4fBzhyOKckNu8A+Pg4fcgyeUf03+jNErfsQ6Cr/dew9b0EY84cVM24AyoVpynPvlsQ34mP9f4ZR3r/Fzq1Bcur18OsDyc74JY+CMitKBWCDBPCcQTh7++D/c03RDIab/OJcC+VCrkLTodl1bkwLVkOtYEckLhNFwH7/q3o+Oc4hemn6Bo30Z7CVsNDGGjcNIbVkGINV2ZUrGGs8iFcBvxdI0giuZ26xiyDUTmUuCbscloHQ5ok5KM44o6fPiySSpV95X9ihUf2fsl4USK3nouFEJLL6KNSmYlokCdzGf0jgCsAEMGLzha6CQBlGJ0oBzyt9/8AUKxiLI0VZSwoZWAfSl/dfHwDPO4jsBZcgpLyazLwlHykRCJAivSD7qdx3PYvGDSFWFG9ATk6zlyYSIyTPZfcijLZ54lxftZzMQDlOXFcEEP79jcQsFGVLEBlNMK8/CzxUJkzb74iapjFcBRFdhmZZXRUYfopJs+I9aAB7yDsJ7aIRDQRq6FKZCg9B9a61TDk18U6VUb2I93mCPQJkkgWxPjKYNQjV2tVHC7tjz4k3MPLb7gR5iXKjf1PxosSufVcLISQksqQvf6qqJtSA4Bew02UVCZixSNCGF0MZzMAqqJKZHG8RhZEIoSxBgOwolTcx1i+Dfl83aJofTBgR1nl9bBYV8m3OK+UlgjQQ82Bzp+j1f4acnXlWF61HgZtflqeJRs3LbeiVAjGrOfiEEQoEIDzwD7Yt22BY/dOUEkLatqiYljOPkeQQ30lewfEAelQ16E6hHuoDmE3dNZiWBcP1yGcypzxjBm2GlKs4faoDKUUa5i9VsPxMHQFBgRBDJNEIosN6Pe1n9TdpCkcKn8RsSSmsgwGuYWTuyjUKtQ//Auo9fp4romsfZPxokRuPRcLIaSyExRDSOTMLiF8IwCKjpyo7ARReUoQcxmAf0nj6PUDZSd9AMDGcaSVI9U83AOAitrH0lhRxoJSBvdxOvah9cQ9UKn0qK7fCIOB3llwYwTGRyAYCuDd9ofQ6dgJi34GllWtgy5N3GiyXa5yK0qF4M16boqCCLqcGNy1Q1gOXQcpXUG4UcF7cim1nLkSGgtFtHBLNwTYajg1iZ1cBqMBvd5mhIZKJoTnNaoto0hiPay60riyyE5thxCf2fZHfgTzmStRft0NU51GtnGJflEit56LhRBSVDZ9g+6XykjMBPAjKclMdGF6KsBBmUGvjUL/r1LR+ZsBUJEbSipzKoC5ACj6kgjiPwH8FgCNp9qFlIWU0giRmWdXjJJkRRkjUJncrbf7L+jt+iN0+krU1G2EWsM1qjJZ3ok4WyDoxZ62+9Hr2o984zwsrVwLjZpjjRKBbTLnkFtRJvMscczNei4OsMbr6uvugn3bVmE59LW3hbtpNCJ7IVkNTYuWiAQW3NILAbYaTl9evqAHPaIMRsSS2IixymDo1Tko1ie/DEb7z36Cwe1voPx/vilcvrOtya3nYiGEJAMiceTGeTYAcsp/XCo5EYgSUCOAVwFEB3GZpbIUVFaCns7fkAjfPmkcVR39PYDlAEqlWMM3pbm3xyF8VpRxgJWpXentTFvzA3AOvg2TZQXKq74VqVeWqUfmcyUAAX/QhV0tGzHgOYri3EVYVHGjKE3BTbkIyK0oFYIE67kECoIIhKfhqBRvuA1Bx6CYXW0ywbzibFHCwjhrDuuQBGIu11QRq+FA48vw2ikhPhCONVwlxRrWy7WVtF8nXAajeYS7aZfnOPwhz4izaVV6FOlrpeQ1lLiGymBUQ6ua/OUKPbsdGtyGfbaXMODrQp6uBKeZLoD2liegCgZFdlG1gehCdjW59VyshFDpUmBFqXQJybS/QGAQTQ1r4fd1oqj0cygoIo9lbozAxAh4A3bsbNkAh7cZ5eazcVrZ9bK4xLBcpoaA3IpyartM+CjWcwmHNDxhyO+H4929ghw69u4GAuF33bqycmE1pJhDXSmVUuaWTggIq2HvBxhooFjDN0fEGubVrYYlSzOUTleGY5XBoNhEb9A5Ymo1NCjUR8pghElisaEWOvUwuSMy+Hz7wzjq2IEQgtJ4FVQhoOz9EM45vhyV11M1uuxrcus5JoTZd8cy/sQedyOaG29HKBRA1YzbkZM7P+PPzAecPgJufy92NN8Bt78L1XkXYn7JtWwdmD6sSZlBbkWZlEPEPykTwvgxi3tEYNCOwR1vwr7tdbiPUL29cDPOPUWQQ3Jd05hMcc/LA1KLgLAaNr0uyCFbDRMvi5PLYDSILKejy2CooEK+LlIGox7ugB27+/8eRQaH96YKAuc6LsaixV9M/IbTYEa59RwTwjS4FLzF+BEY6H8VnW0/g0aTj5r6e6HVcYHi+FHMvhFOXzt2NK+HN9CP+oLLMacoOrly9uGh1BPLrSgVggMTQpkF4W1vE8SQfvzdXWJ1lVYH05KlsKw8D7kLT1dsoWyZoUqb5ca1GubPRF79hWw1TKAko8tgREpgkCVx0N8T2ypBoNw4G1fWjpeDMrZp0rWX3HqOCWG63hTe96QIdLb9AgP9L8OYcwqqZtzGResnRYw7EAJ2z3HsbLkT/qADc4r+C/UFVAGHm5IQkFtRKuTsTAhTJIhQMAj34UOwv/E6Bne+iaArXEmLMpOaz1ol4g0NM+rYoyBF8pnqsmNbDY2wVJ8Daz3VNeRYw6liO9G4SBkMIodv9f4fAqFwSZixGlkUq3MWIl9fgQId/VSK/2/RFkOtUidje4qZU249x4RQMaLnjSQagWDQi5bj6+FxH0N+4WUoLvtcopfg+TIUgX7XB9jVejeCIQ9OLfkyqq2rM/Sk6XksuRWlQlBiQqgAQQS9Xjj27BLk0Ln/HSAYjnvSV1ULYkjxhtqCQgXslLcQKwITWg0jsYY6qojGLdEIPNu8Dm1ucs0OnTw1/WoclqJR6WDVlYUJIhFFiTDm6yuRo7EkepspmU9uPceEMCVi5kXlQsDn7URT41oEA4Mor/omzHnZl7pYLqwzbZ1u5zvY03q/iG04vfwbKDfz3VGKjOVWlAo5NxNChQgisg2/rR+D27eJEhae45RonR5gVcg5dWE43nDpCqiN2ZcdUWFiims7YavhVgw0bIqKNQxbDfPqV8PIVsO48Jys80H7Vvy747GxYwihxuqSr6DMOAv9vjb0+drQ76V/W9HnbYM7GCmNPnIVo9o8ZFGkeMUwWawUBFKrVm5x+9FYya3nmBBOdlv572mPgGNwL9qa7oNKbUBN3d3QG6rS/kx8AHkQaB/cjnfbfwwV1Fhc+V0U554hz8K8yoQIyK0oFSIOJoQKEcRY2/A0NwliSDUOA/1UZhlQGQwwLztTkMOc+QugUme2i5uCxRP31oasho2bMdgclaGUYg3Zahg3nuMNGJlllEyCIVCyUSInsyxn4dLyG8bN+O0ODEoksVX82+dtRb+vXZDHsd1QVcjTFksWRbIslqNAH7YwWrRFisssLreeY0KYsGvNEykZgZ6uZ9HX/Sfo9dWort8IdVTaYyXvm/eWegSabS/jva5fQK0yYFnlWuTnzEv9prJ8B3Iryii4qSbvT0bV5N0AILom72jpUJ3dNQDOBVAJoEmqv3ufVHs3VmkyIYwVqRT2o3hD13v7RQmLwd07EfKG67VpCgqFO6ll1bkwVNWkcIe8dLwIDFkNGzfDO0AfX0ouRFbDVSIRDVsN40V0ZP9gwI939z6J/d7X4TC6kdMPzHPMx/JLb4VaE39NYCKZdn+PsCSGLYrDlkX6/VjuqeSCKlxPdRWSdTEcq0j/bdRQSfXJ25j1FK0XY5555ZTIptx6jgnh5DLmHhmAgCha33QfnI53YM5bibJKqjOXKdc/AwSk8CM09v0DH/T8Dlq1Ccur1sFimKHwHWf29uRWlBKalKr4AID3ABCZmwXghwAeBHDbBIg/AGAFgKcBULDM6QDuArAJwKfikBQTwjjAUkLXoNuNwd07BDl0vX8ACIXjpAwz6gUxpIQ02jyrErbKe4gBgbDV8DAGGjeNYTW8QBBENccaxoDkcBd6gdL+04fh2L1jKB5X/FWthmnpCpRfd0NCLev+oHfIihi2KJJlMeyG6gk6xtx7jiZvTLIoXFBVOjFm3HqKUGGWacWEls7xAJNbz2XKEzEryrg+gtnZOeC3o6nxFvh93Sguuwb5hZdkJxB86ikhcLjnD2jo+xv0GitWVG1Arr58SvPwoOkjILeilHZ8C4DvAqC3AQPS7+i/1wOgyxD53egDFgPoHvXLrwD4OYA6AMdjRIT1XIxAKbGbv7cH9je3YuCNLfC1toS3qFYj97RFghyaFi2FWp8+8U1KxFjOPU1oNaxbDWPBTDm3k7ZrkYt1x+OPjSSDkdOo1Sj70hpYVp4jy/ko+2nEokgksZ9iFYV1sR1B+E/aA2VAtWhLhNspEcITrn1jWh8p5OSisjU4xRLfOeTWc0wIZblmvIhSEHC7jqL5+B3iTW3VjHXIyWX3P6XIRun7oLfD73f9Cs0Dm2DUlmBF9QYYtZxNMBVyk1tRSmfcAqAVwGeizlwrEbqPAfhHHFiQG+kOACsBvBnjOCaEMQKl5G70PeI53hB2Kd2+DQF7+D2COicX5hVniUylxjnz2INFyUKM2tuw1XAzBlveRCjgFX+lkhXhWEO2Go4nyqDHjea718N7QkrINLqjSgXj7DmovvXOlN6GoHBB7ZZiFIkktqPfGyaLsdVUVKHCOAdXVMd3Drn1HBPClF4zXjwVCNj6NqOr/ZfQaAtQU/99aLXsspMKOaTjmvQWcF/HI2gf3AaTvhrLq+6APkNSXKeTPORWlBI2nQAekyyC0XCRnxFZCX8QB4Y3SK6mFQBo3lgaE8JYUEqjPiG/X5SuoBIWjj27EfKH67FpS0pFIhr60ZexJ0K6iDTgdcDe9DoGomMNNQZYalYhr+7CrLEaEkkOOp3w9/WCLOORfwN9ffD3Rf67F0Hn2C6a0fKm2Nv6B+lrV5nNF3Sj39eBP7fcOa7LKe3cpCnEtfXxnUNuPceEUJl3jHeVRAToy6qz7Wew215DTu4CVNauhUqlSeKKPHUmIRAM+bG37QF0O/cizzALy6pug1bNNarklLHcilI6Gz2t3wTgoVFnbQbwFIC1MWJAT/jvAvgXgGtiHEPdmBDGAVa6dQ04HBjcuV1kKnV/cGho+8bZc8MlLFacDY05tuQW6Xb2TNtvJlsNKeaPrNr+vj4EiNz19kokry+K/PUOJVMaT7YqvQHawiIEbH0IulxjdxMWwrmovpXydim7TVhPEWQhnIsrquM7h9x6jgmhsu8Y7y5JCFDR+ubG2+H1HEd+0cdQXPrZJK3E02YiAoGgB7tb70G/+xAKcxZgccX3oEmj+kbpLhO5FWUCCSEFiVEymWoASwGE6xOM3cjqeEf0n+hBk1vmI+DrbBflK+zbXoevsyN8YK0WpkVLkLfqPBF3qNLGn30x85FT3gmF1bCZ6hpShtITYoOqIashxRpSbipltFAggICtf5jkRZO9IfLXCwQmSqoMqE0maAuKoC0shDa/MPxvQSE0hcO/U+fmCrdoJcUQTkcKBwe2hOspjsGqVCGEYwjzzotrCbn1HBPCuMTDnTMJAZ+3HU0NaxEMOlFe/R2YLRTWw40RiA0BX8CBXS13we5tRKlpOU4v/ybUbGmODbxp9pJbUUrbJdfORwGMfs0bq8so6ds/ALgIwCoAB+OEgS2EcQKW7t2FpenIB8KldHDHm0MudmqzBZYzV4p4Q0P9TI43TANBi9jRviOwNWxKSaxh0OsV9TFHunGSdU+y8PX2CjIYyYQ7HqSaPKuw7BHBC5O88L/Rv1MbDDFLZESWUXrhRT+UAV6lSkqW0Zg3FmfHgROv44XOR9FhlYpa0Lc9HQVAmQ24pPR/kFdLlYdib3LrOSaEscuGe2YgAg77brQ1/wBqdQ6q6++BXk8hPdwYgdgQ8Pj7sbNlPZy+dlRaPoQFpV+dUr2h2FbjXhEE5FaU0rqUVIbSQ14VJQkqKEev/WNJKvNjAJRdlAjh1ilIkwnhFEDLlCH0QO98Z49wKXW8u3fISqOrqBTEkGoc6ooooS03pSMwmdXQkB8fySeXyzCxi47Zi5C9MOEL2u0Tw6JWQ5tfIFnziqApKBi28kUIYH5BUizTRAopwZLtlZfg6+6GrrgY1vMvhvmslQktOZHMe9H82jq4ej9Aaz5wvBBw6YEcLzCjF6jsB3IK56L6Q5xUJpkyiMzNilIOlDN0jZ7OZ9DX81foDbWorrsLanXsb7cyFBI+VhwIuHxd2NF8BzyBXtRaL8W84s/zG/s48JtK1xQRQio7QTGEVHYi8nR1IwDS8hOVnaAj0tiNAK4E8KepnJljCKeIWgYOCwwMwP7WNkEOPQ3HwidUqZBzyqnheMNlZ0Kdw3HNShf9sNWQMpRuG85Qaq1DXv1qmKtWAt6gRPSGLXkR8heQXDrHjcGTAFBpdYLoUYKWsCUviuxJrp1k+VOp1UqHTJH78w2248TmmxAKhpNCjdU0xkLUX8pJZeQQIBNCOVDO0DUoc2Rr071wOfbBYj0XpRVr+IE+Q2WdrGMNeluws3k9fEE7ZhdeiZmFn0zWUjyvePYVzi1ye7hQYXoqSr9fKkxPhcZ+JCWZiS5MfwTAawCulYRFAcq/A/CEVHswWoZHAXTFKFTWczEClU3dvK0tghhSvCEl+BAfDL0epiXLheUwd8Fp/KCvwAshkrMM2IbInre3FS7bfnhCRxHUOsM7ptJ3lLKKKpX2j30IlTFnKEZPkD1h5ZNcOqWYPbXJzM80SbgDfnc/+g79GbaGzUBoorhKFYzCQshJZZIghpOmZEUpB8oZvEbAP4Cmhpvh9/eipPxaWAvIq4sbIxA7Ajb3Uexq2YhAyIVTiq9Bbf4lsQ/mnnEhkCJCSHs8FcAjAM6WHtEel0pORD8NUFGtV6MyiBIRvHqcA35BIoqxnJ/1XCwoZWkfIhiug+8JYji46y2E3G6BhCa/AJazVsGy6lwYasi4zS3ZCFA5EX8kXk+4cYate2GLnvTT3zd+chZ69USiotRTUgJ0dcACo3YOcgsWQV9UPmTpo/qV3ORFIOhzou/Ic+g//E+EAh6otDnILT0djradQCh48mZUapQtXQNLDReml0NSrCjlQDnD13C7DqO5cb1wvamesR7GnNkZfmI+XqIR6HUewNtt30cw5MNpZV9HhSU+BZDo/WTqfCkkhKmElPVcKtFPo7Wp4Ldj9y4MbNsC14F9Q4lC9DUzwvGGZ62CNj8/jU6knK0GPZ4hUheIInuC9PWHyR9Z/iZMzqJSQWPNl5KxUFKWUW6c5N6ZX4iQyo/Bpq0iEc2IDKXVq4RLabyxhspBMT13Egr4YGv4N3oP/QVBrx1Qa2GtvxiF8z4Otd6M9p0Pw9G6Q5I9ZYSWkuNUrkD58hvizi8gt56T2+UmWbeAFWWykM2yeW29L6Gr49fQaotQU38vNNq8LEOAjztdBDodu/BOG3kSAmdUfAelJqouwC2RCMitKBO592nMxXpuGuBl61CySNm3vwH7G1vgbW4Kw6BSIXfh6YIcmhYvQzxZITMVR1FMXSRn6cEw0YtK0iKRv6BjcGIINJpRbptSFs6CouGMnNb8uJKzDMUaNm7GYPObwipFTW+tg7V+NSzVq6DWsaUwWXeTworsTVvR+/6z8DvJw18FS+25KJx/BXS5JUPLUr/B5m2wHXsJPmc3dLnFsM68GObqlXGTwfDHVN7QCCaEybpBPG9aIkBfvB2tj2JwYCtyTKehsuaWKX2Q0/LwvIRzBfEAACAASURBVOmEIdBqfx37Ox6FWqXDkspbUJhDnobcEoWA3IoyUfue5jxMCKcJYDYPJ93mPXFcuJTa39watmLRQ6cxB+blZ4pkNDnz5mdkvKEge3a7VEA94sI5iuz19Q652Y53Tyg2c0SJBcmSJ2L2IrX2LHlJxTDgc45jNVyJvPoL2WqYwA853Rtnxx70HHhmyEKbW74URQs+A0MeJZhObpNbzzEhTK48efY0RCAYdEtF65tQUPQJFJV+Og1PwVtONQIn+l/Awe4noFHlYHnV7cgzUg4SbolAQG5FmYg9J2AOJoQJAJGnoPwXATgPvCvqGzre3omQL5wdUVtULIgh/egrKtMCKpGcRRRT74G/j+rs9YwqrN6LQF8fQv7xM0DSQSkWL0zqwuROZOQUWTmHf6fONSkmOUvYangUtsZNJ1sN6y6AueYcaNhqOOU77Or5AD0Hfg93T7hcrLFwHooWXIWc4lOmPGe8A+XWc0wI45UQ988KBLyeVjQ33opg0IWK6u/CZFmSFefmQyYWgaO9f8LR3mehU1uwono9TPqqxC6QpbPJrSgVAjMTQoUIIpO2EXA64dj1Fgbe2AL3ofeHjmaYOQuWlRRvuBIasyUlRyaiKpKzjEP2AhSz198PBMdI5BG1Y40lTyJ5w5a8EWSvoBBqozElZ0zEokNWw8bN8NooJSmg0hhgqV6JvLrVMBTMUgyRTcR5kzmHd6AZPe89A0fbLrGM3lItiGBu+RLZMZRbzzEhTObN4rnTGoHBgR1ob/kR1GoTaurvgU5fltbn4c3LjwC9xT3U/RRO2J6HQVuIFVV3IkfHxaOnKwm5FeV095ug8UwIEwQkTzM2Ar6uTtjffEOUsfC1t4U7aTQwnbFEWA1NZyyGSqfDUCHxl6mQeBd0xSWwXhBfIXFKfBPJvikse4L0SUlZyMrX1zfk1jquvCg5C5VZGGXJE/8dqblHxdR1uqwQecRqONC4GfZmqmsYFWvIVsMJ7wDF/PW+/3+wn6CKQSFoc4pFjCDFCqpUqanPKLeeY0KYFV8TfMipItDd+Tv09/wDBkMdquruhFqtn+pUPC5LEaBA8wOdP0OrfQtydRVYXrUeBq01S9FIzLHlVpSJ2fW0Z2FCOG0IeYJYEBDE4tgR4VJqf2sbIolU1CYTTCvOhr+9DS6yJkYsc5T8QqWCaekKlH3teoTcrpPI3oiMnH19CDodE29Fqw2TumiyF11QvbAIopi6RqrLEMvBsqjPeFZDc/XZsAqr4WzZLV5KhD/gsaPvg7+KRDBUWF6tt4isoXn1F0GtSe3zntx6jgmhEm8o70kxCIRCAbSeuBsu53uwWD+MssqvKWZvvJH0QSAYCuCd9gfR5dgFi74Oy6rWQafhrHBTlaDcinKq+0zwOCaECQaUp5scAaqp53hnj7AaOva+PX7tvMhUGi0QoIrq4zeVwTAUqzecpIUsfRGXziKoLRYmLJOLZ9Ie41sNZwhimK2xhkG/G/1Hn0f/B39H0O8SLrb5sz+K/Dn/TzGxl3LrOSaEk36cuEO2I+D396Op4RYE/H0orfgK8vIvyHZI+PxTQCAQ9OLttvvQ5zqAfOMpWFp5CzRqwxRm4iFyK0qFIM6EUCGCyNZtBAbtaNpwK/xdneNDoFZDX1k9lHVTZODML4BmKBNnEdQ5OUz2UnCJqKA6lU+wjYo1zCarYSjox8DxV9D7/p8Q8PRTsKUgxgWnfBJao7Jqc8qt55gQpuBDyUumHwIu5yG0HL9T+JJXzdgAYw5njEw/KaZ+x/6gC7taNmLAcxTFuYuxqOI7UKu0qd9Ymu1AbkWpEHiYECpEENm8jYZvXodAf9+4EFB2zvoHH8tmiBR/dmE17D+GgQaKNXxjONYwrxbW+gsz0mooagS2vIXe9/4In6NdyIjqAxbOvxJ6c7kiZSa3nmNCqMhrwJtSIgL9vf9Cd8dT0OpKwkXrNWYlbpP3pHAEvAE7drZsgMPbjHLzSpxW9vWUBa0rHKpxtye3olQITkwIFSKIbN5G88Z1cB89DIRCJ8OgUsE4ey6qb92QzRCl1dmF1bD5DdgaKENpo9g7uU+aq84WRe8zIdbQ2bkPPQf+IEgwtZzS00XmUGN+vaJlJbeeY0Ko6OvAm1MSAuGi9Q9jcOBN5JoWoaLmu/wgryQBpdFe3P5e7GheB7e/G9V5F2F+yRfZhSoO+cmtKOPYWjK7MiFMJro8d0wI2LdtRcfjj41d6kGtRtmX1sCy8pyY5uJOykFgIqthXv1qWGrOVUxsXayoufuOCSLo6tonhhjyZ6Jo4WeRW7Iw1ilS2k9uPceEMKXi5sXTDQEqWt/UcCt83hYUFl+BwpJPpdsReL8KQcDpbceOljvgDdhQX/AJzCn6tEJ2pvxtyK0oFYIIE0KFCCKbt0ElJ9p/+jAcu3eErYT0E5VltPy6G6BSpyZNfzbLJZFnD1sNt2GgYRM8Q1ZDPcxVK9PCaugdbBOuoYMt2wUsOnMFik79NEyVZ6bVi1e59RwTwkR+iniurEDA62lBU+OtCAU9qKi5GSbzGVlxbj5k4hGwe45jZ8ud8AcdmFv036gr+I/EL5KBM8qtKBUCIRNChQgi27cxVIfwFapD2A1dcTGs58dXhzDbMUyH809qNaw+Bxq9STFH8bv70HvwTxhofAUIBaAxFqDwlE8hb8aHoVKnX6y+3HqOCaFirjJvJJ0QGBzYjvaWh6DWmEU8oU5Xkk7b570qCIF+1yHsar0bwZAXp5Z+BdV5nMV2MvHIrSgn249Mf2dCKBPQvAwjwAiMREDJVkOquUjlI6iMRCjggVqXi4I5l8M66xKotembyVtuPceEkD/1jMAUEejqeAq23n/BYJyJ6hkboFLrpjgTD8t2BLod72BP2/0IIYgzyr+JMvOZ2Q7JhOeXW1EqRBhMCBUiCN4GI5DNCLj7jmKgcTPsTSMzlObVXRCONZTJahgMeGE79m/0HfoLgr5B8QxGJLBg7uXQ6NM/6Z/ceo4JYTZ/qvns00IgFPKj5fhdcLsOIS//QpRWfGla8/Hg7Eag3f4m3u14GCposKTyuyjKPT27AZng9HIrSoUIggmhQgTB22AEGAEg6HOJDKUnxxqejby61TAWzklKzB6VkLCf2ILe95+F39VDeVGFW2jh/P+ENqcoY0Qjt56LlRCeCuAnAM4G0A/gcQCUVzgQA/KfBHALAErr4wSwEwBl4nBEjb0cwEYAcwBQXlia+48xzB3pwooyDrC4a+IQ8Pt6w0XrAzaUVlyHvPwPJW5yninrEGi2bcZ7Xb+ERmXA0qrbkG+kr0RuoxGQW1EqRAKs5xQiCN4GI8AIjESAMnoONG5KqtWQYhqd7bvRc+AZeO3NYgOmiuUoOvUz0OdVZZxI5NZzsRDCAgAHALwH4D4AswD8EMCDAG6bRAJkMnkEwP0AXgZAc1GADI2zSWMpP/GrAKiS6V8AfBTAdwBcAuClGCXMijJGoLhb4hFwOd5Dy4mNUKk0qK7bCINxRuIX4RmzBoGGvr/jcM/voVWbsLzqDlgMtVlz9lgPKreijHVfSe7Hei7JAPP0jAAjMD0EhqyGjZvh6W8Qk6k0lKF0elZDV/dB9Bz4Pdy9H4g5jUXzRS3BnKK509uwgkfLrediIYRk3fsuAHrKHZCwo/9eD6A86nejYS0GQLfh2wB+OQHmL1JWWIkoRrr9C0AegFiL2bCiVPClzoat9fX8Az2dv4NWW4qC4stht70Gn69LJJuxFlwMc95KrlmYDRchQWf8oPv3aOz/O3RqKypzFqLTsRvekAd6lQFVlnNRV3I11GmUNS0Y9KOx60m02F9PyDnkVpQJEut0p2E9N10EeTwjwAjIhkDYarhZuJWG/G6xrj6vFqNjDckFdLB5G2zHXoLP2QVdbgmsMy+GuXolvAPN6HnvGTjb3x4aT0Qwt2xRUtxRZQMnhoXk1nOxEMItAFoBfCZq//TK+jiAjwH4xzjnWiNZFMmh1ztOH0r/YwdwA4CfRfX5PIDfACiMsiROBB8ryhguF3dJHgLkytDW/CM4B8kjOrrRR0wFk2UFyqtuYFKYPBFk1Mx0nw50/gKtdkqfLR2NrpL0/62aQiyvezgtSCGRwZ2NN8AW6A0fJAHnkFtRKuRysZ5TiCB4G4wAIxA7AsNWw5fh6aeosIjV8CxYZlwA29Hn4WjbCYSCw8pOpYLWWAi/q1v8TptbgqL5V8JcsyprnqPk1nOxEMJOyZ2TLILRjWIA6Xc/GOdaPAlgAYBfAbgVQBkAovjfArBNGkOxieSOer7kNhqZajmAHQBWSDGHk908VpSTIcR/TzoCtr7N6GofzxiuRlnlGlissRq9k75dXkDhCBxrfxxH7JvCBGp0CwGz8y7CzLJrFX4K4FjHr3Bk4N8JPYfcilIhILOeU4ggeBuMACMwNQTGshpONJNKk4OiBVfCWnchVJrsyuQut56LhRD6ANwE4KFRQqOIzqcArB1HmOQKulJyKSUXU0oFRP8uk5LHdABYBWArgMUA9kbNMxvAYQAfiTGOkBXl1D6bPCqBCDQ3roPbFfZvH6up1SYYc+clcEWeKpMROOLeCzeC4xIpNQXUa8izXtnNERigU4x7jhyVEefOfiKuQ8itKOPaXPI6s55LHrY8MyPACMiIQNhquA3d+54StQPHa4aC2aj5MOWczL4mt55LJiGkhDAXAbgUwAuSKOnphVxNKdHM7dMghGSZvCP6epCLFTdGIJUINBy+DgF/Xyq3wGtnEALHtUAglm/oND+zJqTC6jl/iOsUcivKuDaXvM5MCJOHLc/MCDACKUCg4fnrEHCP/9ykMRai/lLKOZl9TW49F8vjBrmMPiqVgoiWyGQuo1Q24goAuQDC0aThtkmKC6TSExGX0Q8DeC2qD7uMZt/dT/sThy2EZNge++WE3lAn3Ea5MQKxILCj+Ta4Qt5xLWsGlQ4Ly74ey1Qp7bO/4xF4Qj62EE5fCkwIp48hz8AIMAIKQqD5tXVw94733KSCsXAuqj9EleiyrymREFJSmRYAV0WJowbAiUmSykSseEQIXVFjNwOg7AJEFiNJZa4H8POoPp8DQD5EnFQm+z4DaXtiu20rOlrpTVYkMDr6KBxDmLaCTdHGkxF7l4qjJOMccivKVOA2xppMCBUiCN4GI8AIJAYBe9NWdOx+LCqhTNS8KjXKlq6BpSY7cy/IredisRBS2QmKIaSyE5QRlNqNAO6cpOwExQpSysXLAFAZCWpWyWX0AakQPf2OYg01AC6Mugb/BJDPZScS84HjWeRBgFInt7c8DIed8iGRlZB+OMuoPOhn3irJyM6ZCpSScQ65FWUqcGNCqBDUeRuMACOQNATEc9POh+Fo3QGI0C/puUmlgqlyBcqXZ292drn1XCyEkIrJU1H6/VIZiZkAfiQlmYkuTH9EcvuMTnv3VwBnArgZAOWOpaQy5CZKlSQjTsORwvQUV0j9qTA9EU4uTJ+0jyBPnCwERD2dgW2w9b0En68bOl0x1yFMFthZMG+i6/elCrJEn0NuRZkq3EatyxZChQiCt8EIMAKJQ2BkHcJu6HKLh+oQqlSUPi07m9x6LhZCSJIgEkeE7WwA/QAel0pOBKLE1CiVjrgm6ndmqSzFlVIs4RtS2Yl9o8T7ccliOEcqZk/ups/EcQVYUcYBFndlBBgBRiCdEZBbUSoEK9ZzChEEb4MRYAQYgWQjILeei5UQJvvc052fFeV0EeTxjAAjwAikCQJyK0qFwMJ6TiGC4G0wAowAI5BsBOTWc0wIky1Rnp8RYAQYAUYgoQjIrSgTuvmpT8aEcOrY8UhGgBFgBNIKAbn1HBPCtLoevFlGgBFgBBgBuRWlQhBnQqgQQfA2GAFGgBFINgJy6zkmhMmWKM/PCDACjAAjkFAE5FaUCd381CdjQjh17HgkI8AIMAJphYDceo4JYVpdD94sI8AIMAKMgNyKUiGIMyFUiCB4G4wAI8AIJBsBufUcE8JkS5TnZwQYAUaAEUgoAnIryoRufuqTMSGcOnY8khFgBBiBtEJAbj3HhDCtrgdvlhFgBBgBRkBuRakQxJkQKkQQvA1GgBFgBJKNgNx6jglhsiXK8zMCjAAjwAgkFAG5FWVCNz/1yZgQTh07HskIMAKMQFohILeeY0KYVteDN8sIMAKMACMgt6JUCOJMCBUiCN4GI8AIMALJRkBuPceEMNkS5fkZAUaAEWAEEoqA3IoyoZuf+mRMCKeOHY9kBBgBRiCtEJBbzzEhTKvrwZtlBBgBRoARkFtRKgRxJoQKEQRvgxFgBBiBZCMgt55jQphsifL8jAAjwAgwAglFQG5FmdDNT30yJoRTx45HMgKMACOQVgjIrecyhhCmlZR5s4wAI8AIMALTRSBT9FesOIRi7cj9GAFGgBFgBDICAdn0nGwLpYFYSNlmAh6ZcI5MOANd+Uw4RyacgWWhrC/gTLlTykI1tt1kAvaZcIZM+U7KlHPwnYrt+0OOXiwLOVAeY41MIECJgo4vYaKQnP48LIvpY5ioGVgWiUJy+vOwLKaPYbbPkAl3KBPOkClEKlPOwXdKOd+MLIsUyYIJ4TDwfAlTdAnHWJZlwbJINAKZcKcy4QyZ8gCZ6Psp13yZcIcy4QyZ9DnIBHlkwhky5U6xLOTSBqPWYUI4DMh6APST7i0TzpEJZ6B7lAnnyIQzsCyU9a2WKXdKWajGtptMwD4TzpAp30mZcg6+U7F9f8jRi2UhB8pjrMGEMEXA87KMACPACDACjAAjwAgwAowAI8AIpBoBJoSplgCvzwgwAowAI8AIMAKMACPACDACjECKEGBCmCLgeVlGgBFgBBgBRoARYAQYAUaAEWAEUo0AE8JUS4DXZwQYAUaAEWAEGAFGgBFgBBgBRiBFCGQzIfxPAN8GMA+ACcBxAE8DuB+AN0XySMSyVQAOSWeyABhMxKQyzHENgN+Msc51AH4mw/qJWkIL4EYA1wKoBdAF4FkA30rUAjLM8yqAD42zzkoAb8qwh0Qs8RkA3wUwF4ANwGYANwNoTcTkMs3xcQB3St9TtO+fAPiRTGtPdZnZAG4CcDaABQBeB/DhUZOR7rkFAH2+iwHsBHADgL1TXZTHjYlAJuo51nGpv+ys51Ivg8gOWM+lRhYZp+eymRB+FUANgN0A+gGskLJC/grA11NzvxKy6u8BXACgDEA6EkLauysKiWMAOhOCjDyT/FbCfwOAg9IdOxXAWnmWT8gqtN+8UTMRKVkMoAKAPyGrJHeSjwH4G4BHAfxF2vdGAH0AlgIIJnf5hMy+SiJTvwbwvwDOBLBOIlsPJWSF5ExyOYBHAGwHsBBAxxiEkMhg5Cz0OaGXc/QdTP3bk7OtrJw1E/Uc67jUX2XWc6mXAe2A9Vzq5JBxei6bCeFY1+huAP8DoAAA1UJJt3YegL8CuAfAD9KUEKYTiR19Py4B8A8AZwB4L90uzwT71UsP6X+ULDrpcLRnAMyRyF9kvxHlSYT3/TQ4xIsAcgGcG7XXHwL4AoByBXsyqKMI9/9JFsBoC6FRIol0FnrRQI28NBoB/BzAbWkgm3TeYjrrOdZxqb95rOdSL4PIDljPpU4WGafnmBCOvEz0lpqsCPRwkm6EUAPgbcntkiye5H6ZTuQq4jKaTnse/VVEVhwrgI+k7jsqKStHiBS5kW5JygqJn/RP0osdsjhHGj1Mvia5MaYDYSfLGlk4I6SJzkF36wXJ4kZnUXobixCSTMh9d75kRY+cgSyh9DKFLLjckodAuuo51nHJuxPxzMx6Lh60ktuX9Vxy8Y119ozQc0wIAVIyBgBLAJAbBH3AvhPrLVBQP7JsXg/gNAD/lcaEkNxDiwAclWKlyGKQLo3iUP8OgD5XnwdAcRb08E4uyOkUtzYab3LRIisVxUSmy4uSyyRrOcVyktWcLGqPA/ABWJ0mF4riHu8F8P2o/Z4P4GXJUpsOsbVjKco1AB6WvncDUWejuEMqSkwv5LglFoFM0HOs4xJ7J6Y6G+u5qSKX+HGs5xKP6VRmzAg9x4QQcEsPJnQJnpLcsdIhvij60hKBOgzgvwH8C0A6WtvI8rEcwA6ESToFShOporfZD07lE5qCMR7Jje8dyW2XrJ2UpIhios5KIzIVDR25LBJJJ2Kebi9K6MUIxQTTCx9q2wCQAiULejo0im8mN8pPRW32exJBvFW6Y0o/x1iKkvZO5C9/1Oa/BOCXkrzSObGXEmWS7nqOdZxybhXrOeXIgnbCei718sgIPceEMGwZpIdeSmhASQ7IGkJvsNOpkaWArDcflTadjoRwLLwpZu1CACVpkgSEHmLpZwaAHulAETdFOge5yaVb+zQAilMgsr4rjTZPljSy1j4G4HkpyRJZn4ickyyiLVNKPdaXpQy7XwNACoe+o+ilVamUoTPacqjUM2SEolQquHHsK931HOu4OISd5K6s55IMcBzTs56LA6wkds0IPceEcOQNIYvUkwAonSy5LKZDo7TuewAQ8aBsfdQ+K8UeVQPoHZW1Mx3OFNnjFVJ2xVkAKNuo0hvFfNE+Kd1+pFHgMWVNpVIUVDIg3Rpl6KTMj5SgJZ0axdNS4hh6exppVGKGPiNkcftzGhyGLOU/BkCEkP6/EwBZCOkeUWKZJ9LgDBnhSpMGOMezxXTTc6zj4pFu8vuynks+xrGuwHouVqSS2y8j9BwTwpGXhB589wG4CMCm5N6fhM1OdcrooX28Ri5z5IqVjo1qaFENv5kAGtLgAFS/jzIokntopBEhJHctqkNICULSqVGCHFL+5PZK1vN0akSe7pCy7Ubve7zfK/lslPWYXu7QZ+AUqWbf6IQsSt3/RMH2dBaqmRpp9F21iJPKJF2U6abnWMcl/UrEtQDrubjgSmpn1nNJhTfmyTNCzzEhHClvqtlErinpZCGkos6k4KMbpYUmSwK5kJLFKvqhK+YbroCO5KpICUCopmI6xHWSFZDqD5LLaLeEH6Xbf0VKyrJVAZjGs4WI63G6lGmIPhtZB6nI+VVRvyQSRdlFr5ReNMSDhVL6UiZOsnRSjcJ0aBOVnaDSOJTVmRq57VO85C+47ETSxZpueo51XNKvRFwLsJ6LC66kdmY9l1R4Y548I/RcNhNCyv5IVsADUjwRPWBR0ox/SglNYr4JCuyYjjGElN2VEsq8K7nHUewaJcm5IY1cLamY+34ALVFJZe6T3BTJ6pxujT4jlJ2TrDbp1r4hJSOihESRGEKyclJNRXqB4kiDA5Gl+RyJ2NLdInJLyZfod/Q5UWojcheJZ6bvVNo7WWupUdIreqtNhelvl5LLRArTnymVBCGrNLfEIJCpeo51XGLux1RmYT03FdSSM4b1XHJwjWXWjNNz2UwI7wLwCQB1APySJY1q95GFkFLTp3NLR2V5jxTbVSOVbSBLzkMAnk4zQZB1mVLqU80+Cr7/m+Qu2pdm56C38m3SQ3s6JC8ZDS99t1Hs3XUAKAaVMouShZaISDrEo9J5qB4ffR+RZZMs5K8DuFlya1fydaLv1PFcvOslSyDJZ60kH8ogSQmL6OUPxUNzSxwCmarnWMcl7o5MZSbWc1NBLfFjWM8lHtNYZ8w4PZfNhDBWoXM/RoARYAQYAUaAEWAEGAFGgBFgBDISASaEGSlWPhQjwAgwAowAI8AIMAKMACPACDACkyPAhHByjLgHI8AIMAKMACPACDACjAAjwAgwAhmJABPCjBQrH4oRYAQYAUaAEWAEGAFGgBFgBBiByRFgQjg5RtyDEWAEGAFGgBFgBBgBRoARYAQYgYxEgAlhRoqVD8UIMAKMACPACDACjAAjwAgwAozA5AgwIZwcI+7BCDACjAAjwAgwAowAI8AIMAKMQEYiwIQwI8XKh2IEGAFGgBFgBBgBRoARYAQYAUZgcgSYEE6OEfdgBCZDYD2ArwOgYu5zAXwWwENSMfTJxiby71cCyAXwxKhJXwXQDeA/E7kYz8UIMAKMACOQNQiwnssaUfNBsxEBJoTZKHU+c6IRiFaU/wHgHwDqATQmeqFJ5vs/iZR+eFS/UwH4AByWeT+8HCPACDACjEBmIMB6LjPkyKdgBMZEgAkhXwxGYPoIJFNR5gBwxbjF8QhhjMO5GyPACDACjAAjMCYCrOf4YjACGYwAE8IMFi4fTTYEIoqSXDJfGbXqcQB10u9qAdwP4GIARgCvA7gBwCHp79SvAcB/A/gIgI8B2AXgQgCfB/AVAGTto8/tXgA3SX+n4eQmevWotTcAoL2N5TJ6AYB7AZwBwAbgTwC+C2BQmoOsjHSW8wH8D4BLAXQCeADAY7IhywsxAowAI8AIKAEB1nNKkALvgRFIEgJMCJMELE+bVQhEFOVMAF+WSNMnAbQB8ADYA6BQInE9EhFzArgZwAwp7pCsgBFC2A7gzwD+CiAA4GUA6wDQ748C0AO4CsAVABYAOAZgFoBfAsgHsEZC//+3d/auVQRRFP+hWKYQRCHRTkELK4sEQSxsRBCxtvJvsBCDlWJQRBREbBSx8Lu1UbHzM6CNH1hYJoIgFtpYyoE7MAzuY3F5m2XnLDwCL/NmZ34zcDncmXNXAH1KQajfaEzPQtxtA84Db4CDhSD8CtwG3sY7jwPzwHJVK+zJmoAJmEDdBBzn6l5/z37kBCwIR77Anl4vBNocpTkbQm0H8DNGtTHuGS4C1zJBKCF4dMLI1wH6fATuAmeibdOR0VIQ3gf2ADtDcOrnMqR5AOwFXgMpQ6hxS4zq2QB8A26GmO0Frl9iAiZgAiaw5gQc59Z8CTwAE5geAQvC6bF1z/UQaBMoJbJ0fFTHQfPnaXyvzFvKECrLeKNotwtYCsG2OfvfnazPtoJQGUW11RHR9KwH/gASpxczQbgPeJG1exUZyXIe9ay2Z2oCJmAC9RFwnKtvzT3jighYEFa02J7q1Ai0CZRy+NzeMILncU8wCULdHZRTaXpmgM/Ad+ByCEiJN4lGHelM5STaCkIdTz0NXCrGoyOpt4BTZXrumQAAAaRJREFUmSDcHZnI1NQlLKa2jdyxCZiACQyWgOPcYJfGAzOB7gQsCLszdA8m0CZQ6g6eBJeOYJbP7zCWSYLwMPA4ayQTmieAsoRfsu9lQPPuPwShMoSPgJNZX00ZQgtC728TMAETMAHHOe8BExgxAQvCES+up9YbgTxQNok3HffUPT0JrKYyEk2C8EgYzMi0RiJQj+76vQx30JQh1H1CtVkoZl5m9e7FHUIJTJnW6JFBzcN/3CG0IOxtG/lFJmACJjBYAo5zg10aD8wEuhOwIOzO0D2YQB4o5RqqgvRXAJm3yE30QxSMfw+sAlfj7xZgf9zRk0hrEoRqp6OhyjKqbMXWKCchYxk5gyZBKPMXZf2OhbuoDGD0aXIZVdbxevR3IfovXUYtCL2/TcAETMAEHOe8B0xgxAQsCEe8uJ5abwTyQKmXnoj6gnMhzFIdwlngHHAoykOoLIUMW1QP8NMEQag+JdRUA1DlJXQfUSUrZArzIxOEm6L0hESmHEwn1SE8ECY1qkP4KzOZKesQWhD2to38IhMwARMYLAHHucEujQdmAt0J/AXFvI4kDbmcaQAAAABJRU5ErkJggg==\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2.  Predict probabilities\n",
+    "\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999932</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>6.7611923e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.2535056e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999808</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.9209425e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>4.433645e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99998367</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.6334934e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>4.3492965e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999931</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>6.9504345e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.9190094e-10</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99999726</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>2.719827e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>2.4018267e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9999982</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.8036015e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.515534e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99996376</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>3.623055e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.4014193e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99995685</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>4.3105167e-05</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.541236e-09</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99999833</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>1.6733742e-06</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.0720992e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.97456545</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.025385397</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.912654e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8837083</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.11627731</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.4444132e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9832433</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.016161945</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0005947249</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9934144</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.006202936</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00038262276</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9880006</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.01050145</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0014980072</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.743757</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.25624287</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.1804799e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9489498</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.050999135</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.1051586e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.9882598</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.011410431</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00032975432</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7122672</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2864844</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0012483773</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8344315</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.16556835</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.9313943e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7617606</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23823881</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>6.2156596e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.85601324</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.1439867</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.4068247e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.76065344</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23934652</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>4.0775706e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.65924823</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.34075174</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.7877243e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.968423</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.031577036</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>1.5606285e-11</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.72842705</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2715729</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.7875385e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8053533</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.19464317</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.5179064e-06</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7297866</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2702134</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>2.8784607e-08</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5341273</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4658725</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>2.3799986e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6266347</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3733647</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>5.7692125e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5517554</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4482443</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.1108453e-07</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3, u'class_text', u'Iris-setosa', 0.9999932, 1),\n",
+       " (3, u'class_text', u'Iris-versicolor', 6.7611923e-06, 2),\n",
+       " (3, u'class_text', u'Iris-virginica', 1.2535056e-10, 3),\n",
+       " (10, u'class_text', u'Iris-setosa', 0.9999808, 1),\n",
+       " (10, u'class_text', u'Iris-versicolor', 1.9209425e-05, 2),\n",
+       " (10, u'class_text', u'Iris-virginica', 4.433645e-10, 3),\n",
+       " (12, u'class_text', u'Iris-setosa', 0.99998367, 1),\n",
+       " (12, u'class_text', u'Iris-versicolor', 1.6334934e-05, 2),\n",
+       " (12, u'class_text', u'Iris-virginica', 4.3492965e-10, 3),\n",
+       " (14, u'class_text', u'Iris-setosa', 0.9999931, 1),\n",
+       " (14, u'class_text', u'Iris-versicolor', 6.9504345e-06, 2),\n",
+       " (14, u'class_text', u'Iris-virginica', 1.9190094e-10, 3),\n",
+       " (18, u'class_text', u'Iris-setosa', 0.99999726, 1),\n",
+       " (18, u'class_text', u'Iris-versicolor', 2.719827e-06, 2),\n",
+       " (18, u'class_text', u'Iris-virginica', 2.4018267e-11, 3),\n",
+       " (20, u'class_text', u'Iris-setosa', 0.9999982, 1),\n",
+       " (20, u'class_text', u'Iris-versicolor', 1.8036015e-06, 2),\n",
+       " (20, u'class_text', u'Iris-virginica', 1.515534e-11, 3),\n",
+       " (30, u'class_text', u'Iris-setosa', 0.99996376, 1),\n",
+       " (30, u'class_text', u'Iris-versicolor', 3.623055e-05, 2),\n",
+       " (30, u'class_text', u'Iris-virginica', 1.4014193e-09, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.99995685, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 4.3105167e-05, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 1.541236e-09, 3),\n",
+       " (49, u'class_text', u'Iris-setosa', 0.99999833, 1),\n",
+       " (49, u'class_text', u'Iris-versicolor', 1.6733742e-06, 2),\n",
+       " (49, u'class_text', u'Iris-virginica', 1.0720992e-11, 3),\n",
+       " (55, u'class_text', u'Iris-versicolor', 0.97456545, 1),\n",
+       " (55, u'class_text', u'Iris-virginica', 0.025385397, 2),\n",
+       " (55, u'class_text', u'Iris-setosa', 4.912654e-05, 3),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.8837083, 1),\n",
+       " (64, u'class_text', u'Iris-virginica', 0.11627731, 2),\n",
+       " (64, u'class_text', u'Iris-setosa', 1.4444132e-05, 3),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.9832433, 1),\n",
+       " (70, u'class_text', u'Iris-virginica', 0.016161945, 2),\n",
+       " (70, u'class_text', u'Iris-setosa', 0.0005947249, 3),\n",
+       " (76, u'class_text', u'Iris-versicolor', 0.9934144, 1),\n",
+       " (76, u'class_text', u'Iris-virginica', 0.006202936, 2),\n",
+       " (76, u'class_text', u'Iris-setosa', 0.00038262276, 3),\n",
+       " (82, u'class_text', u'Iris-versicolor', 0.9880006, 1),\n",
+       " (82, u'class_text', u'Iris-virginica', 0.01050145, 2),\n",
+       " (82, u'class_text', u'Iris-setosa', 0.0014980072, 3),\n",
+       " (84, u'class_text', u'Iris-virginica', 0.743757, 1),\n",
+       " (84, u'class_text', u'Iris-versicolor', 0.25624287, 2),\n",
+       " (84, u'class_text', u'Iris-setosa', 1.1804799e-07, 3),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.9489498, 1),\n",
+       " (92, u'class_text', u'Iris-virginica', 0.050999135, 2),\n",
+       " (92, u'class_text', u'Iris-setosa', 5.1051586e-05, 3),\n",
+       " (98, u'class_text', u'Iris-versicolor', 0.9882598, 1),\n",
+       " (98, u'class_text', u'Iris-virginica', 0.011410431, 2),\n",
+       " (98, u'class_text', u'Iris-setosa', 0.00032975432, 3),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.7122672, 1),\n",
+       " (99, u'class_text', u'Iris-setosa', 0.2864844, 2),\n",
+       " (99, u'class_text', u'Iris-virginica', 0.0012483773, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.8344315, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.16556835, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 4.9313943e-08, 3),\n",
+       " (107, u'class_text', u'Iris-virginica', 0.7617606, 1),\n",
+       " (107, u'class_text', u'Iris-versicolor', 0.23823881, 2),\n",
+       " (107, u'class_text', u'Iris-setosa', 6.2156596e-07, 3),\n",
+       " (114, u'class_text', u'Iris-virginica', 0.85601324, 1),\n",
+       " (114, u'class_text', u'Iris-versicolor', 0.1439867, 2),\n",
+       " (114, u'class_text', u'Iris-setosa', 3.4068247e-08, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.76065344, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.23934652, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 4.0775706e-08, 3),\n",
+       " (121, u'class_text', u'Iris-virginica', 0.65924823, 1),\n",
+       " (121, u'class_text', u'Iris-versicolor', 0.34075174, 2),\n",
+       " (121, u'class_text', u'Iris-setosa', 3.7877243e-08, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.968423, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.031577036, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 1.5606285e-11, 3),\n",
+       " (125, u'class_text', u'Iris-virginica', 0.72842705, 1),\n",
+       " (125, u'class_text', u'Iris-versicolor', 0.2715729, 2),\n",
+       " (125, u'class_text', u'Iris-setosa', 3.7875385e-08, 3),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.8053533, 1),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.19464317, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 3.5179064e-06, 3),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.7297866, 1),\n",
+       " (145, u'class_text', u'Iris-versicolor', 0.2702134, 2),\n",
+       " (145, u'class_text', u'Iris-setosa', 2.8784607e-08, 3),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.5341273, 1),\n",
+       " (147, u'class_text', u'Iris-versicolor', 0.4658725, 2),\n",
+       " (147, u'class_text', u'Iris-setosa', 2.3799986e-07, 3),\n",
+       " (148, u'class_text', u'Iris-versicolor', 0.6266347, 1),\n",
+       " (148, u'class_text', u'Iris-virginica', 0.3733647, 2),\n",
+       " (148, u'class_text', u'Iris-setosa', 5.7692125e-07, 3),\n",
+       " (149, u'class_text', u'Iris-virginica', 0.5517554, 1),\n",
+       " (149, u'class_text', u'Iris-versicolor', 0.4482443, 2),\n",
+       " (149, u'class_text', u'Iris-setosa', 3.1108453e-07, 3)]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
+    "                                   'iris_test',        -- test_table\n",
+    "                                   'id',               -- id column\n",
+    "                                   'attributes',       -- independent var\n",
+    "                                   'iris_predict',     -- output table\n",
+    "                                    'prob',            -- prediction type\n",
+    "                                    FALSE,             -- use gpus\n",
+    "                                    3                  -- mst_key to use\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3.  Warm start\n",
+    "\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit_multiple_model</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed',    -- source_table\n",
+    "                                              'iris_multi_model',     -- model_output_table\n",
+    "                                              'mst_table',            -- model_selection_table\n",
+    "                                               3,                     -- num_iterations\n",
+    "                                               FALSE,                 -- use gpus\n",
+    "                                              'iris_test_packed',     -- validation dataset\n",
+    "                                               1,                     -- metrics compute frequency\n",
+    "                                               TRUE,                  -- warm start\n",
+    "                                              'Sophie L.',            -- name\n",
+    "                                              'Simple MLP for iris dataset'  -- description\n",
+    "                                             );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>model_info</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_selection_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>warm_start</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>iris_multi_model</td>\n",
+       "        <td>iris_multi_model_info</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>mst_table</td>\n",
+       "        <td>None</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>True</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>2021-03-06 00:55:34.010762</td>\n",
+       "        <td>2021-03-06 00:56:20.576330</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[1]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[1, 2, 3]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', [u'class_text'], [u'attributes'], u'model_arch_library', u'mst_table', None, 3, 1, True, u'Sophie L.', u'Simple MLP for iris dataset', datetime.datetime(2021, 3, 6, 0, 55, 34, 10762), datetime.datetime(2021, 3, 6, 0, 56, 20, 576330), u'1.18.0-dev', [1], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], [u'character varying'], 1.0, [1, 2, 3])]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View performance of each model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>mst_key</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.8246030807495, 28.3149819374084, 43.8511519432068]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.125932246447</td>\n",
+       "        <td>[0.983333349227905, 0.908333361148834, 0.949999988079071]</td>\n",
+       "        <td>[0.0759517326951027, 0.280529856681824, 0.125932246446609]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.262804627419</td>\n",
+       "        <td>[0.966666638851166, 0.933333337306976, 0.966666638851166]</td>\n",
+       "        <td>[0.115140154957771, 0.282798647880554, 0.262804627418518]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[12.3267669677734, 27.5790538787842, 43.3719210624695]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.958333313465</td>\n",
+       "        <td>0.646220803261</td>\n",
+       "        <td>[0.916666686534882, 0.774999976158142, 0.958333313465118]</td>\n",
+       "        <td>[0.760809063911438, 0.70676600933075, 0.646220803260803]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.676706075668</td>\n",
+       "        <td>[0.899999976158142, 0.699999988079071, 0.966666638851166]</td>\n",
+       "        <td>[0.789911270141602, 0.741125166416168, 0.676706075668335]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.8655989170074, 29.3921880722046, 45.186311006546]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.161019146442</td>\n",
+       "        <td>[0.608333349227905, 0.975000023841858, 0.966666638851166]</td>\n",
+       "        <td>[0.656926870346069, 0.154457986354828, 0.161019146442413]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.184286847711</td>\n",
+       "        <td>[0.666666686534882, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.60343611240387, 0.166501134634018, 0.184286847710609]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[12.5584180355072, 27.7957689762115, 43.5938129425049]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.925000011921</td>\n",
+       "        <td>0.125614732504</td>\n",
+       "        <td>[0.850000023841858, 0.908333361148834, 0.925000011920929]</td>\n",
+       "        <td>[0.311796188354492, 0.228279903531075, 0.125614732503891]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.205575048923</td>\n",
+       "        <td>[0.699999988079071, 0.899999976158142, 0.933333337306976]</td>\n",
+       "        <td>[0.434732705354691, 0.278642177581787, 0.205575048923492]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.3016650676727, 29.8289239406586, 45.6773319244385]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.680241525173</td>\n",
+       "        <td>[0.899999976158142, 0.899999976158142, 0.916666686534882]</td>\n",
+       "        <td>[0.75947380065918, 0.717410624027252, 0.680241525173187]</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>0.685820519924</td>\n",
+       "        <td>[0.933333337306976, 0.933333337306976, 0.933333337306976]</td>\n",
+       "        <td>[0.764581918716431, 0.718774557113647, 0.685820519924164]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[13.6457929611206, 29.1624140739441, 44.9534199237823]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.891666650772</td>\n",
+       "        <td>0.590237081051</td>\n",
+       "        <td>[0.824999988079071, 0.783333361148834, 0.891666650772095]</td>\n",
+       "        <td>[0.666068911552429, 0.633061707019806, 0.590237081050873]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.576045572758</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.899999976158142]</td>\n",
+       "        <td>[0.645683944225311, 0.608498632907867, 0.576045572757721]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.0837008953094, 29.6097829341888, 45.4142129421234]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.174454689026</td>\n",
+       "        <td>[0.949999988079071, 0.958333313465118, 0.916666686534882]</td>\n",
+       "        <td>[0.166735425591469, 0.141851797699928, 0.174454689025879]</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>0.219132959843</td>\n",
+       "        <td>[0.966666638851166, 0.933333337306976, 0.899999976158142]</td>\n",
+       "        <td>[0.186790466308594, 0.176578417420387, 0.219132959842682]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.1594960689545, 28.5860660076141, 44.1881170272827]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.285291582346</td>\n",
+       "        <td>[0.774999976158142, 0.949999988079071, 0.866666674613953]</td>\n",
+       "        <td>[0.441815197467804, 0.140827313065529, 0.285291582345963]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.246576815844</td>\n",
+       "        <td>[0.766666650772095, 0.966666638851166, 0.866666674613953]</td>\n",
+       "        <td>[0.4128278195858, 0.146319955587387, 0.246576815843582]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[14.5546190738678, 30.0798380374908, 45.94082903862]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.850000023842</td>\n",
+       "        <td>0.675731360912</td>\n",
+       "        <td>[0.791666686534882, 0.841666638851166, 0.850000023841858]</td>\n",
+       "        <td>[0.746130049228668, 0.706377267837524, 0.675731360912323]</td>\n",
+       "        <td>0.866666674614</td>\n",
+       "        <td>0.650432705879</td>\n",
+       "        <td>[0.866666674613953, 0.866666674613953, 0.866666674613953]</td>\n",
+       "        <td>[0.712817847728729, 0.677974581718445, 0.650432705879211]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[15.3575170040131, 30.5435180664062, 46.5635209083557]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.658333361149</td>\n",
+       "        <td>0.45723798871</td>\n",
+       "        <td>[0.658333361148834, 0.683333337306976, 0.658333361148834]</td>\n",
+       "        <td>[0.457635939121246, 0.455960959196091, 0.457237988710403]</td>\n",
+       "        <td>0.699999988079</td>\n",
+       "        <td>0.48275628686</td>\n",
+       "        <td>[0.699999988079071, 0.600000023841858, 0.699999988079071]</td>\n",
+       "        <td>[0.48207613825798, 0.491984754800797, 0.482756286859512]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>1</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=4</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.75390625</td>\n",
+       "        <td>[14.8466219902039, 30.2953569889069, 46.1656670570374]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.683333337307</td>\n",
+       "        <td>0.456283688545</td>\n",
+       "        <td>[0.925000011920929, 0.899999976158142, 0.683333337306976]</td>\n",
+       "        <td>[0.224153310060501, 0.295417010784149, 0.456283688545227]</td>\n",
+       "        <td>0.600000023842</td>\n",
+       "        <td>0.494575560093</td>\n",
+       "        <td>[0.966666638851166, 0.899999976158142, 0.600000023841858]</td>\n",
+       "        <td>[0.227903217077255, 0.345975488424301, 0.494575560092926]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>2</td>\n",
+       "        <td>optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'</td>\n",
+       "        <td>epochs=1,batch_size=8</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>1.18359375</td>\n",
+       "        <td>[13.4095330238342, 28.938658952713, 44.7153990268707]</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.691666662693</td>\n",
+       "        <td>0.528191685677</td>\n",
+       "        <td>[0.708333313465118, 0.966666638851166, 0.691666662693024]</td>\n",
+       "        <td>[0.395545929670334, 0.100506067276001, 0.528191685676575]</td>\n",
+       "        <td>0.566666662693</td>\n",
+       "        <td>0.720313131809</td>\n",
+       "        <td>[0.633333325386047, 0.966666638851166, 0.566666662693024]</td>\n",
+       "        <td>[0.508394777774811, 0.130626574158669, 0.720313131809235]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.8246030807495, 28.3149819374084, 43.8511519432068], [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.125932246446609, [0.983333349227905, 0.908333361148834, 0.949999988079071], [0.0759517326951027, 0.280529856681824, 0.125932246446609], 0.966666638851166, 0.262804627418518, [0.966666638851166, 0.933333337306976, 0.966666638851166], [0.115140154957771, 0.282798647880554, 0.262804627418518]),\n",
+       " (7, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [12.3267669677734, 27.5790538787842, 43.3719210624695], [u'accuracy'], u'categorical_crossentropy', 0.958333313465118, 0.646220803260803, [0.916666686534882, 0.774999976158142, 0.958333313465118], [0.760809063911438, 0.70676600933075, 0.646220803260803], 0.966666638851166, 0.676706075668335, [0.899999976158142, 0.699999988079071, 0.966666638851166], [0.789911270141602, 0.741125166416168, 0.676706075668335]),\n",
+       " (6, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.8655989170074, 29.3921880722046, 45.186311006546], [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.161019146442413, [0.608333349227905, 0.975000023841858, 0.966666638851166], [0.656926870346069, 0.154457986354828, 0.161019146442413], 0.966666638851166, 0.184286847710609, [0.666666686534882, 0.966666638851166, 0.966666638851166], [0.60343611240387, 0.166501134634018, 0.184286847710609]),\n",
+       " (3, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [12.5584180355072, 27.7957689762115, 43.5938129425049], [u'accuracy'], u'categorical_crossentropy', 0.925000011920929, 0.125614732503891, [0.850000023841858, 0.908333361148834, 0.925000011920929], [0.311796188354492, 0.228279903531075, 0.125614732503891], 0.933333337306976, 0.205575048923492, [0.699999988079071, 0.899999976158142, 0.933333337306976], [0.434732705354691, 0.278642177581787, 0.205575048923492]),\n",
+       " (1, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [14.3016650676727, 29.8289239406586, 45.6773319244385], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.680241525173187, [0.899999976158142, 0.899999976158142, 0.916666686534882], [0.75947380065918, 0.717410624027252, 0.680241525173187], 0.933333337306976, 0.685820519924164, [0.933333337306976, 0.933333337306976, 0.933333337306976], [0.764581918716431, 0.718774557113647, 0.685820519924164]),\n",
+       " (2, 1, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [13.6457929611206, 29.1624140739441, 44.9534199237823], [u'accuracy'], u'categorical_crossentropy', 0.891666650772095, 0.590237081050873, [0.824999988079071, 0.783333361148834, 0.891666650772095], [0.666068911552429, 0.633061707019806, 0.590237081050873], 0.899999976158142, 0.576045572757721, [0.866666674613953, 0.866666674613953, 0.899999976158142], [0.645683944225311, 0.608498632907867, 0.576045572757721]),\n",
+       " (4, 1, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 0.75390625, [14.0837008953094, 29.6097829341888, 45.4142129421234], [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.174454689025879, [0.949999988079071, 0.958333313465118, 0.916666686534882], [0.166735425591469, 0.141851797699928, 0.174454689025879], 0.899999976158142, 0.219132959842682, [0.966666638851166, 0.933333337306976, 0.899999976158142], [0.186790466308594, 0.176578417420387, 0.219132959842682]),\n",
+       " (10, 2, u\"optimizer='Adam(lr=0.01)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.1594960689545, 28.5860660076141, 44.1881170272827], [u'accuracy'], u'categorical_crossentropy', 0.866666674613953, 0.285291582345963, [0.774999976158142, 0.949999988079071, 0.866666674613953], [0.441815197467804, 0.140827313065529, 0.285291582345963], 0.866666674613953, 0.246576815843582, [0.766666650772095, 0.966666638851166, 0.866666674613953], [0.4128278195858, 0.146319955587387, 0.246576815843582]),\n",
+       " (8, 2, u\"optimizer='Adam(lr=0.001)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [14.5546190738678, 30.0798380374908, 45.94082903862], [u'accuracy'], u'categorical_crossentropy', 0.850000023841858, 0.675731360912323, [0.791666686534882, 0.841666638851166, 0.850000023841858], [0.746130049228668, 0.706377267837524, 0.675731360912323], 0.866666674613953, 0.650432705879211, [0.866666674613953, 0.866666674613953, 0.866666674613953], [0.712817847728729, 0.677974581718445, 0.650432705879211]),\n",
+       " (11, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 1.18359375, [15.3575170040131, 30.5435180664062, 46.5635209083557], [u'accuracy'], u'categorical_crossentropy', 0.658333361148834, 0.457237988710403, [0.658333361148834, 0.683333337306976, 0.658333361148834], [0.457635939121246, 0.455960959196091, 0.457237988710403], 0.699999988079071, 0.482756286859512, [0.699999988079071, 0.600000023841858, 0.699999988079071], [0.48207613825798, 0.491984754800797, 0.482756286859512]),\n",
+       " (5, 1, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=4', u'madlib_keras', 0.75390625, [14.8466219902039, 30.2953569889069, 46.1656670570374], [u'accuracy'], u'categorical_crossentropy', 0.683333337306976, 0.456283688545227, [0.925000011920929, 0.899999976158142, 0.683333337306976], [0.224153310060501, 0.295417010784149, 0.456283688545227], 0.600000023841858, 0.494575560092926, [0.966666638851166, 0.899999976158142, 0.600000023841858], [0.227903217077255, 0.345975488424301, 0.494575560092926]),\n",
+       " (12, 2, u\"optimizer='Adam(lr=0.1)',metrics=['accuracy'],loss='categorical_crossentropy'\", u'epochs=1,batch_size=8', u'madlib_keras', 1.18359375, [13.4095330238342, 28.938658952713, 44.7153990268707], [u'accuracy'], u'categorical_crossentropy', 0.691666662693024, 0.528191685676575, [0.708333313465118, 0.966666638851166, 0.691666662693024], [0.395545929670334, 0.100506067276001, 0.528191685676575], 0.566666662693024, 0.720313131809235, [0.633333325386047, 0.966666638851166, 0.566666662693024], [0.508394777774811, 0.130626574158669, 0.720313131809235])]"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Plot validation results:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "7 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support.' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option)\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>')\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // 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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\" width=\"720\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    }
+   ],
+   "source": [
+    "df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
+    "df_results = df_results.DataFrame()\n",
+    "\n",
+    "df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
+    "df_summary = df_summary.DataFrame()\n",
+    "\n",
+    "#set up plots\n",
+    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
+    "fig.legend(ncol=4)\n",
+    "fig.tight_layout()\n",
+    "\n",
+    "ax_metric = axs[0]\n",
+    "ax_loss = axs[1]\n",
+    "\n",
+    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_metric.set_xlabel('Iteration')\n",
+    "ax_metric.set_ylabel('Metric')\n",
+    "ax_metric.set_title('Validation metric curve')\n",
+    "\n",
+    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
+    "ax_loss.set_xlabel('Iteration')\n",
+    "ax_loss.set_ylabel('Loss')\n",
+    "ax_loss.set_title('Validation loss curve')\n",
+    "\n",
+    "iters = df_summary['metrics_iters'][0]\n",
+    "\n",
+    "for mst_key in df_results['mst_key']:\n",
+    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
+    "    df_output_info = df_output_info.DataFrame()\n",
+    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
+    "    validation_loss = df_output_info['validation_loss'][0]\n",
+    "    \n",
+    "    ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
+    "    ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
+    "\n",
+    "plt.legend();\n",
+    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb b/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb
new file mode 100644
index 0000000..8dfa6cd
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-MLP-v2-checkpoint.ipynb
@@ -0,0 +1,5025 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples with images please refer to the deep learning notebooks at\n",
+    "https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#train\">4. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">5. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">6. Predict</a>\n",
+    "\n",
+    "* <a href=\"#pred_byom\">7. Predict BYOM</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>\n",
+    "\n",
+    "<a href=\"#transfer_learn\">Transfer learning</a>\n",
+    "\n",
+    "* <a href=\"#load2\">1. Define and load model architecture with some layers frozen</a>\n",
+    "\n",
+    "* <a href=\"#train2\">2. Train transfer model</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',         -- Dependent variable\n",
+    "                                       'attributes'          -- Independent variable\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
+      "Model: \"sequential\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense (Dense)                (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_1 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_2 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_simple = Sequential()\n",
+    "model_simple.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model_simple.add(Dense(10, activation='relu'))\n",
+    "model_simple.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_simple.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_simple.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model')]"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'A simple model'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 4.  Train\n",
+    "Train the model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10                    -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:27:28.144705</td>\n",
+       "        <td>2021-03-06 00:27:31.754147</td>\n",
+       "        <td>[3.60936093330383]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.916666686535</td>\n",
+       "        <td>0.463008254766</td>\n",
+       "        <td>[0.916666686534882]</td>\n",
+       "        <td>[0.463008254766464]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>[10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, None, None, 10, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 27, 28, 144705), datetime.datetime(2021, 3, 6, 0, 27, 31, 754147), [3.60936093330383], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.916666686534882, 0.463008254766464, [0.916666686534882], [0.463008254766464], None, None, None, None, [10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 5. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.523572981358</td>\n",
+       "        <td>0.933333337307</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.523572981357574, 0.933333337306976, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_model',       -- model\n",
+    "                                   'iris_test_packed',  -- test table\n",
+    "                                   'iris_validate'      -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 6. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.83670896</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.14060013</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.022690918</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8369735</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.14013577</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.022890732</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.87973696</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.10638312</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.013879963</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.93740743</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.056862056</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0057305074</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.83670896</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.14060013</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.022690918</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8709096</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.11054307</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.018547323</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4681935</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4571225</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.07468399</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45466852</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4470526</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09827888</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47486252</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.46100235</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.064135045</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47181308</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.43595785</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09222904</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47956672</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.41212082</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.10831244</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.50861007</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3626588</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.12873109</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5061021</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3914343</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.102463536</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49345753</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.35755217</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14899038</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4796765</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4385325</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0817909</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47809058</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.34930265</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.17260681</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6172143</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3620455</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.020740215</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5837618</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3847274</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.03151086</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.61951214</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3637118</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.016776035</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5954762</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.37995332</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.024570476</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.571379</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4039808</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.024640195</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.57040656</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3980587</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.03153468</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.52341586</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.43971062</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.036873452</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5800313</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3929817</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026986998</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.72622484</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.26773784</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0060372944</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5089497</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.44541556</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.045634773</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.62922823</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.35819018</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.012581516</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6017383</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3781529</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.020108894</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5293082</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4390557</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.031636048</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.58249867</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.39045528</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.027046034</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(10, u'class_text', u'Iris-setosa', 0.83670896, 1),\n",
+       " (10, u'class_text', u'Iris-versicolor', 0.14060013, 2),\n",
+       " (10, u'class_text', u'Iris-virginica', 0.022690918, 3),\n",
+       " (13, u'class_text', u'Iris-setosa', 0.8369735, 1),\n",
+       " (13, u'class_text', u'Iris-versicolor', 0.14013577, 2),\n",
+       " (13, u'class_text', u'Iris-virginica', 0.022890732, 3),\n",
+       " (29, u'class_text', u'Iris-setosa', 0.87973696, 1),\n",
+       " (29, u'class_text', u'Iris-versicolor', 0.10638312, 2),\n",
+       " (29, u'class_text', u'Iris-virginica', 0.013879963, 3),\n",
+       " (34, u'class_text', u'Iris-setosa', 0.93740743, 1),\n",
+       " (34, u'class_text', u'Iris-versicolor', 0.056862056, 2),\n",
+       " (34, u'class_text', u'Iris-virginica', 0.0057305074, 3),\n",
+       " (38, u'class_text', u'Iris-setosa', 0.83670896, 1),\n",
+       " (38, u'class_text', u'Iris-versicolor', 0.14060013, 2),\n",
+       " (38, u'class_text', u'Iris-virginica', 0.022690918, 3),\n",
+       " (43, u'class_text', u'Iris-setosa', 0.8709096, 1),\n",
+       " (43, u'class_text', u'Iris-versicolor', 0.11054307, 2),\n",
+       " (43, u'class_text', u'Iris-virginica', 0.018547323, 3),\n",
+       " (56, u'class_text', u'Iris-virginica', 0.4681935, 1),\n",
+       " (56, u'class_text', u'Iris-versicolor', 0.4571225, 2),\n",
+       " (56, u'class_text', u'Iris-setosa', 0.07468399, 3),\n",
+       " (61, u'class_text', u'Iris-versicolor', 0.45466852, 1),\n",
+       " (61, u'class_text', u'Iris-virginica', 0.4470526, 2),\n",
+       " (61, u'class_text', u'Iris-setosa', 0.09827888, 3),\n",
+       " (64, u'class_text', u'Iris-virginica', 0.47486252, 1),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.46100235, 2),\n",
+       " (64, u'class_text', u'Iris-setosa', 0.064135045, 3),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.47181308, 1),\n",
+       " (67, u'class_text', u'Iris-virginica', 0.43595785, 2),\n",
+       " (67, u'class_text', u'Iris-setosa', 0.09222904, 3),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.47956672, 1),\n",
+       " (70, u'class_text', u'Iris-virginica', 0.41212082, 2),\n",
+       " (70, u'class_text', u'Iris-setosa', 0.10831244, 3),\n",
+       " (72, u'class_text', u'Iris-versicolor', 0.50861007, 1),\n",
+       " (72, u'class_text', u'Iris-virginica', 0.3626588, 2),\n",
+       " (72, u'class_text', u'Iris-setosa', 0.12873109, 3),\n",
+       " (75, u'class_text', u'Iris-versicolor', 0.5061021, 1),\n",
+       " (75, u'class_text', u'Iris-virginica', 0.3914343, 2),\n",
+       " (75, u'class_text', u'Iris-setosa', 0.102463536, 3),\n",
+       " (89, u'class_text', u'Iris-versicolor', 0.49345753, 1),\n",
+       " (89, u'class_text', u'Iris-virginica', 0.35755217, 2),\n",
+       " (89, u'class_text', u'Iris-setosa', 0.14899038, 3),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.4796765, 1),\n",
+       " (92, u'class_text', u'Iris-virginica', 0.4385325, 2),\n",
+       " (92, u'class_text', u'Iris-setosa', 0.0817909, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.47809058, 1),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.34930265, 2),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.17260681, 3),\n",
+       " (101, u'class_text', u'Iris-virginica', 0.6172143, 1),\n",
+       " (101, u'class_text', u'Iris-versicolor', 0.3620455, 2),\n",
+       " (101, u'class_text', u'Iris-setosa', 0.020740215, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.5837618, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.3847274, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 0.03151086, 3),\n",
+       " (103, u'class_text', u'Iris-virginica', 0.61951214, 1),\n",
+       " (103, u'class_text', u'Iris-versicolor', 0.3637118, 2),\n",
+       " (103, u'class_text', u'Iris-setosa', 0.016776035, 3),\n",
+       " (112, u'class_text', u'Iris-virginica', 0.5954762, 1),\n",
+       " (112, u'class_text', u'Iris-versicolor', 0.37995332, 2),\n",
+       " (112, u'class_text', u'Iris-setosa', 0.024570476, 3),\n",
+       " (113, u'class_text', u'Iris-virginica', 0.571379, 1),\n",
+       " (113, u'class_text', u'Iris-versicolor', 0.4039808, 2),\n",
+       " (113, u'class_text', u'Iris-setosa', 0.024640195, 3),\n",
+       " (115, u'class_text', u'Iris-virginica', 0.57040656, 1),\n",
+       " (115, u'class_text', u'Iris-versicolor', 0.3980587, 2),\n",
+       " (115, u'class_text', u'Iris-setosa', 0.03153468, 3),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.52341586, 1),\n",
+       " (116, u'class_text', u'Iris-versicolor', 0.43971062, 2),\n",
+       " (116, u'class_text', u'Iris-setosa', 0.036873452, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.5800313, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.3929817, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.026986998, 3),\n",
+       " (119, u'class_text', u'Iris-virginica', 0.72622484, 1),\n",
+       " (119, u'class_text', u'Iris-versicolor', 0.26773784, 2),\n",
+       " (119, u'class_text', u'Iris-setosa', 0.0060372944, 3),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.5089497, 1),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.44541556, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 0.045634773, 3),\n",
+       " (136, u'class_text', u'Iris-virginica', 0.62922823, 1),\n",
+       " (136, u'class_text', u'Iris-versicolor', 0.35819018, 2),\n",
+       " (136, u'class_text', u'Iris-setosa', 0.012581516, 3),\n",
+       " (144, u'class_text', u'Iris-virginica', 0.6017383, 1),\n",
+       " (144, u'class_text', u'Iris-versicolor', 0.3781529, 2),\n",
+       " (144, u'class_text', u'Iris-setosa', 0.020108894, 3),\n",
+       " (146, u'class_text', u'Iris-virginica', 0.5293082, 1),\n",
+       " (146, u'class_text', u'Iris-versicolor', 0.4390557, 2),\n",
+       " (146, u'class_text', u'Iris-setosa', 0.031636048, 3),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.58249867, 1),\n",
+       " (147, u'class_text', u'Iris-versicolor', 0.39045528, 2),\n",
+       " (147, u'class_text', u'Iris-setosa', 0.027046034, 3)]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model', -- model\n",
+    "                                   'iris_test',  -- test_table\n",
+    "                                   'id',  -- id column\n",
+    "                                   'attributes', -- independent var\n",
+    "                                   'iris_predict'  -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2L,)]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id)\n",
+    "WHERE iris_predict.class_value != iris_test.class_text AND iris_predict.rank = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93.33</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('93.33'),)]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id where iris_predict.rank = 1) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_byom\"></a>\n",
+    "# 7. Predict BYOM\n",
+    "The predict BYOM function allows you to do inference on models that have not been trained on MADlib, but rather imported from elsewhere.  \n",
+    "\n",
+    "We will use the validation dataset for prediction as well, which is not usual but serves to show the syntax.\n",
+    "\n",
+    "See load_keras_model()\n",
+    "http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html\n",
+    "for details on how to load the model architecture and weights.  In this example we will use weights we already have:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train using a model from the model architecture table directly without referencing the model table from the MADlib training.  \n",
+    "\n",
+    "Note that if you specify the class values parameter as we do below, it must reflect how the dependent variable was 1-hot encoded for training.  In this example the 'training_preprocessor_dl()' in Step 2 above encoded in the order {'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'} so this is the order we pass in the parameter.  If we accidently picked another order that did not match the 1-hot encoding, the predictions would be wrong."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.83670896</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8369735</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.87973696</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.93740743</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.83670896</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8709096</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4681935</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45466852</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47486252</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47181308</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47956672</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.50861007</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5061021</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.49345753</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4796765</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47809058</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6172143</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5837618</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.61951214</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5954762</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.571379</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.57040656</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.52341586</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5800313</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.72622484</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5089497</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.62922823</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6017383</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5293082</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.58249867</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(10, u'dependent_var', u'Iris-setosa', 0.83670896),\n",
+       " (13, u'dependent_var', u'Iris-setosa', 0.8369735),\n",
+       " (29, u'dependent_var', u'Iris-setosa', 0.87973696),\n",
+       " (34, u'dependent_var', u'Iris-setosa', 0.93740743),\n",
+       " (38, u'dependent_var', u'Iris-setosa', 0.83670896),\n",
+       " (43, u'dependent_var', u'Iris-setosa', 0.8709096),\n",
+       " (56, u'dependent_var', u'Iris-virginica', 0.4681935),\n",
+       " (61, u'dependent_var', u'Iris-versicolor', 0.45466852),\n",
+       " (64, u'dependent_var', u'Iris-virginica', 0.47486252),\n",
+       " (67, u'dependent_var', u'Iris-versicolor', 0.47181308),\n",
+       " (70, u'dependent_var', u'Iris-versicolor', 0.47956672),\n",
+       " (72, u'dependent_var', u'Iris-versicolor', 0.50861007),\n",
+       " (75, u'dependent_var', u'Iris-versicolor', 0.5061021),\n",
+       " (89, u'dependent_var', u'Iris-versicolor', 0.49345753),\n",
+       " (92, u'dependent_var', u'Iris-versicolor', 0.4796765),\n",
+       " (94, u'dependent_var', u'Iris-versicolor', 0.47809058),\n",
+       " (101, u'dependent_var', u'Iris-virginica', 0.6172143),\n",
+       " (102, u'dependent_var', u'Iris-virginica', 0.5837618),\n",
+       " (103, u'dependent_var', u'Iris-virginica', 0.61951214),\n",
+       " (112, u'dependent_var', u'Iris-virginica', 0.5954762),\n",
+       " (113, u'dependent_var', u'Iris-virginica', 0.571379),\n",
+       " (115, u'dependent_var', u'Iris-virginica', 0.57040656),\n",
+       " (116, u'dependent_var', u'Iris-virginica', 0.52341586),\n",
+       " (117, u'dependent_var', u'Iris-virginica', 0.5800313),\n",
+       " (119, u'dependent_var', u'Iris-virginica', 0.72622484),\n",
+       " (127, u'dependent_var', u'Iris-virginica', 0.5089497),\n",
+       " (136, u'dependent_var', u'Iris-virginica', 0.62922823),\n",
+       " (144, u'dependent_var', u'Iris-virginica', 0.6017383),\n",
+       " (146, u'dependent_var', u'Iris-virginica', 0.5293082),\n",
+       " (147, u'dependent_var', u'Iris-virginica', 0.58249867)]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict_byom;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict_byom('model_arch_library',  -- model arch table\n",
+    "                                         1,                    -- model arch id\n",
+    "                                        'iris_test',           -- test_table\n",
+    "                                        'id',                  -- id column\n",
+    "                                        'attributes',          -- independent var\n",
+    "                                        'iris_predict_byom',   -- output table\n",
+    "                                        'response',            -- prediction type\n",
+    "                                         FALSE,                -- use GPUs\n",
+    "                                         ARRAY[ARRAY['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']], -- class values\n",
+    "                                         1.0                   -- normalizing const\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict_byom ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2L,)]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict_byom JOIN iris_test USING (id)\n",
+    "WHERE iris_predict_byom.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93.33</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('93.33'),)]"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict_byom.class_value as estimated\n",
+    "     from iris_predict_byom inner join iris_test\n",
+    "     on iris_test.id=iris_predict_byom.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                FALSE,                -- warm start\n",
+    "                               'Sophie L.',           -- name\n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:27:42.910502</td>\n",
+       "        <td>2021-03-06 00:27:44.171209</td>\n",
+       "        <td>[0.706467866897583, 0.850914001464844, 0.988704919815063, 1.12321996688843, 1.26061987876892]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.286152273417</td>\n",
+       "        <td>[0.933333337306976, 0.941666662693024, 0.941666662693024, 0.958333313465118, 0.966666638851166]</td>\n",
+       "        <td>[0.410510897636414, 0.371806919574738, 0.339208543300629, 0.310610443353653, 0.286152273416519]</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0.312809795141</td>\n",
+       "        <td>[1.0, 1.0, 1.0, 1.0, 1.0]</td>\n",
+       "        <td>[0.478174388408661, 0.426770567893982, 0.391106754541397, 0.351149171590805, 0.31280979514122]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 27, 42, 910502), datetime.datetime(2021, 3, 6, 0, 27, 44, 171209), [0.706467866897583, 0.850914001464844, 0.988704919815063, 1.12321996688843, 1.26061987876892], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.966666638851166, 0.286152273416519, [0.933333337306976, 0.941666662693024, 0.941666662693024, 0.958333313465118, 0.966666638851166], [0.410510897636414, 0.371806919574738, 0.339208543300629, 0.310610443353653, 0.286152273416519], 1.0, 0.31280979514122, [1.0, 1.0, 1.0, 1.0, 1.0], [0.478174388408661, 0.426770567893982, 0.391106754541397, 0.351149171590805, 0.31280979514122], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Loss by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by time"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get time\n",
+    "time_proxy = %sql SELECT metrics_elapsed_time FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "time = np.array(time_proxy).reshape(num_points)/60.0\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by time')\n",
+    "plt.xlabel('Time (min)')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(time, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(time, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Time to achieve a given accuracy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEWCAYAAABMoxE0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzt3Xl8FPX9x/HXJ4EQhBAkICggQUE0IiJeDYoEoxVvKiB4ImqjUKrWq/yq9cBb64FCVVQqHgURpKUIgiBLRaOiGAE5BBHlRgIJBElCks/vjxnoEnMsbGZnN/k8H488mGtn3jNZ9pPvd3ZmRFUxxhhjDlac3wGMMcbENiskxhhjwmKFxBhjTFiskBhjjAmLFRJjjDFhsUJijDEmLFZITEhE5CoRmVVD6yoQkaNqYl3VbOd1EXnY6+1Uk+E6EZkfNF7pvpdf9iC2NUNEBh3s6405WFZIDAAiskZEzqlsvqq+raq/PYj1BkTkxnLraqyqqw8mZ6yrqX0XkQdE5K1y6z5fVceFu25jDpQVElMtEanndwZTd9n7L/pZITG/4naxfCIiz4pILvBAcLeLOJ4VkS0iskNEFotI5wrW8wjQAxjldumMcqeriHRwh18Xkb+73TIF7nZbichzIrJdRJaLyElB6zxCRCaLyM8i8oOI3FLN7jQXkQ9FZKeIzBORdu56RovI0+XyThWRP1WwHy+KyN/KTfu3iNzuDg8Xke/dbSwVkd9VcWyD9z3F3eYOEfkCOLrcsiNFZK07/ysR6eFO7w38BRjgHrNv3On7Wn8iEici94rIj+7v6Q0RSXbnpbo5BonITyKyVUTuqSLzhSLytZtjrYg8UG7+mSLyqYjkufOvc6c3FJGn3Qz5IjLfnZYhIuvKrWNfi9htbU0SkbdEZAdwnYicJiLZ7jY2isgoEUkIev3x7u95m4hsFpG/uO+jX0QkJWi5bu57p35l+2sOgqraj/0ArAHOcYevA0qAPwL1gIbutPnu/POAr4CmgADHAYdXst4AcGO5aQp0cIdfB7YCJwOJwEfAD8C1QDzwMDDXXTbO3e59QAJwFLAaOK+Sbb8O7ATOAhoAI4P24TRgAxDnjjcHfgFaVrCes4C1gLjjhwK7gSPc8f7AEW6+AcCuvccj+LhVsO8TgIlAI6AzsL7cslcDKe7v4A5gE5DoznsAeKuyYw1cD6xyj1Fj4D3gTXdeqpvjFfd3eyJQBBxXyXHMAE5w968LsBno485r5x7jK4D6bt6u7rzRbqbW7u+yu/t7yADWVfH+ewDYA/Rxt9kQ5/3xG/dYpALLgNvc5ZOAje4xSnTHT3fnTQeGBG3nWeAFv/+/1bYfa5GYymxQ1RdUtURVd5ebtwfnP+uxOB+uy1R1YxjbmqKqX6lqITAFKFTVN1S1FHgH2NsiORVooaojVLVYnXMNrwADq1j3+6r6X1UtAu4B0kWkrap+AeQDme5yA4GAqm6uYB0f43zw9nDH+wHZqroBQFXfVdUNqlqmqu8AK3EKVaVEJB7oC9ynqrtUdQmw3/kNVX1LVXPd38HTOB/Cnapab5CrgGdUdbWqFgD/Bwws1030oKruVtVvgG9wCsqvqGpAVRe7+7cIGA/0dGdfCcxW1fGqusfNmyMicTjF7FZVXa+qpar6qft7CEW2qv7L3eZu9/3xmXss1gAvB2W4CNikqk+raqGq7lTVz91543AK8t5jfgXwZogZTIiskJjKrK1shqp+BIzC+Ytzi4iMEZEmYWwr+MN7dwXjjd3hdsARbvdGnojk4XTxtKxi3fv2w/1A3YbTeoCgDxn33wo/YFRVcVoPV7iTrgTe3jtfRK4VkZygTJ1xWjhVaYHz13Xwcf4xeAERuVNElrndQnlAcgjr3euIcuv70d1e8LHaFDT8C/87zvsRkdNFZK7bJZQP3ByUoy3wfQUva47TOqhoXij2e/+JyDEiMk1ENrndXY+GkAHg30CaiLQHzgXy3T8iTA2yQmIqU+VtoVX1eVU9GUgDjgHuOpj1HKC1wA+q2jToJ0lVL6jiNW33DohIY6AZTpcWwFvApSJyIk733L+qWM94oJ97juV0YLK7znY4raJhQIqqNgWW4HT5VeVnnO7DtkHTjgzK2gO4G7gcONRdb37Qeqs7rhtwCm/wukvYv0iH6p/AVKCtqiYDLwXlWEu5czuurUBhJfN2AYfsHXFbCi3KLVN+/14ElgMdVbUJzh8QwRkq/Eq128qdiPOHwjVYa8QTVkjMARORU92/UuvjfCgUAmWVLL6ZSv6TH4QvgJ0i8mf3pG28iHQWkVOreM0F7sngBOAh4DNVXQugquuABTgfLpMr6MLbR1W/xvlwfBWYqap57qxGOB96PwOIyGCcFkmV3G6793C+yHCIiKQBwdeAJOF88P8M1BOR+4DgVt9mINXtQqrIeOBPItLeLaCPAu+oakl12SqQBGxT1UIROQ2nRbbX28A5InK5iNRzv0DQVVXLgLHAM+J8QSJeRNJFpAHwHZDonsSvD9yL021XXYYdQIGIHAsMCZo3DThcRG4TkQYikiQipwfNfwPnXNUlWCHxhBUSczCa4PwVvh2nyyQXeKqSZUfi/CW/XUSeD2ej7ofvRUBXnBPyez/Yk6t42T+B+3G6tE7mf11Ze43DOZEcygfMP4Fz3H/3ZloKPA1k43y4nwB8EsK6wGnFNMbpYnod+EfQvJnABzgfuj/iFOvg7p533X9zRWRhBesei7NP/8U5VoU4X544GEOBESKyE+eLDhP3zlDVn4ALcE50bwNy+N+5ljuBxTjFehvwBM6XG/Lddb6K8wWDXcB+3+KqwJ04BWwnznvvnaAMO3G6rS7GOZYrgV5B8z/B+UNnoaru131oasbeb6EYUyeJyFk4XVzt1P4z1Foi8hHwT1V91e8stZFd6GPqLLdb5VbgVSsitZfb9dkNuNTvLLWVdW2ZOklEjgPygMOB53yOYzwiIuOA2TjXnOz0O09tZV1bxhhjwmItEmOMMWGpE+dImjZtqh06dPA7xgHZtWsXjRo18jvGAbPckROLmcFyR1I4mZs3b87MmTNnqmrv6patE4WkZcuWfPnll37HOCCBQICMjAy/Yxwwyx05sZgZLHckhZtZREK6k4J1bRljjAmLFRJjjDFhsUJijDEmLHXiHElF9uzZw7p16ygsLPQ7SoWSk5NZtmxZja0vMTGRNm3aUL++Pc/HGFOz6mwhWbduHUlJSaSmpiJS3Y1aI2/nzp0kJSXVyLpUldzcXNatW0f79u1rZJ3GGLNXne3aKiwsJCUlJSqLSE0TEVJSUqK29WWMiW11tpAAdaKI7FWX9jVWZK/N5rGPHyN7bbbfUUxtlJ3NkW+/Ddnev7/qbNeWMX7KXptNr3G9KC4tJrFeInOunUN623S/Y5naIjsbzjqL9iUl8PbbMGcOpHv3/qrTLRI/5ebm0rVrV7p27UqrVq1o3br1vvHi4uKQ1jF48GBWrFjhcVLjhSnLp1BUWoSiFJcWE1gT8DuSqU0CASgpcR4hWVzsjHvIWiQ+SUlJIScnB4AHHniAxo0bc+edd+6bX1RUhKqiqsTFVVzv//GPf1Q43US3wpJCpq6YCkC8xJMQn0BGaoa/oUztkpEBcXFoWRmSkOCMe8haJAcgEn3aq1atIi0tjRtuuIHjjz+ejRs3kpWVxSmnnMLxxx/PiBEj9i175plnkpOTQ0lJCU2bNmX48OGceOKJpKens2XLFs8ymvDcMuMWVuSu4MlznuShXg9Zt5apeenp0KULha1aed6tBdYiAeC2D24jZ1NOlcvkF+WzaPMiyrSMOImjS8suJDeo/AmvXVt15bneB/eYi+XLl/Piiy/Ss2dPAB5//HGaNWtGSUkJvXr1ol+/fqSlpe2fLz+fnj178vjjj3P77bczduxYhg8fflDbN975x9f/4JWFr/CXM//CXWfc5XccU5slJ1OkSkOPiwhYiyRk+YX5lGkZAGVaRn5hvmfbOvroo+nWrdu+8fHjx9OtWze6devGsmXLWLp06a9e07BhQ84//3wATj75ZNasWeNZPnNwvt74NUOnDyWzfSYjeo2o/gXGxAhrkUBILYfstdlkvpFJcWkxCfEJvH3Z2551RwTf9nnlypWMHDmSL774gqZNm3L11VdXeD1IQkLCvuH4+HhKSko8yWYOzvbd2+k7sS/ND2nO+L7jiY+L9zuSMTXGCkmI0tumM+faOQTWBMhIzYhYn/aOHTtISkqiSZMmbNy4kZkzZ9K7d7WPBzBRpEzLuGbKNazbsY6PB39Mi0Yt/I5kTI2yQnIA0tumR/ykaLdu3UhLS+PYY4+lXbt2nHHGGRHdvgnfox8/yvsr32f0BaM5vc3pfscxpsZZIYkCDzzwwL7hDh06kJOTw86dOwHnivQ333yzwtfNnz9/33BeXt6+4YEDBzJw4EBvwpoDMuv7Wdw39z6uOuEqhpwyxO84xnjCTrYb45Gf8n/iyslXcvxhx/PyRS/bbWpMrWWFxBgPFJUU0W9iP/aU7eG9y9+jUUJsPevbmANhXVvGeOC2D25jwYYFTBkwhY4pHf2OY4ynrEViTA1745s3eOmrl7i7+930ObaP33GM8ZwVEmNq0DebvuGmaTfRK7UXj2Q+4nccYyLCCokxNSSvMI++E/vSrGEzxvcdT7046zk2dYO9032Sm5tLZmYmAJs2bSI+Pp4WLZwL1b744ouQ1zN27FguuOACWrVq5UlOE5oyLWPQvwbxY/6PzLtuHi0bt/Q7kjERY4XEJ6HcRj4UY8eOpVu3blZIfPbE/CeYumIqI3uPpHvb7n7HMSairJAciOxs5wExGRme3pZ53LhxPP/885SWltK9e3dGjRpFWVkZgwcPJicnB1UlKyuLli1bkpOTw4ABA2jYsCFffPHFfvfcMpExZ/Uc7p17L1d0voI/nvZHv+MYE3FWSABuuw1yqr6NPPn5sGgRlJVBXBx06QLJld9Gnq5d4bkDv438kiVLmDJlCrNnz+bQQw8lKyuLCRMmcPTRR7N161YWL14MOFeyN23alBdeeIFRo0bRtWvXA96WCd+6Heu4YvIVHNv8WMZcPMYuOjR1kqcn20Wkt4isEJFVIvKrh2OISAMReced/7mIpLrTzxWRr0Rksfvv2UGvOdmdvkpEnpdI/c/Nz3eKCDj/5ntzG/nZs2ezYMECevbsSdeuXZk3bx7ff/89HTp0YMWKFdxyyy3MnDmT5KqKmImI4tJi+r/bn90lu5l8+WQaJzT2O5IxvvCsRSIi8cBo4FxgHbBARKaqavDDNG4AtqtqBxEZCDwBDAC2Aher6gYR6QzMBFq7r3kR+D3wOTAd6A3MCCtsKC2H7GzIzHSef5yQAG+/7Un3lqpy/fXXc/fdd5OUlLTfvEWLFjFjxgxGjx7N5MmTGTNmTI1v34Tujpl38Nm6z3i3/7sc2/xYv+MY4xsvWySnAatUdbWqFgMTgEvLLXMpMM4dngRkioio6tequsGd/i3Q0G29HA40UdXPVFWBN4DIXPGVnu48svKhhzx9dOU555zDxIkTyc3NBZxvd/3000/8/PPPqCr9+/dnxIgRLFy4EICkpKR9N3g0kfP2orcZtWAUd6TfQb+0fn7HMcZXXp4jaQ2sDRpfB5S/h/a+ZVS1RETygRScFslefYGFqlokIq3d9QSvszUVEJEsIAugRYsWBAKB/eYnJycf+Adw587OD0ANfngXFRVRv359du7cSWpqKnfffTcXX3wxqkr9+vV59tlniY+PZ9iwYagqIsKDDz7Izp07GThwINdffz0NGzZk7ty5VZ5sLyws/NVxqGkFBQWeb8MLB5L7h10/MHThULokd6F3vd6+7W9dONbRJNZyd83Lo7S0NDKZVdWTH6Af8GrQ+DXAqHLLLAHaBI1/DzQPGj/enXa0O34KMDtofg9gWnVZjjnmGC1v6dKlv5oWTXbs2FHj64zEPs+dO9fzbXgh1Nx5u/O04/MdtdXfWumGHRu8DVWN2n6so03M5e7ZU7efeGJYqwC+1BA+771skawH2gaNt3GnVbTMOhGpByQDuQAi0gaYAlyrqt8HLd+mmnUa4wlVZfC/B7N6+2rmDprL4UmH+x3JmKjg5TmSBUBHEWkvIgnAQGBquWWmAoPc4X7AR6qqItIUeB8Yrqqf7F1YVTcCO0TkN+63ta4F/u3hPhizz98+/RtTlk/hyXOfpEe7Hn7HMSZqeFZIVLUEGIbzjatlwERV/VZERojIJe5irwEpIrIKuB3Y+xXhYUAH4D4RyXF/DnPnDQVeBVbhdHsd9De2nJZb3VCX9tULgTUBhs8ZTr+0fvzpN3/yO44xUcXTCxJVdTrOV3SDp90XNFwI9K/gdQ8DD1eyzi+BzuFmS0xMJDc3l5SUlFp/EZmqkpubS2Jiot9RYtL6HesZMGkAx6Qcw9hLxtb694sxB6rOXtnepk0b1q1bx88//+x3lAoVFhbW6Ad/YmIibdq0qX5Bs589pXu4fNLl7CrexdxBc0lqkFT9i4ypY+psIalfvz7t27f3O0alAoEAJ510kt8x6ry7PryLT9d+yoS+E0hrkeZ3HGOikj2PxJhKTFgygZGfj+TW029lQOcBfscxJmpZITGmAkt/XsqNU2/kjLZn8NS5T/kdx5ioZoXEmHJ2Fu2k78S+NEpoxDv93qF+fH2/IxkT1ersORJjKqKqXD/1elbmrmT2tbNp3aTCO/AYY4JYITEmyLOfPcukpZN48pwnyUjN8DuOMTHBuraMcX3848fc/eHdXHbcZdzZ/c7qX2CMAayQGANAblEul0+6nKMOPcouOjTmAFnXlqnz9pTuYcSyEewo2sGH13xIcqI9fdKYA2GFxNR5w2cPZ1H+It763Vt0Pizsu+8YU+dY15ap0yYtncQznz1DnyP6cFWXq/yOY0xMshaJqbOWb13O4H8P5jdtfsPQ9kP9jmNMzLIWiamTCooLuOydy0isl8i7/d+lfpxddGjMwbJCYuocVeX3//k9K3JXMKHvBNo0sbsiGxMO69oydc4LX7zAhCUTePTsR8k8KtPvOMbEPGuRmDrlk58+4Y5Zd3BJp0v485l/9juOMbWCFRJTZ2wu2Mzlky6nXXI7xvUZR5zY29+YmmBdW6ZOKCkrYeDkgWzfvZ3pN0ynaWJTvyMZU2vYn2Sm1stem03muEwCawK8dNFLnNjqRL8jGeO9/HwabN4M2dmeb8paJKZWy16bTca4DIpLi4mXeDo26+h3JGO8l50NixaRWFYGmZkwZw6kp3u2OWuRmFprU8Embpp2E8WlxfumBdYE/AtkTKQEAlBWhgAUFzvjHrJCYmqdMi3jla9e4bjRx7Fs6zLqxdUjXuJJiE+wZ4yYuiEjA+LiUICEBGfcQ9a1ZWqVZT8vI2taFvN/mk/Pdj15+aKX2bZ7G4E1ATJSM0hv613z3piokZ4OXbpQuGkTDd97z9NuLbBCYmqJwpJCHvv4MR6b/xiNExrz2iWvMbjr4H3PFbECYuqc5GSKVGnocREBKySmFpi3Zh43TbuJFbkruOqEq3jmvGc4rNFhfscyps6wQmJi1rbd27hr1l2MzRlL+6bt+eCqDzivw3l+xzKmzrFCYmKOqjJhyQRum3kbub/kcnf3u7k/434OqX+I39GMqZOskJiY8sP2Hxjy/hBmfj+T01qfxqyrZ9kFhsb4zAqJiQklZSU8m/0s9wfuJz4unud7P8/QU4cSHxfvdzRj6jwrJCbqLVi/gKxpWeRsyuGSTpcw6vxRtE1u63csY4zLComJWjuLdnLvR/cyasEoWjVuxeTLJ/O7Y3+37yu9xpjoYIXERKWpK6byh+l/YP2O9Qw5ZQiPZj5KcmKy37GMMRWwQmKiyoadG7hlxi1MXjaZzod1ZmK/iXYxoTFRztN7bYlIbxFZISKrRGR4BfMbiMg77vzPRSTVnZ4iInNFpEBERpV7zRUislhEFonIByLS3Mt9MJFRpmW8uOBFjht9HO+vfJ9Hz36UhVkLrYgYEwM8KyQiEg+MBs4H0oArRCSt3GI3ANtVtQPwLPCEO70Q+CtwZ7l11gNGAr1UtQuwCBjm1T6YyFiyZQlnjj2TodOHcuoRp7J4yGL+r8f/UT++vt/RjDEh8LJFchqwSlVXq2oxMAG4tNwylwLj3OFJQKaIiKruUtX5OAUlmLg/jcQ549oE2ODZHhhP7d6zm3vm3MNJL5/Ed7nf8UafN/jwmg/p0KyD39GMMQfAy3MkrYG1QePrgNMrW0ZVS0QkH0gBtla0QlXdIyJDgMXALmAl8IeKlhWRLCALoEWLFgQ8vh9/TSsoKIi5zBB67q+2f8WzK59l/e71nNfyPIYcPYTk7cnMmzfP+5AViMXjHYuZwXJHSte8PEpLSyOSOaZOtotIfWAIcBKwGngB+D/g4fLLquoYYAxAp06dNMPj+/HXtEAgQKxlhupzb/1lK3fMuoM3Fr1Bh2YdmN1vNplHZUYuYCVi8XjHYmaw3BHTtCl5eXkRyexlIVkPBF811sadVtEy69zzH8lAbhXr7Aqgqt8DiMhE4Fcn8U30UVXeXPQmt8+8nfyifO7pcQ/39LiHhvUb+h3NGBMmLwvJAqCjiLTHKRgDgSvLLTMVGARkA/2Aj1RVq1jneiBNRFqo6s/AucCyGk9uatSqbau4edrNzPlhDult0hlz8Rg6H9bZ71jGmBriWSFxz3kMA2YC8cBYVf1WREYAX6rqVOA14E0RWQVswyk2AIjIGpyT6Qki0gf4raouFZEHgf+KyB7gR+A6r/bBhKe4tJi/ffo3HvrvQyTEJ/DihS+SdXIWcWJPeDamNvH0HImqTgeml5t2X9BwIdC/ktemVjL9JeClmktpvJC9NpusaVks2bKEfmn9GNl7JEckHeF3LGOMB2LqZLuJfgUlBQx9fygvffkSbZq0YerAqVzc6WK/YxljPGSFxNQIVeW9Ze9x04Kb2L5nO7ecfgsP9XqIpAZJfkczxnjMCokJ29r8tQybMYypK6bSoXEHPhj0AacccYrfsYwxERJSIRGRU4AewBHAbmAJ8KGqbvcwm4lypWWljPpiFPfOvZcyLeOpc5/ipKKTrIgYU8dU+fUZERksIgtxLvprCKwAtgBnArNFZJyIHOl9TBNtcjblkP5aOrfNvI0zjzyTJUOWcGf3O4kXe2KhMXVNdS2SQ4AzVHV3RTNFpCvQEfippoOZ6LSreBcPznuQZ7KfIeWQFMb3Hc+A4wfYw6aMqcOqLCSqOrqa+Tk1G8dEs5mrZnLz+zezJm8NN550I0+c+wTNGjbzO5YxxmehniNpAfweSA1+jape700sE0227NrCn2b+iX8u/iedUjox77p5nNXuLL9jGWOiRKjf2vo38DEwGyj1Lo6JJqrK2K/HcteHd7Frzy4e6PkAw88cToN6DfyOZoyJIqEWkkNU9c+eJjFRZcXWFdw07Sbm/TiPHkf24OWLXua4Fsf5HcsYE4VCvenRNBG5wNMkJioUlRQxYt4IurzUhW82f8MrF79C4LqAFRFjTKVCbZHcCvxFRIqAPThPKVRVbeJZMhNxH//4MVnTsli+dTkDOw/k2fOepVXjVn7HMsZEuZAKiarafS5qse27t/Pn2X/mlYWv0C65HdOvnM75Hc/3O5YxJkZUWUhE5FhVXS4i3Sqar6oLvYllIkFVmfjtRG794Fa2/rKVO9Pv5IGMB2iU0MjvaMaYGFJdi+R2nOeeP13BPAXOrvFEJiLW5K1h6PtDmbFqBicffjIzrprBSYef5HcsY0wMqu6CxCz3316RiWO8VlJWwsjPRnJf4D4E4bnznmPYacOIj7NbmxhjDk6oFyTGAxfy6wsSn/EmlvHCVxu+4vf/+T1fb/qai465iNEXjObIZLtVmjEmPKF+a+s/QCGwGCjzLo7xQkFxAX/96K88/8XztGzUknf7v0vf4/ra/bGMMTUi1ELSRlW7eJrEeGLad9P4w/Q/8FP+Tww5ZQiPZT5GcmKy37GMMbVIqIVkhoj8VlVneZrG1JiNOzdy6we38u7Sdzm+xfF8cv0ndG/b3e9YxphaKNRC8hkwRUTisAsSo1qZljHmqzEMnz2cwpJCHu71MHedcRcJ8Ql+RzPG1FKhFpJngHRgsaqqh3lMGL7d8i1Z07L4dO2n9ErtxcsXvUzHlI5+xzLG1HKhFpK1wBIrItGpsKSQR/77CE988gRNGjTh9Utf59oTr7WT6caYiAi1kKwGAiIyAyjaO9G+/uu/uT/M5aZpN7Fy20qu6XINT//2aVo0auF3LGNMHRJqIfnB/Ulwf4yPstdmM33ldBZuWsj0ldM5+tCj+fCaDznnqHP8jmaMiRb5+TTYvBmysyE93dNNhXrTxgc9TWFClr02m17jelFU6jQMr+lyDS9f9DIN6zf0OZkxJmpkZ8OiRSSWlUFmJsyZ42kxqfJ5JCLyioicUMm8RiJyvYhc5U00U5HAmsC+IhIv8RzX/DgrIsaY/QUCUFaGABQXO+Meqq5FMhr4q1tMlgA/A4lAR6AJMBZ429OEZj8ZqRnESRxlWkZCfAIZqRl+RzLGRJuMDIiLQ8vKkIQEZ9xD1d20MQe4XEQaA6cAhwO7gWWqusLTZKZC6W3T6ZTSiZKyEsb1GUd6W2/7Po0xMSg9Hbp0oXDTJhq+917UnCMpAAKeJjEhS2qQRLOGzayIGGMql5xMkSoNPS4iEPoz240xxpgKWSExxhgTlgMqJCJyiFdBjDHGxKaQComIdBeRpcByd/xEEfl7CK/rLSIrRGSViAyvYH4DEXnHnf+5iKS601NEZK6IFIjIqHKvSRCRMSLynYgsF5G+oeyDMcYYb4TaInkWOA/IBVDVb4CzqnqB+1TF0cD5QBpwhYiklVvsBmC7qnZwt/GEO70Q+CtwZwWrvgfYoqrHuOudF+I+GGOM8UDIXVuqurbcpNJqXnIasEpVV6tqMTABuLTcMpcC49zhSUCmiIiq7lLV+TgFpbzrgcfcTGWqujXUfTDGGFPzQr77r4h0B1RE6gO3AsuqeU1rnLsG77UOOL2yZVS1RETygRSgwuIgIk3dwYdEJAP4HhimqpsrWDYLyAJo0aIFAY+v7KxpBQUFlWbesWMH/EJU7lNVuaNZLOaOxcxguSOla14epaWlEcnoVSQkAAATpElEQVQcaiG5GRiJ88G/HpgF/MGrUFWoB7QBPlXV20XkduBvwDXlF1TVMcAYgE6dOmmGx1d21rRAIEBlmZusakKzhs0qne+nqnJHs1jMHYuZwXJHTNOm5OXlRSRzqBckbgUO9J5a64G2QeNt3GkVLbNOROoBybjnYSqRC/wCvOeOv4tznsUYY4xPQiokItIe+COQGvwaVb2kipctADq6r10PDASuLLfMVGAQkA30Az6q6uFZqqoi8h8gA/gIyASWhrIPxhhjvBFq19a/gNeA/wBlobzAPecxDJgJxANjVfVbERkBfKmqU911vikiq4BtOMUGABFZg3NjyAQR6QP8VlWXAn92X/Mczk0kB4e4D8YYYzwQaiEpVNXnD3TlqjodmF5u2n1Bw4VA/0pem1rJ9B+p5qvHxhhjIifUQjJSRO7HOcke/KjdhZ6kMsYYEzNCLSQn4Hwz6mz+17Wl7rgxxpg6LNRC0h84yr2w0BhjjNkn1CvblwBNq13KGGNMnRNqi6QpsFxEFrD/OZKqvv5rjDGmDgi1kNzvaQpjjDExK9Qr2+0Ou8YYYypUZSERkfmqeqaI7MT5lta+WTgXmjfxNJ0xxpioV12LpBGAqiZFIIsxxpgYVN23tiq975UxxhgD1bdIDnNv1V4hVX2mhvMYY4yJMdUVknigMc45EWOMMeZXqiskG1V1RESSGGOMiUnVnSOxlogxxpgqVVdIMiOSwhhjTMyqspCo6rZIBTHGGBObQr1pozHGGFMhKyTGGGPCYoXEGGNMWKyQGGOMCYsVEmOMMWGxQmKMMSYsVkiMMcaExQqJMcaYsFghMcYYExYrJMYYY8JihcQYY0xYrJAYY4wJixUSY4wxYbFCYowxJixWSIwxxoTFCkkM2lm0k++3fU/22my/oxhjolV+Pg02b4Zs7z8nrJDEmOy12azIXcHKbSvJfCPTiokx5teys2HRIhI3bYLMTM+LiRWSGDNl+RTKtAyA4tJiAmsC/gYyxkSfQADKyhCA4mJn3EOeFhIR6S0iK0RklYgMr2B+AxF5x53/uYikutNTRGSuiBSIyKhK1j1VRJZ4mT/a7Cndw4yVMwCIl3gS4hPISM3wN5QxJvpkZEBcHAqQkOCMe6ieVysWkXhgNHAusA5YICJTVXVp0GI3ANtVtYOIDASeAAYAhcBfgc7uT/l1XwYUeJU9Wt039z6W/LyEh3o9RLzEk5GaQXrbdL9jGWOiTXo6dOlC4aZNNHzvPWfcQ54VEuA0YJWqrgYQkQnApUBwIbkUeMAdngSMEhFR1V3AfBHpUH6lItIYuB3IAiZ6Fz+6zPp+Fo9/8jhZ3bK496x7/Y5jjIl2yckUqdLQ4yIC3haS1sDaoPF1wOmVLaOqJSKSD6QAW6tY70PA08AvVW1cRLJwig0tWrQg4HEfYU0rKCjYl3lb8TZu/PJG2jdqz2WHXBbV+xKcO5bEYu5YzAyWO1K65uVRWloakcxeFpIaJyJdgaNV9U97z6dURlXHAGMAOnXqpBke9xHWtEAgQEZGBqVlpZz31nkUaiHTBk0jrUWa39GqtDd3rInF3LGYGSx3xDRtSl5eXkQye3myfT3QNmi8jTutwmVEpB6QDORWsc504BQRWQPMB44RkUAN5Y1Kj89/nDk/zGHUBaOivogYY+omLwvJAqCjiLQXkQRgIDC13DJTgUHucD/gI1XVylaoqi+q6hGqmgqcCXynqhk1njxKzP9pPvcF7uPKE65kcNfBfscxxpgKeda15Z7zGAbMBOKBsar6rYiMAL5U1anAa8CbIrIK2IZTbABwWx1NgAQR6QP8ttw3vmq1/D35DJs8jKMOPYqXLnwJEfE7kjHGVMjTcySqOh2YXm7afUHDhUD/Sl6bWs2611DBV4NrA1XlyRVPsmXXFrJvyCapQZLfkYwxplIxdbK9rnj+8+f5NPdTRvYeSbfDu/kdxxhjqmS3SIkyX234irs+vIszUs7gj6f90e84xhhTLSskUWRH0Q4GTBpAq8atuLvT3XZexBgTE6xrK0qoKjdNu4k1eWuYd9089qze43ckY4wJibVIosRrX7/GhCUTGNFrBGcceYbfcYwxJmRWSKLAt1u+5ZYZt3DOUecw/Mxf3STZGGOimhUSn/2y5xcun3Q5SQ2SePN3bxIn9isxxsQWO0fis1tn3Mqyn5cx8+qZtGrcyu84xhhzwOzPXx9NWDKBV79+leFnDufco8/1O44xxhwUKyQ+WbVtFVn/yaJ72+6M6DXC7zjGGHPQrJD4oKikiIGTBlIvrh7j+46nXpz1MBpjYpd9gvlg+OzhfLXxK6YMmMKRyUf6HccYY8JiLZII+8+K//Dc58/xx9P+SJ9j+/gdxxhjwmaFJILW5q/lun9fx0mtTuKpc5/yO44xxtQIKyQRUlJWwpXvXUlxaTHv9HuHBvUa+B3JGGNqhJ0jiZAHAw8y/6f5vPW7t+iY0tHvOMYYU2OsRRIBc1bP4ZGPH2Fw18Fc1eUqv+MYY0yNskLisc0Fm7l6ytUc2/xYXjj/Bb/jGGNMjbOuLQ+VaRnX/uta8grzmHX1LBolNPI7kjHG1DgrJB566pOnmPX9LF668CVOaHmC33GMMcYT1rXlkey12dzz0T30T+tP1slZfscxxhjPWCHxwPbd2xk4eSBHJh/JKxe/Yo/MNcbUata1VcNUlRum3sDGnRv55PpPSE5M9juSMcZ4ygpJDfv7gr8zZfkUnv7t05za+lS/4xhjjOesa6sG5WzK4fZZt3Nhxwv502/+5HccY4yJCCskNaSguIABkwbQ4pAWvN7ndTsvYoypM6xrq4YMfX8oq7atYu6guTQ/pLnfcYwxJmKsRVIDxuWM481Fb3J/z/s5q91ZfscxxpiIskISpuVblzN0+lB6pfbinh73+B3HGGMizgpJGHbv2c2ASQNoVL8Rb132FvFx8X5HMsaYiLNzJGG4Y9YdLNq8iBlXzeCIpCP8jmOMMb6wFslBmrx0Mi9++SJ3db+L3h16+x3HGGN8Y4XkIPyw/QdumHoDp7c+nUfOfsTvOMYY4ysrJAdoT+kerph8BQAT+k2gfnx9nxMZY4y/PC0kItJbRFaIyCoRGV7B/AYi8o47/3MRSXWnp4jIXBEpEJFRQcsfIiLvi8hyEflWRB73Mn9F7vnoHj5f/zmvXfIaqU1TI715Y4yJOp4VEhGJB0YD5wNpwBUiklZusRuA7araAXgWeMKdXgj8FbizglX/TVWPBU4CzhCR873IX5EZK2fw1KdPMeSUIfRN6xupzRpjTFTzskVyGrBKVVerajEwAbi03DKXAuPc4UlApoiIqu5S1fk4BWUfVf1FVee6w8XAQqCNh/uwz4adG7j2X9fSpWUXnjnvmUhs0hhjYoKXX/9tDawNGl8HnF7ZMqpaIiL5QAqwtbqVi0hT4GJgZCXzs4AsgBYtWhAIBA4w/v+Uail3LbqLgsIC7jj+Dj6b/9lBrytUBQUFYWX2i+WOnFjMDJY7Urrm5VFaWhqRzDF5HYmI1APGA8+r6uqKllHVMcAYgE6dOmlGRsZBb2/EvBF8nfc1r1/6Otd2vfag13MgAoEA4WT2i+WOnFjMDJY7Ypo2JS8vLyKZvezaWg+0DRpv406rcBm3OCQDuSGsewywUlWfq4GcVZq3Zh4PznuQa7pcw6Cug7zenDHGxBwvC8kCoKOItBeRBGAgMLXcMlOBvZ/O/YCPVFWrWqmIPIxTcG6r4by/MmPlDC4efzGtk1rz9wv/7vXmjDGm5uTn02DzZsjO9nxTnhUSVS0BhgEzgWXARFX9VkRGiMgl7mKvASkisgq4Hdj3FWERWQM8A1wnIutEJE1E2gD34HwLbKGI5IjIjV7k//SnT7lo/EXsLN7Jll1bWLx5sRebMcaYmpedDYsWkbhpE2Rmel5MPD1HoqrTgenlpt0XNFwI9K/ktamVrDYiT4yau2YuextHJWUlBNYESG+bHolNG2NMeAIBUHU+LIuLnfF07z6/7Mr2Spzd/mwS6yUSL/EkxCeQkZrhdyRjjAlNRgYkJlIWFwcJCc64h2LyW1uRkN42nTnXziGwJkBGaoa1RowxsSM9HebMYc3YsRx1/fWetkbACkmV0tumWwExxsSm9HR+KiriKI+LCFjXljHGmDBZITHGGBMWKyTGGGPCYoXEGGNMWKyQGGOMCYsVEmOMMWGRam5tVSuIyE5ghd85DlBzQridfhSy3JETi5nBckdSOJm3Aqhq7+oWrCvXkaxQ1VP8DnEgROTLWMsMljuSYjEzWO5IilRm69oyxhgTFiskxhhjwlJXCskYvwMchFjMDJY7kmIxM1juSIpI5jpxst0YY4x36kqLxBhjjEeskBhjjAlLTBcSEektIitEZJWIDK9gfjsRmSMii0Qk4D6qd+/0vY/q/VZEbo6F3EHzm7iPHx4VudTh5RaRUvd454jI1BjJfKSIzBKRZSKyVERSoz23iPQKOs45IlIoIn2iPbc770n3/+MyEXleRCLyNNQwMz8hIkvcnwGRyOtud6yIbBGRJZXMF/cYrnJzdwuaN0hEVro/g2okkKrG5A8QD3wPHAUkAN8AaeWWeRcY5A6fDbzpDicADdzhxsAa4Ihozx00fyTwT2BULBxvd7wglt4j7ngAODfofXJILOQOWqYZsC0WcgPdgU/cdcQD2UBGlGe+EPgQ53q8RsACoEmEjvVZQDdgSSXzLwBm4Dya/DfA50HvidXuv4e6w4eGmyeWWySnAatUdbWqFgMTgEvLLZMGfOQOz907X1WLVbXInd6AyLbMDjo3gIicDLQEZkUga7CwcvvkoDOLSBpQT1U/BFDVAlX9JTKxa+xY9wNmxEhuBRJx/8gD6gObPU8cXuY04L+qWqKqu4BFQLVXgdcEVf0vzh8JlbkUeEMdnwFNReRw4DzgQ1XdpqrbcQph2JljuZC0BtYGja9zpwX7BrjMHf4dkCQiKQAi0lZEFrnreEJVN3icd6+Dzi0iccDTwJ2ep/y1sI43kCgiX4rIZxHsagkn8zFAnoi8JyJfi8hTIhLveWJHuMd6r4HAeE8SVuygc6tqNs6H9Eb3Z6aqLvM4L4R3rL8BeovIISLSHOgFtPU4b6gq269Q9veAxXIhCcWdQE8R+RroCawHSgFUda2qdgE6AINEpKV/MX+lstxDgemqus7PcFWo9HgD7dS5VcOVwHMicrRPGcurLHM9oIc7/1Scro/rfMpYkaqONe5fnycAM/2JV6kKc4tIB+A4oA3OB9vZItLDv5j7qTCzqs4CpgOf4hTsbIJ+B3VJLN9raz37V/827rR93FbGZQAi0hjoq6p55ZdxT1j1ACZ5mthx0LlFJB3oISJDcfrsE0SkQFV/dYIwmnK789a7/64WkQBwEk7fdFRmFpF1QI6qrnbn/Qunr/k1jzOHlTtokcuBKaq6x+OswcI53r8HPlPVAnfeDCAd+DhaM7vzHgEecef9E/jO47yhqmy/1gMZ5aYHwt5aJE4MefGDUwRXA+3530my48st0xyIc4cfAUa4w22Ahu7woTi//BOiPXe5Za4jsifbwzneh/K/Lzc0B1ZS7oRmFGaOd5dv4Y7/A/hDtB/roPmfAb0i9f6ogeM9AJjtrqM+MAe4OMozxwMp7nAXYAnOebVIHe9UKj/ZfiH7n2z/wp3eDPjB/T95qDvcLOwskXyjeXAgL8ApAt8D97jTRgCXuMP93A+t74BXgz7MzsU5MfaN+29WLOQut47riGAhCfN4dwcWu8d7MXBDtGcu9z5ZDLwOJMRI7lScvzzjIvn+CPM9Eg+8DCwDlgLPxEDmRDfrUpzC3TWCmcfjnEvag3Oe4wbgZuBmd74Ao919WgycEvTa64FV7s/gmshjt0gxxhgTltp+st0YY4zHrJAYY4wJixUSY4wxYbFCYowxJixWSIwxxoTFCokxIRKRPiKiInKs31mMiSZWSIwJ3RXAfPdfT0Twfl7G1BgrJMaEwL01xpk4F34NDJr+ZxFZLCLfiMjj7rQOIjLbnbZQRI4WkQwRmRb0ulEicp07vMZ9rsVCoL+I/F5EFrivnywih7jLtRSRKe70b0Sku4iMEJHbgtb7iIjcGpGDYowrlu+1ZUwkXQp8oKrfiUiuezv/w9zpp6vqLyLSzF32beBxVZ0iIok4f7BVd1fYXFXtBuDeDfcVd/hhnOL1AvA8ME9Vf+e2XBoDG4D3cG6EGYdT5E6rwf02plpWSIwJzRU4DxQD55kVV+DchuIf6j7vQ1W3iUgS0FpVp7jTCgFCeNjfO0HDnd0C0hSnWOy9g+/ZwLXuekuBfCDfLWwn4Tyn5mtVzQ1nR405UFZIjKmG29I4GzhBRBTnvlCK8+S8UJWwf1dyYrn5u4KGXwf6qOo3bvdXRjXrfhXn3mutgLEHkMmYGmHnSIypXj+cx6u2U9VUVW2Lc9fUfGBw0DmMZqq6E1i39+FdItLAnf8jkOaONwUyq9heErBRROoDVwVNnwMMcdcbLyLJ7vQpOE+5O5Xoe/6IqQOskBhTvStwPqyDTQYOB6YCX4pIDv97cuU1wC3uEzg/BVqp6lpgIs6txicCX1exvb8Cn+M8w3x50PRbgV4ishj4CudRr6jziNi5wES3y8uYiLK7/xoT49yT7AuB/qq60u88pu6xFokxMUxE0nCeKzHHiojxi7VIjDHGhMVaJMYYY8JihcQYY0xYrJAYY4wJixUSY4wxYbFCYowxJiz/D9t4DOwlHft4AAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#plot\n",
+    "plt.title('Iris time by validation accuracy')\n",
+    "plt.xlabel('Accuracy')\n",
+    "plt.ylabel('Time (min)')\n",
+    "plt.grid(True)\n",
+    "plt.plot(train_accuracy, time, 'g.-', label='Train')\n",
+    "plt.plot(test_accuracy, time, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2. Predict probabilities\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.95964456</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.040107667</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00024777954</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9597473</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.039995104</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00025748153</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9761629</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.02375229</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>8.479464e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.99167526</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.008311711</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>1.30546e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.95964456</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.040107667</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00024777954</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9731986</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.026633002</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0001682964</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5465453</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.44023818</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.01321647</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.58524394</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.38831925</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026436739</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.54376984</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4466499</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.009580206</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.57931274</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4024986</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.018188644</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6546029</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.31436205</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.031035094</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7274642</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.23212723</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.04040851</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.70608836</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2678585</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026053142</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7004706</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.24725808</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.052271266</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60884434</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.37558457</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.015571073</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.6937521</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.22628777</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.07996013</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8121722</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.18745965</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00036821415</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.732954</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.26589376</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0011522635</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7756057</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.22408752</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00030681648</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.73672587</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.26255292</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00072121713</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6946963</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.30448684</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0008168273</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7407642</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2582139</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0010218392</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.6248408</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.37318283</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0019763925</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.69742286</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.30152085</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0010562533</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8924382</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.10752802</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>3.379417e-05</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5494711</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.44651195</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.004016916</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7880493</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.21177953</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0001712008</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.76935935</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.23023891</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.00040176214</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.62273574</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.37572634</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0015378947</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.71288556</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2861904</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0009240419</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(10, u'class_text', u'Iris-setosa', 0.95964456, 1),\n",
+       " (10, u'class_text', u'Iris-versicolor', 0.040107667, 2),\n",
+       " (10, u'class_text', u'Iris-virginica', 0.00024777954, 3),\n",
+       " (13, u'class_text', u'Iris-setosa', 0.9597473, 1),\n",
+       " (13, u'class_text', u'Iris-versicolor', 0.039995104, 2),\n",
+       " (13, u'class_text', u'Iris-virginica', 0.00025748153, 3),\n",
+       " (29, u'class_text', u'Iris-setosa', 0.9761629, 1),\n",
+       " (29, u'class_text', u'Iris-versicolor', 0.02375229, 2),\n",
+       " (29, u'class_text', u'Iris-virginica', 8.479464e-05, 3),\n",
+       " (34, u'class_text', u'Iris-setosa', 0.99167526, 1),\n",
+       " (34, u'class_text', u'Iris-versicolor', 0.008311711, 2),\n",
+       " (34, u'class_text', u'Iris-virginica', 1.30546e-05, 3),\n",
+       " (38, u'class_text', u'Iris-setosa', 0.95964456, 1),\n",
+       " (38, u'class_text', u'Iris-versicolor', 0.040107667, 2),\n",
+       " (38, u'class_text', u'Iris-virginica', 0.00024777954, 3),\n",
+       " (43, u'class_text', u'Iris-setosa', 0.9731986, 1),\n",
+       " (43, u'class_text', u'Iris-versicolor', 0.026633002, 2),\n",
+       " (43, u'class_text', u'Iris-virginica', 0.0001682964, 3),\n",
+       " (56, u'class_text', u'Iris-versicolor', 0.5465453, 1),\n",
+       " (56, u'class_text', u'Iris-virginica', 0.44023818, 2),\n",
+       " (56, u'class_text', u'Iris-setosa', 0.01321647, 3),\n",
+       " (61, u'class_text', u'Iris-versicolor', 0.58524394, 1),\n",
+       " (61, u'class_text', u'Iris-virginica', 0.38831925, 2),\n",
+       " (61, u'class_text', u'Iris-setosa', 0.026436739, 3),\n",
+       " (64, u'class_text', u'Iris-versicolor', 0.54376984, 1),\n",
+       " (64, u'class_text', u'Iris-virginica', 0.4466499, 2),\n",
+       " (64, u'class_text', u'Iris-setosa', 0.009580206, 3),\n",
+       " (67, u'class_text', u'Iris-versicolor', 0.57931274, 1),\n",
+       " (67, u'class_text', u'Iris-virginica', 0.4024986, 2),\n",
+       " (67, u'class_text', u'Iris-setosa', 0.018188644, 3),\n",
+       " (70, u'class_text', u'Iris-versicolor', 0.6546029, 1),\n",
+       " (70, u'class_text', u'Iris-virginica', 0.31436205, 2),\n",
+       " (70, u'class_text', u'Iris-setosa', 0.031035094, 3),\n",
+       " (72, u'class_text', u'Iris-versicolor', 0.7274642, 1),\n",
+       " (72, u'class_text', u'Iris-virginica', 0.23212723, 2),\n",
+       " (72, u'class_text', u'Iris-setosa', 0.04040851, 3),\n",
+       " (75, u'class_text', u'Iris-versicolor', 0.70608836, 1),\n",
+       " (75, u'class_text', u'Iris-virginica', 0.2678585, 2),\n",
+       " (75, u'class_text', u'Iris-setosa', 0.026053142, 3),\n",
+       " (89, u'class_text', u'Iris-versicolor', 0.7004706, 1),\n",
+       " (89, u'class_text', u'Iris-virginica', 0.24725808, 2),\n",
+       " (89, u'class_text', u'Iris-setosa', 0.052271266, 3),\n",
+       " (92, u'class_text', u'Iris-versicolor', 0.60884434, 1),\n",
+       " (92, u'class_text', u'Iris-virginica', 0.37558457, 2),\n",
+       " (92, u'class_text', u'Iris-setosa', 0.015571073, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.6937521, 1),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.22628777, 2),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.07996013, 3),\n",
+       " (101, u'class_text', u'Iris-virginica', 0.8121722, 1),\n",
+       " (101, u'class_text', u'Iris-versicolor', 0.18745965, 2),\n",
+       " (101, u'class_text', u'Iris-setosa', 0.00036821415, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.732954, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.26589376, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 0.0011522635, 3),\n",
+       " (103, u'class_text', u'Iris-virginica', 0.7756057, 1),\n",
+       " (103, u'class_text', u'Iris-versicolor', 0.22408752, 2),\n",
+       " (103, u'class_text', u'Iris-setosa', 0.00030681648, 3),\n",
+       " (112, u'class_text', u'Iris-virginica', 0.73672587, 1),\n",
+       " (112, u'class_text', u'Iris-versicolor', 0.26255292, 2),\n",
+       " (112, u'class_text', u'Iris-setosa', 0.00072121713, 3),\n",
+       " (113, u'class_text', u'Iris-virginica', 0.6946963, 1),\n",
+       " (113, u'class_text', u'Iris-versicolor', 0.30448684, 2),\n",
+       " (113, u'class_text', u'Iris-setosa', 0.0008168273, 3),\n",
+       " (115, u'class_text', u'Iris-virginica', 0.7407642, 1),\n",
+       " (115, u'class_text', u'Iris-versicolor', 0.2582139, 2),\n",
+       " (115, u'class_text', u'Iris-setosa', 0.0010218392, 3),\n",
+       " (116, u'class_text', u'Iris-virginica', 0.6248408, 1),\n",
+       " (116, u'class_text', u'Iris-versicolor', 0.37318283, 2),\n",
+       " (116, u'class_text', u'Iris-setosa', 0.0019763925, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.69742286, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.30152085, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.0010562533, 3),\n",
+       " (119, u'class_text', u'Iris-virginica', 0.8924382, 1),\n",
+       " (119, u'class_text', u'Iris-versicolor', 0.10752802, 2),\n",
+       " (119, u'class_text', u'Iris-setosa', 3.379417e-05, 3),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.5494711, 1),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.44651195, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 0.004016916, 3),\n",
+       " (136, u'class_text', u'Iris-virginica', 0.7880493, 1),\n",
+       " (136, u'class_text', u'Iris-versicolor', 0.21177953, 2),\n",
+       " (136, u'class_text', u'Iris-setosa', 0.0001712008, 3),\n",
+       " (144, u'class_text', u'Iris-virginica', 0.76935935, 1),\n",
+       " (144, u'class_text', u'Iris-versicolor', 0.23023891, 2),\n",
+       " (144, u'class_text', u'Iris-setosa', 0.00040176214, 3),\n",
+       " (146, u'class_text', u'Iris-virginica', 0.62273574, 1),\n",
+       " (146, u'class_text', u'Iris-versicolor', 0.37572634, 2),\n",
+       " (146, u'class_text', u'Iris-setosa', 0.0015378947, 3),\n",
+       " (147, u'class_text', u'Iris-virginica', 0.71288556, 1),\n",
+       " (147, u'class_text', u'Iris-versicolor', 0.2861904, 2),\n",
+       " (147, u'class_text', u'Iris-setosa', 0.0009240419, 3)]"
+      ]
+     },
+     "execution_count": 28,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model',      -- model\n",
+    "                                   'iris_test',       -- test_table\n",
+    "                                   'id',              -- id column\n",
+    "                                   'attributes',      -- independent var\n",
+    "                                   'iris_predict',    -- output table\n",
+    "                                   'prob'             -- response type\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3. Warm start\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                TRUE,                 -- warm start\n",
+    "                               'Sophie L.',           -- name \n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In the summary table and plots below note that the loss and accuracy values pick up from where the previous run left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:27:51.102558</td>\n",
+       "        <td>2021-03-06 00:27:52.451185</td>\n",
+       "        <td>[0.781347990036011, 0.923561096191406, 1.06405401229858, 1.20302820205688, 1.34854102134705]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.975000023842</td>\n",
+       "        <td>0.194891035557</td>\n",
+       "        <td>[0.941666662693024, 0.966666638851166, 0.958333313465118, 0.949999988079071, 0.975000023841858]</td>\n",
+       "        <td>[0.262409120798111, 0.24169448018074, 0.222953796386719, 0.207046672701836, 0.194891035556793]</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0.188044458628</td>\n",
+       "        <td>[0.966666638851166, 1.0, 1.0, 1.0, 1.0]</td>\n",
+       "        <td>[0.293483078479767, 0.254781544208527, 0.232207864522934, 0.212682083249092, 0.188044458627701]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 27, 51, 102558), datetime.datetime(2021, 3, 6, 0, 27, 52, 451185), [0.781347990036011, 0.923561096191406, 1.06405401229858, 1.20302820205688, 1.34854102134705], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.975000023841858, 0.194891035556793, [0.941666662693024, 0.966666638851166, 0.958333313465118, 0.949999988079071, 0.975000023841858], [0.262409120798111, 0.24169448018074, 0.222953796386719, 0.207046672701836, 0.194891035556793], 1.0, 0.188044458627701, [0.966666638851166, 1.0, 1.0, 1.0, 1.0], [0.293483078479767, 0.254781544208527, 0.232207864522934, 0.212682083249092, 0.188044458627701], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"transfer_learn\"></a>\n",
+    "# Transfer learning\n",
+    "\n",
+    "<a id=\"load2\"></a>\n",
+    "# 1. Define and load model architecture with some layers frozen\n",
+    "Here we want to start with initial weights from a pre-trained model rather than training from scratch.  We also want to use a model architecture with the earlier feature layer(s) frozen to save on training time.  The example below is somewhat contrived but gives you the idea of the steps.\n",
+    "\n",
+    "First define a model architecture with the 1st hidden layer frozen:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 143\n",
+      "Non-trainable params: 50\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_transfer = Sequential()\n",
+    "model_transfer.add(Dense(10, activation='relu', input_shape=(4,), trainable=False))\n",
+    "model_transfer.add(Dense(10, activation='relu'))\n",
+    "model_transfer.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_transfer.summary()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 34,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_transfer.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load transfer model into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': False, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>A transfer model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1341 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Maria', u'A transfer model')]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,                      \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'A transfer model'     -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train2\"></a>\n",
+    "# 2. Train transfer model\n",
+    "\n",
+    "Fetch the weights from a previous MADlib run.  (Normally these would be downloaded from a source that trained the same model architecture on a related dataset.)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 36,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 2;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train the model using the transfer model and the pre-trained weights:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                2,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2                     -- metrics compute frequency\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>2</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:27:56.293667</td>\n",
+       "        <td>2021-03-06 00:27:57.661243</td>\n",
+       "        <td>[0.832237005233765, 0.965812921524048, 1.09816098213196, 1.22954201698303, 1.3674840927124]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.949999988079</td>\n",
+       "        <td>0.153273612261</td>\n",
+       "        <td>[0.949999988079071, 0.958333313465118, 0.949999988079071, 0.949999988079071, 0.949999988079071]</td>\n",
+       "        <td>[0.182110622525215, 0.173247531056404, 0.165094882249832, 0.158673033118248, 0.153273612260818]</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0.134765788913</td>\n",
+       "        <td>[1.0, 1.0, 1.0, 1.0, 1.0]</td>\n",
+       "        <td>[0.177851542830467, 0.161254957318306, 0.152191400527954, 0.142795532941818, 0.134765788912773]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 2, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 27, 56, 293667), datetime.datetime(2021, 3, 6, 0, 27, 57, 661243), [0.832237005233765, 0.965812921524048, 1.09816098213196, 1.22954201698303, 1.3674840927124], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.949999988079071, 0.153273612260818, [0.949999988079071, 0.958333313465118, 0.949999988079071, 0.949999988079071, 0.949999988079071], [0.182110622525215, 0.173247531056404, 0.165094882249832, 0.158673033118248, 0.153273612260818], 1.0, 0.134765788912773, [1.0, 1.0, 1.0, 1.0, 1.0], [0.177851542830467, 0.161254957318306, 0.152191400527954, 0.142795532941818, 0.134765788912773], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 38,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Note loss picks up from where the last training left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzs3XmcjeUbx/HPNWMwjIhCWTKWiqwhxla2oqKSfV+iEkK0/EqLqKSypVRE2UlFUsiaqOx7so2l7KEkMVy/P+6jpjFjzow588xyvb3OyznPeZbvnHPmXPMs932LqmKMMcZcTpDXAYwxxqR8ViyMMcbEy4qFMcaYeFmxMMYYEy8rFsYYY+JlxcIYY0y8rFgEmIi0EpF5ybi9QiKiIpLB9/grEWnnz7yJ2Nb/RGT0leSNY73tRWRZUq83jm1d0WsQY10BeT0SmCHO9zstE5EHRGSfiJwSkXJJsL5xIjIgKbKlFVf8C5LeiUgk8JCqfhPb86o6EZiYrKH+u/36SbEeEbkDmKCq+aOt+5WkWHdaEf31EJFCwG4gRFWjArE9EXkRKKqqraNlSJL3OxFZ2uN+D6p5sX3gDaCbqs70aPtpnu1ZBFBS/LVq0qe0+NkRkeAArv4GYHNiFkzO1zo1v69WLJKQ7/DJdyIyRESOAS9GP6QizhAROSwiv4vIRhEpGct6monIqhjTeonILN/9e0RkrW8d+3x/YcaVabGIPOS7Hywib4jIURHZBdwTY94OIrJVRP4QkV0i8rBvelbgK+B6327+KRG5XkReFJEJ0ZZvKCKbReSEb7vFoz0XKSJ9RGSDiJwUkakiktnP17WKiKz0LbdSRKrEeM13+TLvFpFWvulFRWSJb5mjIjI1ns10FJFfReSAiPTxrSOviJwWkVzRtneriBwRkZBYckZ/PZb6/j/he70ifPN09L3Gx0VkrojcEG15FZHHRGQ7sN03bZjvPf5dRFaLSHXf9HrA/4BmvvWv902P/n4HichzIrLH95n7WESy+567ePitnYjs9b1Gz/rzfsTycxcHRgERviwnfNPHici7IjJHRP4Eal7usxtfJhG5TURW+ZY9JCJviUgmETkFBAPrRWSnb97rRWSG773aLSI9YrxPn4jIBBH5HWjvx894r4is8322l4tI6WjPPS0iO32fwS0i8kC05+L8ThD3u3jcl8+TPcIEUVW7XcENiATq+O63B6KA7rhDfKG+act8z98FrAZyAAIUB66LZZ1ZgD+AYtGmrQSa++7fAZTCFfvSwCHgft9zhQAFMvgeL8YdHgB4BPgJKADkBBbFmPceoIgv2+3AaeDWaNvcHyPni7hDUwA3An8CdYEQ4ElgB5Ax2uv0I3C9b9tbgUfieE2jv2Y5geNAG99r2sL3OBeQFfgduMk373XALb77k4Fnfa9RZqBaHNu6+HpN9q2vFHAk2ns6B3g02vxDgBFxrCv66/Gf98E37T7fa1Lc97M8ByyP9rwC830/c6hvWmvfz5oBeAI4CGSOub1o64j+fnf0ba8wEAZ8CoyPke8D3Oe0DPA3UDyRvwf/vGfRpo0DTgJVo70PdxD/ZzfWTMAKoI3vfhhQOcZrV9R3Pwj3e/Y8kNH38+8C7or2up0D7vfNGxrLzzMOGOC7Xw44DFTCFaV2uM9zJt/zTXCf6yCgGe734Lp4vhPOAZ1963sU+BUQr7/PLnezPYuk96uqjlDVKFX9K8Zz54BswM24D8ZWVT0QcwWqehqYiftiRESK+ZaZ5Xt+sapuVNULqroB90V3ux/ZmgJDVXWfqv4GvBpju1+q6k51lgDzgOp+/tzNgC9Vdb6qnsMdQw4FqkSbZ7iq/urb9hdAWT/Wew+wXVXH+17TybiC18D3/AWgpIiEquoBVb14KOIc7tDE9ap6RlXjO2H+kqr+qaobgbH4XnvgI9wX9sXDKC2A8X7kjs0jwKu+9z0KeAUoG33vwvf8bxc/O6o6QVWP+X72N4FMwE1+bq8V8Jaq7lLVU8AzQHP576GQl1T1L1VdD6zHfUEnpZmq+p3vs3rGz89uXJnOAUVF5BpVPaWq38exzYrAtaraX1XPquouXAFqHm2eFar6uS9HzN/TmLoA76nqD6p6XlU/whWxygCqOt33ub6gqlNxe4W3RVs+tu+EPar6gaqex33GrgPyxJPDU1Yskt6+uJ5Q1YXA28BI4LCIvC8iV8Ux+yT+/cJqCXzuKyKISCURWeTbxT6J+xK6xo9s18fItyf6kyJSX0S+F5HffIcS7vZzvRfX/c/6VPWCb1v5os1zMNr907i/DhO03mi586nqn7gi9QhwQES+FJGbffM8idtD+lHcobGO8Wwn5utyve/+TKCEiITj9ppOquqPfuSOzQ3AMN+hjBPAb76M0V+j/3x+xB262+o7nHYCyE4i3xPf/Qz890sp3vdERArKv4cfT/m57Yti/jz+fHbjytQJtwf7k7jDkffGsc0bcIdMT0R7rf/Hf3/uOH9P41jfEzHWVwDfZ0RE2kY7RHUCKBnjZ4ptW//8jBd/r/Hv98EzViyS3mW78VXV4apaHiiB++D3jWPW+cC1IlIWVzQmRXtuEm4vo4CqZscdLxY/sh3AfcgvKnjxjohkAmbg9gjyqGoO3CGYi+uNr3viX3G/VBfXJ75t/eJHLr/X61Pw4npVda6q1sX9ZfYT7i9IVPWgqnZW1euBh4F3RKToZbYT83X51beeM8A03N5FG/zfq4jt9doHPKyqOaLdQlV1eWzL+c5PPInbI7za956cJJHvie/nisId+vGbqu5V1bCLt7hm83N6Yj+7qOp2VW0B5AYGAZ+IO58W0z5gd4zXOZuq3u1H3tjsAwbGWF8WVZ3s2yv8AOgG5PK9R5ti/ExpomtvKxbJSEQq+v6yCsEd1zyDO4xyCd+hnOnAYNwx7PnRns4G/KaqZ0TkNtyehz+mAT1EJL+IXA08He25jLhDHEeAKN8JtzujPX8IyHXxBGkc675HRGr7fr4ncLvqy+OY319zgBtFpKWIZBCRZrhCO1tE8ojIfb4vjL+BU/heTxFpIiIXL/M9jvuFjfW19uknIllE5BagAxD9hPjHuOPMDfG/WBzxba9wtGmjgGd820BEsotIk8usIxvuy/0IkEFEngei74keAgqJSFy/x5OBXiISLiJhuMNeUzUwl/IeAvKLSMZ45kvsZxcRaS0i1/r2Wk/4Jsf2nv4I/CEiT4lIqLgLO0qKSEV/txXDB8Ajvt9dEZGs4k7UZ8Od51Lce4SIdMDtWaQ5ViyS11W4D95x3CGBY7hiEJdJQB1geoxf8K5AfxH5A3cSb5qf2/8AmIs7DrwGd8ITAFX9A+jhW9dx3C/xrGjP/4T78tnl292+Ptp6UdVtuL++RwBHcecUGqjqWT+zxUpVjwH34orPMdxf2veq6lHc57c37i/o33DHvh/1LVoR+MF32GQW8Ljv2HVcluBOBi8A3lDVfxpSqup3uC+lNaoa85BYXLlPAwOB73yvV2VV/Qz3F/EU31U4m4DLXQUzF/ga+Bn3eTnDfw9pTPf9f0xE1sSy/Ie44rYU1+bjDO5EayAsxF26elBEjl5mvsR+dgHqAZt97+kw3AUfl5xv8J0HuBd3Tmw37vM4GncIL8FUdRXuZPTbuN+NHfiuoFLVLcCbuJPvh3An779LzHZSOlFNE3tIxgSUiCwEJqmqpy20jfGKFQtj4uE7fDEfd5z9D6/zGOMFOwxlzGWIyEfAN0BPKxQmPbM9C2OMMfGyPQtjjDHxSrWdWsV0zTXXaKFChRK9/J9//knWrLFdsu0ty5UwlithLFfCpMVcq1evPqqq18Y7o6aAPkeS4la+fHm9EosWLbqi5QPFciWM5UoYy5UwaTEXsEqtbyhjjDFJwYqFMcaYeFmxMMYYE680c4LbGGMS4ty5c+zfv58zZ874vUz27NnZunVrAFMljj+5MmfOTP78+QkJuWTcLr9YsTDGpEv79+8nW7ZsFCpUCNdJcvz++OMPsmXLFuBkCRdfLlXl2LFj7N+/n/Dw8ERtww5DGWPSpTNnzpArVy6/C0VqJiLkypUrQXtRMVmxAFbsW8HEvRNZsW+F11GMMckoPRSKi670Z033h6GW713O7R/dzvkL55m4byIL2i4gokCE17GMMSZFSfd7FjO2ziDqQhSK8lfUX4zfkNjhlY0xxn/Hjh2jbNmylC1blrx585IvX75/Hp89698wMB06dGDbtm0BTuqk+2LRuERjQjOEIr5REN9d9S53jr+TpXuWepzMGJOW5cqVi3Xr1rFu3ToeeeQRevXq9c/jjBndgIOqyoULcQ/wOHbsWG666aZkyZvui0VEgQgWtF1Ap/BOfNPmG16v8zrrD63n9nG3c/u425m/cz5qPfMaY4Affv2BV799NaDnN3fs2EGJEiVo1aoVt9xyCwcOHKBLly5UqFCBW265hf79+/8zb7Vq1Vi3bh1RUVHkyJGDp59+mjJlyhAREcHhw4eTNFe6P2cBrmD8XfBv7ih8B7UL16bbbd0YvWY0g74bxJ0T7qRSvko8V+M57il2T7o6IWZMetHz656sO7jusvOc/PskGw5t4IJeIEiCKJ2nNNkzxT1Sa9m8ZRlab2ii8vz00098/PHHVKhQAYDXXnuNnDlzEhUVRc2aNWncuDElSpT4b76TJ7n99tt57bXX6N27Nx9++CFPP/10orYfm3S/ZxGb0JBQulfqzs4eO3nv3vc49OchGkxuwK3v38qMLTO4oHHvFhpj0qaTZ07+87t/QS9w8szJgG2rSJEi/xQKgMmTJ3Prrbdy6623snXrVrZs2XLJMqGhodSv74Z0L1++PJGRkUmayfYsLiNThkx0Kd+FDmU7MHHjRF759hUaT29MiWtL8Gz1Z2l2SzOCg4K9jmmMuUL+7AGs2LeC2h/X5uz5s2QMzsjERhMDduVk9O7Gt2/fzrBhw/jxxx/JkSMHrVu3jrW9xMXzHADBwcFERUUlaaaA7lmISD0R2SYiO0Tkkv0hEakhImtEJEpEGsd47nUR2SwiW0VkuHh4/CckOIT2Zduz9bGtTGo0CUFo9Wkrio8szti1Yzl3/pxX0YwxySSiQASzGs/i5ZovJ+sl9r///jvZsmXjqquu4sCBA8ydOzdZthtTwIqFiAQDI4H6QAmghYiUiDHbXqA9MCnGslWAqkBpoCRQEbg9UFn9FRwUTItSLdjw6AZmNJ1BWMYwOs7qSLERxRi1ahR/R/3tdURjTABVur4Sz1R/JlnbYt16662UKFGCm2++mbZt21K1atVk23Z0gTwMdRuwQ1V3AYjIFOA+4J+Dbaoa6Xsu5kkABTIDGQEBQoBDAcyaIEESRKPijXjg5geYs30OLy99mUe/fJSXl77Mk1WepHP5zmQJyeJ1TGNMKvHiiy/+c79o0aKsW/fvyXYRYfz42Nt/LVu2DHB9Q504ceKf6c2bN6d58+ZJmlECdVmo77BSPVV9yPe4DVBJVbvFMu84YLaqfhJt2hvAQ7hi8baqPhvLcl2ALgB58uQpP2XKlETnPXXqFGFhYYlaVlVZc2IN4/eMZ/3J9VwdcjVN8jfhvuvvI0uGKysaV5IrkCxXwliuhEmOXNmzZ6do0aIJWub8+fMEB6e885T+5tqxYwcnT/73xHzNmjVXq2qFOBb5lz/D6SXmBjQGRkd73Ab3pR/bvOOAxtEeFwW+BMJ8txVA9cttL6UMq7o0cqneOf5O5UU056Cc2n9xfz3+13HPcyU1y5UwlithkiPXli1bErzM77//HoAkV87fXLH9zKSAYVV/AQpEe5zfN80fDwDfq+opVT0FfAWkig6bqt9Qnbmt5/J9p++pWqAqzy9+nhuG3sBzC5/j6OmjXsczxphECWSxWAkUE5FwEckINAdm+bnsXuB2EckgIiG4k9spb8SRy6iUvxKzWsxi7cNrubPInbzy7SsUGlqIvvP6cvDUQa/jGWNMggSsWKhqFNANmIv7op+mqptFpL+INAQQkYoish9oArwnIpt9i38C7AQ2AuuB9ar6RaCyBlLZvGWZ3mQ6m7pu4v6b7+et798ifFg4Pb7qwf7f93sdzxhj/BLQdhaqOkdVb1TVIqo60DfteVWd5bu/UlXzq2pWVc2lqrf4pp9X1YdVtbiqllDV3oHMmRxKXFuCCY0m8NNjP9GyZEveXfUuhYcV5uEvHmb38d1exzPGmMuy7j6SWbFcxRhz3xi2d9/OQ7c+xLj14yg2ohjtP2/Pz8d+9jqeMSaZJEUX5QAffvghhw4FvmWBFQuA5cspOHEirEi+kfIK5SjEO/e8w64eu+h+W3embZ5G8ZHFaTGjBZsOb0q2HMYYb/jTRbk/rFgkl/nzoXp1wseMgdq1k7VgAOS7Kh9D6g0hsmckfav0ZfbPsyn1bikaTW3EmgNrkjWLMebygn74AV59NeDfEx999BG33XYbZcuWpWvXrly4cIGoqCjatGlDqVKlKFmyJMOHD2fq1KmsW7eO9u3bJ3iPJKGsI8FFi+DCBTf00d9/w+LFEJH8V+nmzpqb1+q8Rt8qfRn+w3CG/TCMz376jEo5KzG06FAq56+c7JmMSTd69oR1l++inJMnybJhA1y4AEFBULo0ZI+7i3LKloWhCe+ifNOmTXz22WcsX76cDBky0KVLF6ZMmUKRIkU4evQoGzduBODEiRPkyJGDESNGMGjQoIB3A2J7Fg0aQGgoCu5DcOyYp3FyZcnFSzVfYk/PPQysNZCtv28lYkwEdT6uw5LIJTYQkzFeOXnSfUeA+/9kYLoo/+abb1i5ciUVKlSgbNmyLFmyhJ07d1K0aFG2bdtGjx49mDt3LtkvV6gCwPYsIiJgwQIi33+f8O3b4c03ISwMXngBPBzoKHvm7Pyv+v8od7YcW0K3MHj5YO746A6qFaxGvxr9qFu4rg3EZExS8WcPYMUKd6j67FnImBEmTgzIUQhVpWPHjrz88suXPLdhwwa++uorRo4cyYwZM3j//feTfPtxsT0LgIgI9rRr5w5BdegAL70EXbvC+fNeJyM0OJQnqjzB7sd3M6L+CCJPRHLXhLuoPKYyX2z7wvY0jEkuERGcnjULXn4ZFiwI2OHqOnXqMG3aNI4edT0+HDt2jL1793LkyBFUlSZNmtC/f3/WrHHnNLNly8apU6cCkiU627OILkMGGDMGcueGQYPg6FGYMAEyZfI6GaEhoXS7rRudb+3Mx+s/5tVlr9JwSkPK5CnDs9Wf5cESDxIkVvuNCaQLlSpBnToB3UapUqV44YUXqFOnDhcuXCAkJIRRo0YRHBxMp06dUFVEhEGDBgHQoUMHunXrRtasWfnxxx8TdCVVQlixiEkEXnsN8uSB3r3dOYzPP4errvI6GeBG7+tcvjPty7Zn8qbJDPx2IE0/aUrxa4q70ftKNiNDkL2txqQm0bsoB2jZsiUtW7a8ZL61a9deMq1p06bUr1+fbNmyBSoeYIeh4tarF4wfD99+C3fcAclwHXNChASH0LZMW7Z03cKUB6cQHBRM689aU3xkcT5c+yFnzwfuEjpjTPpjxeJyWreGWbNg2zaoWhV27fI60SWCg4JpVrIZ6x9Zz2fNPuOqTFfRaVYnio0oxrsr3+VM1KVj9RpjTEJZsYhP/fruZNbx465grF/vdaJYBUkQ9998P6s6r2JOyznky5aPrnO6UmR4EYZ+P5TT5057HdGYFCc9XSBypT+rFQt/VK4My5ZBSAjUqAFLlnidKE4iQv1i9fmu43csaLuAG3PdSK+5vSg0tBCvLXuNP/7+w+uIxqQImTNn5tixY+miYKgqx44dI3PmzIleh50J9Vfx4vDdd3DXXe42aRI0auR1qjiJCLXCa1ErvBbL9i5jwNIBPLPgGV7/7nV6Vu5J99u6c3Xo1V7HNMYz+fPnZ//+/Rw5csTvZc6cOXNFX7iB4k+uzJkzkz9//kRvw4pFQhQo4E5433svNGkCo0ZB585ep4pXtYLV+Lr116z8ZSUDvh3AC4tf4M0Vb9KtYjd6Vu7JtVmv9TqiMckuJCSE8PDwBC2zePFiypUrF6BEiZccuewwVELlygXffOP2Lrp0gQEDIJXsxlbMV5GZzWey7uF13FXkLl5d9iqFhhWiz7w+HPjjgNfxjDEpmBWLxMiaFWbOhDZtoF8/6NHj3z5jUoEyecswrck0NnfdTKPijRjy/RDCh4XTfU539p3c53U8Y0wKZMUisUJCYNw4eOIJePttaNXK9RmTihS/tjjjHxjPtm7baF26NaNWj6LI8CJ0ntWZXcdT3mXCxhjvWLG4EkFB8MYb8PrrMGWKO5fxR+q72qhozqKMbjianT120vnWzozfMJ4bR9xIu8/b8dPRn7yOZ4xJAaxYJIW+fWHsWFi4EGrVggRcXZGSFMxekJH3jGTX47voUakH0zdPp8TIEjT/pDkbD230Op4xxkNWLJJK+/bw2WewaRNUqwaRkV4nSrTrs13PW3e9RWTPSJ6q+hRfbv+S0qNKc/+U+1n962pW7FvBxL0TWbEveUcVNMZ4x4pFUmrQwF0pdfiwa+29MXX/NZ47a25erfMqe3ru4YXbX2DJniVU+KAC1cZWY8zuMdT+uLYVDGPSCSsWSa1qVdcWA1xr72XLvM2TBHKG5uTFO15kT8893Fn4Ti7oBRTlr6i/GPbDMM6dP+d1RGNMgFmxCISSJWH5ctfNed26rjPCNOCqTFfx4h0vEpohFPH9m7p5KkWGF+GN5W9w8kxghpk0xnjPikWg3HCD26soVcp1CzJ2rNeJkkREgQgWtF1Ap/BOfNvhW75o8QVFchah7/y+5B+Sn15f9yLyRKTXMY0xScyKRSBdc427Qqp2bejY0Y2+l0pae19ORIEIWhVsRdWCVbn3xntZ1G4Rq7us5r6b7uPtlW9TZHgRmk5vyvf7v/c6qjEmiVixCLSwMPjiC2jRAp5+2jXiS0Wtvf1163W3MqHRBHY/vps+EX2Yt3MeEWMiqPphVWZsmcH5C96PZ26MSTwrFskhY0Y3lnePHjBkCLRrB+fS5knh/FflZ1DdQezvvZ9h9YZx4I8DNJ7emGIjijH8h+GcOhv4geWNMUnPikVyCQqCoUNh4EBXOBo2hD//9DpVwIRlDKNHpR5s776dT5p8Qt6wvDz+9eMUGFKAp795mv2/7/c6ojEmAaxYJCcR+N//4IMPYN48dy7j2DGvUwVUcFAwD5Z4kOWdlrO843LqFq7L4OWDCR8WTpvP2rD2wKUD0BtjUh4rFl546CGYMQPWrXOtvffu9TpRsogoEMG0JtPY0X0H3Sp24/OfPufW92+l5kc1mf3zbC5o2juXY0xaYcXCK/ff7/YuDhxwDfm2bPE6UbIJvzqcIfWGsK/XPl6v8zo7fttBg8kNKDGyBO+teo+/zv3ldURjTAxWLLxUowYsXQpRUW4PY0X66jojR+Yc9K3al109djGp0STCMobxyJePUHBoQZ5f9DyHTh3yOqIxxiegxUJE6onINhHZISJPx/J8DRFZIyJRItI42vSaIrIu2u2MiNwfyKyeKV3atfbOlcudw5gzx+tEyS4kOIQWpVqwsvNKlrRfQpUCVRiwdAAFhxak08xObD682euIxqR7ASsWIhIMjATqAyWAFiJSIsZse4H2wKToE1V1kaqWVdWyQC3gNDAvUFk9Fx4O330HxYu7q6TGj/c6kSdEhBo31GBm85n81O0nOpXrxORNkyn5bknqTajH/J3z0TTQqNGY1CiQexa3ATtUdZeqngWmAPdFn0FVI1V1A3C5M5uNga9U9XTgoqYAuXPDokVw++3Qti28+abXiTx1Y64beeeed9jbay8Dag5g3cF13DnhTsqMKsO4deP4O+pvryMak65IoP5S8x1WqqeqD/ketwEqqWq3WOYdB8xW1U9ieW4h8Jaqzo7luS5AF4A8efKUnzJlSqLznjp1irCwsEQvn1Tk7FmKv/IKuZcsYW+zZmxo1YqwbNm8jnWJ5H69zl44y8LDC5m+fzq7/txFzow5eeD6B2hwfQOyh2T3LJe/LFfCWK6EuZJcNWvWXK2qFeKdUVUDcsPtEYyO9rgN8HYc844DGscy/TrgCBAS3/bKly+vV2LRokVXtHySiopS7dpVFfTXevVUz53zOtElvHq9Lly4oPN2zNO7xt+lvIiGDgjVR2c/qtuObvM0V3wsV8JYroS5klzAKvXjOz2Qh6F+AQpEe5zfNy0hmgKfqWra7BsjLsHB8Pbb8OKLXPf11/DAA3A6bR+F85eIULdIXb5u/TUbH91Ii5ItGLN2DDe/fTP3TbmPdSfW2XkNYwIgkMViJVBMRMJFJCPQHEjowA4tgMlJniw1EIEXXuDnXr3gyy/hzjvht9+8TpWilMxdkjH3jWFvz708V+M5vtv7Hb3W96LiBxWZtHGSDcpkTBIKWLFQ1SigGzAX2ApMU9XNItJfRBoCiEhFEdkPNAHeE5F/rpEUkUK4PZMlgcqYGvzasCFMmwYrV7p2GfutT6WY8oTloX/N/uzrtY9exXpx6uwpWn3aisLDCzP4u8GcOHPC64jGpHoBbWehqnNU9UZVLaKqA33TnlfVWb77K1U1v6pmVdVcqnpLtGUjVTWfqvUBQePG8NVXrluQqlXhp5+8TpQihYaE0vD6hmx5bAtftPiCYjmL8eQ3T1JgSAF6ft2T3cd3ex3RmFTLWnCnFrVqwZIlcOaMa+39449eJ0qxgiSIe2+8l4XtFv4zKNPIlSMpOqKoDcpkTCJZsUhNypVzjfeyZ3fFY17abaeYVKIPytS3Sl/m75pvgzIZkwhWLFKbokVdwShaFO65Byanz/P/CZX/qvy8Vuc19vXax/B6w21QJmMSyIpFapQ3rzskVbUqtGwJw4d7nSjVCMsYRvdK3f8ZlOm6bNfx+NePk/+t/Dw1/ykblMmYOFixSK2yZ4eLbTAefxyefRasfYHfLg7K9F3H71jRaQV3FrmTN1a8QfiwcFp/2po1B9Z4HdGYFMWKRWqWOTNMnw6dO8Mrr0CXLq67c5MglfNXZlqTaezssZNuFbsxc9tMyr9f3gZlMiYaKxapXXAwvPcePPccjB4NTZrAXzZ4UGIUylHon0GZBtcdfMmgTKfPWSt6k35ZsUgLRODll925i5kz4a674IQ1REsoiu4mAAAgAElEQVSsHJlz0KdKn0sHZRpigzKZ9MuKRVrSvTtMmgTff++6Oj9wwOtEqVrMQZmqFqz6n0GZNh3e5HVEY5KNFYu0pnlz15fUzp1QpQps3+51olQvrkGZSr1binoT6jFv5zzrvNCkeVYs0qK6dWHxYjh1yl1eu3q114nSjIuDMu3rtY8BNQew/tB67ppwF6VHlWbs2rE2KJNJs6xYpFUVKrjGe1mywB13wIIFXidKU3JlycWzNZ4l8vFIxt43FkHoOKsjNwy9gQFLB3Ds9DGvIxqTpKxYpGU33gjLl0OhQnD33e4yW5OkMmXIRPuy7Vn/yHrmtZ5HuevK0W9RPwoMKcCjsx/l52M/s2LfCibunciKfSu8jmtMomXwOoAJsOuvh6VLoWFDaNYMjhyBrl29TpXmXByUqW6Rumw+vJkh3w/hw3UfMmr1KIIkCFVl4r6JLGi7gIgCEV7HNSbBbM8iPbj6atfp4L33wmOPwYsvWmvvALol9y2MbjiavT33UqtQLS7oBRTlr6i/6D23Nyv2rbAT4ibVsWKRXoSGwqefQocO8NJLbu/ivPW4Gkh5wvIwoNYAQjOEIgjBEsyag2uo8mEVCg8vzLMLnmXz4c3xr8iYFMCKRXqSIQOMGQNPPQWjRrnDUmfOeJ0qTYsoEMGCtgvoFN6Jbzt8y5G+R/jo/o+4KddNvPbda5R8tyRlR5Xl9e9eZ+/JvV7HNSZOds4ivRGB116DPHmgd284dsy1+r7qKq+TpVkRBSL4u+Df/5yraFumLW3LtOXQqUNM2zyNSZsm8dQ3T/HUN09RvWB1WpZqSZMSTciVJZfHyY35l+1ZpFe9esH48bBsmbu09pB1YZHc8oTloXul7qzotIKdPXYyoOYAjp4+yqNfPkreN/PSYHIDJm+czJ9n//Q6qjFWLNK11q1h1izYts013tu1y+tE6VbhqwvzbI1n2dx1M2sfXkuvyr1Yd3AdLT9tSe43ctPq01bM2T6Hc+fPeR3VpFNWLNK7+vVh4UI4ftx1D7JundeJ0jURoWzesrxe93X29NzDkvZLaF2qNV9t/4p7Jt3DdW9eR9cvu7Js7zLrOt0kKysWBipVcoejMmZ0HRAuXux1IgMESRA1bqjBew3e42Cfg8xqPou6Reoybt04qo+tTuFhhXnmm2fYeGij11FNOmDFwjjFi7vuQfLlg3r13GW2JsXIGJyRBjc1YPKDkznc9zDjHxhPiWtLMHj5YEqPKk2pd0vx6revEnki0uuoJo2yYmH+VaAAfPstlCvnBlH64AOvE5lYhGUMo3Xp1sxpNYcDTxxg5N0jyZ4pO/9b+D/Ch4VT7cNqvLPyHY78ecTrqCYNsWJh/itXLvjmGzeAUpcuMGCAtfZOwa7Nei1dK3ZlWcdl7Oqxi1dqvcKJMyd4bM5jXPfmddw98W4mbpjIqbOnvI5qUjkrFuZSWbO6thdt2kC/fm5QpQt2MjWlC786nGeqP8OmrpvY8MgG+lbpy+Yjm2n9WWtyD85Nixkt+GLbF5w9f9brqCYVskZ5JnYhITBuHOTODW++CUePwkcfQaZMXiczfiiVpxSv5nmVgbUHsnzfciZtnMS0zdOYsmkKOUNz0qREE1qWamlXVBm/WbEwcQsKgjfecK29n3zStfb+9FPIls3rZMZPQRJEtYLVqFawGsPqDWPeznlM2jSJ8RvG897q97g207W0j2pPy1ItKZOnDCLidWSTQtlhKBO/vn1h7FhYtAhq1YI5cyg4cSKssPEZUpOQ4BDuufEeJjaayOE+h5nUaBJFsxZlyPdDKPdeOUq+W5KBSwey67g1zjSXsmJh/NO+PXz+OWzYAPfeS/iYMVC7thWMVCprxqy0KNWCV0q9wsEnDvLuPe+SKzQXzy16jiLDi1BlTBXe/vFtDv952OuoJoWwYmH8d++9rotzVUTV9Vg7bZrXqcwVypUlF49UeISlHZayp+ceBtUZxOlzp+n+VXeuf/N66k2ox8frP+aPv//wOqrxkBULkzDt2kHmzKiIu6R26FDX1fmmTV4nM0mgYPaCPFn1SdY9so5Nj27iqapPse3YNtp93o7cb+Sm2SfNmPnTTP6O+tvrqCaZBbRYiEg9EdkmIjtE5OlYnq8hImtEJEpEGsd4rqCIzBORrSKyRUQKBTKr8VNEBCxcyO5OnWDOHHjmGfd/qVLQtClstK4n0opbct/CwNoD2dVjF8s7Luehcg+xaPci7p96P3nfzEvnWZ1ZHLnYrqhKJwJWLEQkGBgJ1AdKAC1EpESM2fYC7YFJsaziY2CwqhYHbgPs4GlKERHB3latXCeEr7wCkZHw7LPw9ddQujQ0buzObZg0QUSIKBDBiLtH8EvvX/iq1Vc0uLEBUzZPoeZHNSk4pCB95vVhzYE1NlxsGuZXsRCRIiKSyXf/DhHpISI54lnsNmCHqu5S1bPAFOC+6DOoaqSqbgD+86eJr6hkUNX5vvlOqepp/34kk+xy5XItvSMj4bnnYP58KFMGHnwQ1q/3Op1JQiHBIdQrWo+PH/iYQ30OMeXBKZS/vjzDfxhO+ffLU3xkcV5e8jI7ftvhdVSTxPzds5gBnBeRosD7QAFi3xuILh+wL9rj/b5p/rgROCEin4rIWhEZ7NtTMSlZzpzw8suuaDz/vOs2pGxZaNTIuj5Pg7KEZKFZyWbMbD6Tg30O8v6973Ndtut4YfELFBtRjEqjKzHs+2EcPHXQ66gmCYg/u40iskZVbxWRvsAZVR0hImtVtdxllmkM1FPVh3yP2wCVVLVbLPOOA2ar6ifRlh0DlMMdqpoKzFHVMTGW6wJ0AciTJ0/5KVOm+PMzx+rUqVOEhYUlevlASc25MvzxB/lnzCD/J5+Q4c8/OVq1KpHt2nGqWDFPc3khPeU6fOYwi44sYsHhBWw/tZ0ggrj16lupnbs21a6pRliG+LeXnl6vpHAluWrWrLlaVSvEO6OqxnsDfgBaAJuAcN+0TfEsEwHMjfb4GeCZOOYdBzSO9rgysCTa4zbAyMttr3z58nolFi1adEXLB0qayHX8uOqLL6rmyKEKqg0bqq5e7X2uZJRec205vEX7LeynRYYVUV5EM72cSR+c+qDO2DJD/zr3l2e5Eist5gJWqR91wN/DUB18X/4DVXW3iIQD4+NZZiVQTETCRSQj0ByY5ef2VgI5RORa3+NawBY/lzUpTY4c8MIL7vBU//6wdCmULw8NG8Lq1V6nMwFU/Nri9K/Zn+3dt/N9p+95uPzDfLv3Wx6c9iB538hLp5mdWLBrAecvnPc6qomHX8VCVbeoag9VnSwiVwPZVHVQPMtEAd2AucBWYJqqbhaR/iLSEEBEKorIfqAJ8J6IbPYtex7oAywQkY2AADa4QmqXPbvrxTYy0p3bWLYMKlRwjf1WrvQ6nQkgEaFS/koMqz+MX3r/wrzW83ig+ANM3zKdOuPrUGBIAXrP7c2qX1exfO9yJu6dyIp91jtASuJXR4Iishho6Jt/NXBYRL5T1d6XW05V5wBzYkx7Ptr9lUD+OJadD5T2J59JZbJnd1dN9egBI0bAW2/BbbfB3Xe7PZDbbvM6oQmgDEEZqFukLnWL1OWdu9/hy+1fMmnjJEauHMmQ74cgCIoyfu94vmn7DdUKVvM6ssH/q6Gyq+rvQCPgY1WtBNQJXCyTLlx1lWufERnp2mv88IMbD7x+ffj+e6/TmWQQGhJK4xKN+bTZpxzqc4hGxRuhuItu/j7/N3dNuIt2n7dj+ubpnDxz0uO06Zu/xSKDiFwHNAVmBzCPSY+yZXMtwXfvhldfdYekIiLcWODWUWG6kSNzDvpE9CE0QyhBBJExOCPVC1Zn9s+zafpJU64ZfA21PqrFWyve4udjP3sdN93xt1j0x5172KmqK0WkMLA9cLFMupQtGzz9tNvTGDTInfyuUsUN8bp8udfpTDKIKBDBgrYL6BjekcXtFvN166853Ocwyzoso09EH46cPsIT857gprdv4sYRN9J7bm8W7l5oo/8lA39PcE9X1dKq+qjv8S5VfTCw0Uy6FRbmBlvavRtefx3WroWqVaFuXXdS3KRpEQUiaFWwFREFIgAIDgqmasGqvFrnVTY+upHIxyMZefdIiuYsyjsr36H2x7W5dvC1NJnehI/WfWTdqgeIv9195BeRz0TksO82Q0RiPTFtTJIJC3MDL+3eDYMHu/6mqleHOnXg22+9Tmc8ckOOG+hasStzWs3h2JPHmNl8Js1uacbyfctpP7M9ed/IS8SYCAYuHcj6g+utv6ok4u9hqLG4NhLX+25f+KYZE3hZs0KfPq5ovPmm69m2Rg03+NLSpV6nMx7KmjErDW9qyPsN3md/r/2s6bKGl+54iQt6gecWPUfZ98pScGhBHpn9CLN/ns3pc9bFXGL5WyyuVdWxqhrlu40Dro1vIWOSVJYs0Lu3KxpvvQWbN8Ptt0PNmrB4sdfpjMdEhHLXlaPf7f344aEfOPDEAT5s+CG35buNiRsn0mByA3K9not7J93LqFWj2HdyX/wrNf/wt1gcE5HWIhLsu7UGjgUymDFxypIFevWCXbtgyBD46SdXMO64gxxr17pBmUy6lzcsLx3KdWBG0xkc7XuU+W3m83D5h9l6dCuPfvkoBYcWpMyoMjy74FlW7Fthrcjj4W+x6Ii7bPYgcABojBuHwhjvZMkCPXu6ojFsGPz8M2V794Y77oCFC61omH9kypCJOoXrMLTeUHZ038HWx7YyuO5grs58NYO+G0SVD6uQ9828tPu8HdM2T7M2HbHw92qoParaUFWvVdXcqno/YFdDmZQhNNS1Bt+1i+3du8OOHe58Ro0asGCBFQ3zHyLCzdfcTJ8qfVjcfjFH+h5hyoNTqFe0HrN/nk2zT5pZm45YXMlIeZft6sOYZJc5M780agQ7d7puRHbvdldOVa/uBmSyomFicXXo1TQr2YzxD4yPt03H6uOr022bjispFpJkKYxJSpkzQ7dubg9j5EjYswfuvNO11Zg3z4qGiVN8bTr6bOjDNa9fky7bdFxJsbDfOJOyZc4MXbu6ovHOO7B/v2sNXqUKzJ1rRcPEK2abjgG3DKB5yeaXtOkYsHQA6w6uS9NtOi5bLETkDxH5PZbbH7j2FsakfJkywaOPwvbtMGoU/PKL63cqIgK++sqKhvFL1oxZqXpN1VjbdPRb1I9y75VL0206LlssVDWbql4Vyy2bqvrVvbkxKUamTPDww25P47334MAB1y165cowZ44VDeO3mG06Dj5xkLH3jaVSvkqXtOl4d+W77D251+vIV+xKDkMZkzplzAhdurg9jfffh8OH4Z573Dgas2db0TAJlicsD+3LtueTpp9c0qaj65yu3DD0hlTfpsOKhUm/MmaEzp3h559h9Gg4ehQaNICKFeGLL6xomESJrU3HG3XfIGdozv+06Wj7WdtU1abDioUxISHQqZMrGmPGwPHjbnzwChVg1iwrGibRLrbpeKLKEyxqt4ijTx79p03Hl9u/TFVtOqxYGHNRSAh07Oi6D/nwQzh5Eu67D8qXh88/t6JhrliOzDkuadPRt0pfjp4++k+bjmIjitHr614s2LUgRbXpsGJhTEwhIdChgysa48bB77/DAw9AuXLw2Wdw4YLXCU0acLFNxyu1X2HDoxv+adNRLGcx3l31LnXG10lRbTqsWBgTlwwZoF07VzQ++ghOn4ZGjVzR+PRTKxomScU2TkeLki3+06aj8ujKnrXpsMtfjYlPhgzQti20bAlTpsDLL8ODD0KpUvD8866ABNnfXSbpXByno+FNDVFV1h1cx+yfZzN7+2z6LepHv0X9yJctH/feeC9FcxZlc+RmMu3L9M/ogoFgn3Bj/JUhA7RuDVu2wIQJcPYsNGkCZcrA9Om2p2ECIq42HZXzV+bj9R/Td35fxu0ZR+2Pa7Ni34qA5bBiYUxCBQdDq1Zu8KWJEyEqCpo2hdKlYepUOJ/6rqE3qUf0Nh3PVHuGIN/X+NnzZ1kcuThg27ViYUxiBQe7Q1ObNsHkyW7PonlzVzSmTLGiYQKuTuE6ZMqQiSCCyBickTsK3RGwbVmxMOZKBQe7IrFxoysSAC1auHMakyfDsmUUnDgRVgTuEIFJnyIKRLCg7QI6hndkQdsFds7CmFQhOBiaNXNFY+pUd9K7ZUuoUYPwMWPcgExWMEwSiygQQauCrQJaKMCKhTFJLyjIncPYsMEVC1VEFf76y42vYY37TCpkxcKYQAkKcoMwhYaiIiDiTohXrGhdo5tUx4qFMYEUEQELFrC7UydYssS1CD92zHWNXq0aLFrkdUJj/GLFwphAi4hgb6tWbizwdu1g2zY3CNOePVCrljuXsXy51ymNuSwrFsYkt4wZ/x2EaehQd+lt1apuTI01a7xOZ0ysrFgY45XMmeHxx2HXLnjtNXelVPnyriuRTZu8TmfMfwS0WIhIPRHZJiI7ROTpWJ6vISJrRCRKRBrHeO68iKzz3WYFMqcxnsqaFZ56CnbvhhdfhPnzXcO+Vq3cGBvGpAABKxYiEgyMBOoDJYAWIlIixmx7gfbApFhW8ZeqlvXdGgYqpzEpRvbs8MILrmg89ZQbQ6NECTcwU2Sk1+lMOhfIPYvbgB2quktVzwJTgPuiz6Cqkaq6AbAe2Iy5KFcuePVVd3iqe3d3ue2NN8Jjj8Evv3idzqRTEqg+0X2Hleqp6kO+x22ASqraLZZ5xwGzVfWTaNOigHVAFPCaqn4ey3JdgC4AefLkKT/lYlcLiXDq1CnCwsISvXygWK6ESYu5Mh05QsEJE7juyy/R4GB+ve8+9rZowbmrr/Y0VyBZroS5klw1a9ZcraoV4p1RVQNyAxoDo6M9bgO8Hce844DGMabl8/1fGIgEilxue+XLl9crsWjRoitaPlAsV8Kk6Vy7dqm2b68aFKSaNavq//6neuyY97kCwHIlzJXkAlapH9/pgTwM9QtQINrj/L5pflHVX3z/7wIWA+WSMpwxqU54OIwd68bTaNAAXnnFTXv5ZTf0qzEBFMhisRIoJiLhIpIRaA74dVWTiFwtIpl8968BqgJbApbUmNTkpptcb7br17tGfc8/D4ULw+DBbuhXYwIgYMVCVaOAbsBcYCswTVU3i0h/EWkIICIVRWQ/0AR4T0Q2+xYvDqwSkfXAItw5CysWxkRXujR89hmsXOn6m3rySVc0RoyAv//2Op1JYwLazkJV56jqjapaRFUH+qY9r6qzfPdXqmp+Vc2qqrlU9Rbf9OWqWkpVy/j+HxPInMakahUquI4Jv/0Wbr4ZevSAYsXg/ffh3Dmv05k0wlpwG5NWXOyY8JtvIF8+16XIzTfD+PE2ap+5YlYsjElLRP7tmPDLL11Dv7ZtoWRJmDbNDf1qTCJYsTAmLRJx3aCvWgUzZrixNZo1g3LlYNYsG0vDJJgVC2PSsqAgaNTIjdo3caK7Wuq++6BSJZg3z4qG8ZsVC2PSg+BgN8Tr1q0wZgwcOgR33UXZnj1h6VKv05lUwIqFMelJhgzQsaPrzXbkSEJ/+QVuvx3uvBN++MHrdCYFs2JhTHqUKRN07coPEyfCm2/C2rVQuTI0bAjr1nmdzqRAViyMSccuZMoEvXu7Hm4HDnRtNcqVg6ZN3SErY3ysWBhjIFs2+N//3Fga/fq5Rn4lS7rLbnfu9DqdSQGsWBhj/pUjB/Tv74rGE0/AJ5+4vqi6dIG9e71OZzxkxcIYc6lrroHXX3d7FV27wkcfuS5EevSAAwe8Tmc8YMXCGBO3666D4cNh+3Zo1w7eeQeKFHGdFh496nU6k4ysWBhj4lewoOuY8KefoHFjeOMNN5bG88/DiRNepzPJwIqFMcZ/RYvCxx/Dpk1Qv74beCk83A3EdOqU1+lMAFmxMMYkXIkSrmPCtWuhenV49llXNN56C/76y+t0JgCsWBhjEq9sWdcx4fffu/YZTzzhzmm8844NwJTGWLEwxly5ix0TLl7sDlU99pi75PbDDyEqyut0JglYsTDGJJ3bb4clS2DuXMidGzp1coesJk2yAZhSOSsWxpikJfJvx4QzZ0JoKLRqBWXKwKefWrfoqZQVC2NMYIi4jgnXroWpU92exYMPujHD58yxopHKWLEwxgRWUJDrmHDTJtcS/PhxuOceqFoVFi70Op3xkxULY0zyCA52HRNu2wbvvQf79rnxwmvVgu++8zqdiYcVC2NM8goJcR0Tbt8Ow4bBli1QrZobM3z1alixgoITJ8KKFV4nNdFYsTDGeCNzZtcx4c6dMGiQOyFeoQJUq0b4mDFur8MKRophxcIY462sWV3HhLt3Q506cOECoupagr/7Lly44HVCgxULY0xKcdVVbiyN0FBUxF1NNX68a9z39tvW95THrFgYY1KOiAhYsIDdnTq5xn1Tp7qxNbp3hwIF3B6IDcLkCSsWxpiUJSKCva1auQ4KmzZ15y1WrHAN/d56CwoXhmbNXH9UJtlYsTDGpHyVK7u9jF27oHdv151IRIS7TZtm/U8lAysWxpjUo2BBN9zr/v0wYoQbra9ZM7e3MXiwDcQUQFYsjDGpT1gYdOvmGvjNmuV6un3yScif353f2L7d64RpjhULY0zqFRQEDRq4bkPWrnVDvr7/vruCqmFDWLTI+qBKIlYsjDFpQ9myMG4c7NkD/fq5E+C1arlBmcaNs8GYrlBAi4WI1BORbSKyQ0SejuX5GiKyRkSiRKRxLM9fJSL7ReTtQOY0xqQhefPCSy+5S2xHj3Ynvzt0gBtucO04Dh/2OmGqFLBiISLBwEigPlACaCEiJWLMthdoD0yKYzUvA0sDldEYk4ZlzuwGX9q40Y3iV748vPCCO0n+0EOuF1zjt0DuWdwG7FDVXap6FpgC3Bd9BlWNVNUNwCXt+UWkPJAHmBfAjMaYtE4E6taFL7+ErVvdXsakSVCqlJs+Z451KeIH0QCd/PEdVqqnqg/5HrcBKqlqt1jmHQfMVtVPfI+DgIVAa6AOUCGO5boAXQDy5MlTfsqUKYnOe+rUKcLCwhK9fKBYroSxXAmTXnNlOHmS62fPJt/nn5Pp6FFOFyjA/saNOVi3LhdCQz3LlVhXkqtmzZqrVbVCvDOqakBuQGNgdLTHbYC345h3HNA42uNuwJO+++3jWi76rXz58nolFi1adEXLB4rlShjLlTDpPtfZs6oTJ6pWqKAKqldfrfr006r793ubK4GuJBewSv34Tg/kYahfgALRHuf3TfNHBNBNRCKBN4C2IvJa0sYzxqR7ISHQsiX8+CN8+y3UrOka/RUq5MYNX7XK64QpRiCLxUqgmIiEi0hGoDkwy58FVbWVqhZU1UJAH+BjVb3kaipjjEkSIm4AphkzYMcO1+Dviy+gYsV/p58/73VKTwWsWKhqFO5w0lxgKzBNVTeLSH8RaQggIhVFZD/QBHhPRDYHKo8xxvglPByGDHFdigwZAr/+6hr7FS1K/unT4fffvU7oiYC2s1DVOap6o6oWUdWBvmnPq+os3/2VqppfVbOqai5VvSWWdYzTWE5uG2NMQF11FfTs6boOmTED8uen6DvvuC5FevZ0nRqmI9aC2xhjLic4GBo1gm+/ZfWoUa4bkZEjoVixf6anhy5FrFgYY4yf/rjpJpgwASIj4amn3ABNNWq4cxsTJsDZs15HDBgrFsYYk1D58sErr8C+fTBqFPz5J7Rp4853vPIKHDvmdcIkZ8XCGGMSK0sWePhh2LzZtQS/5RZ49lk3BOwjj7gW42mEFQtjjLlSQUFQv77rg2rjRtdGY9w4KFHi3+mp/LyGFQtjjElKJUvCBx+4Q1T9+7txNu66y/VFNXo0/PWX1wkTxYqFMcYEwrXXunE19uxxexkZMkDnzq7X23794MABrxMmiBULY4wJpEyZoF07t4exaBFUqQIDB7rxNdq1g3XrvE7oFysWxhiTHETgjjtg5kw3dvjDD7vGfuXK/Ts9BXcpYsXCGGOSW7FiMGKE61Jk8GDYvRvuv9+NHT58OPzxh9cJL2HFwhhjvJIjB/TpAzt3wtSp7jzH44+7S2/79HHnO1IIKxbGGOO1DBmgaVNYscLd6tWDoUOhcGFo0gSWL/f80lsrFsYYk5JUrgxTpriOCp94AubPh6pV/51+7pwnsaxYGGNMSlSwoBuIaf9+ePtt+O03aNHC7W0MGgTHjydrHCsWxhiTkoWFwWOPuSuoZs1yJ8efftp1lf7YYzB1KgUnTnSHrwLIioUxxqQGQUHQoAEsXOjabDRtCu+/D82bEz56NNSuHdCCYcXCGGNSm7JlYexY6NsXRBBw3aMvXhywTVqxMMaY1KpBA8icmQtBQZAxo2vcFyBWLIwxJrWKiIAFC4js2BEWLHCPAyRDwNZsjDEm8CIi2Pv33xQOYKEA27MwxhjjBysWxhhj4mXFwhhjTLysWBhjjImXFQtjjDHxsmJhjDEmXqIed3ubVETkCHAlnb9fAxxNojhJyXIljOVKGMuVMGkx1w2qem18M6WZYnGlRGSVqlbwOkdMlithLFfCWK6ESc+57DCUMcaYeFmxMMYYEy8rFv963+sAcbBcCWO5EsZyJUy6zWXnLIwxxsTL9iyMMcbEy4qFMcaYeKXrYiEiBURkkYhsEZHNIvK415kARCSziPwoIut9uV7yOlN0IhIsImtFZLbXWS4SkUgR2Sgi60Rkldd5LhKRHCLyiYj8JCJbRSSw/Uj7SURu8r1WF2+/i0jPFJCrl+8zv0lEJotIZq8zAYjI475Mm71+nUTkQxE5LCKbok3LKSLzRWS77/+rk3q76bpYAFHAE6paAqgMPCYiJTzOBPA3UEtVywBlgXoiUtnjTNE9Dmz1OkQsaqpq2RR2Hfww4GtVvRkoQwp53VR1m++1KguUB04Dn3mZSUTyAT2ACqpaEggGmnuZCUBESgKdgdtw7+G9IlLUw0jjgHoxpj0NLFDVYsAC3+Mkla6LhaoeUNU1vvt/4H6R83mbCtQ55XsY4ruliCsRRMo6a5wAAAYkSURBVCQ/cA8w2ussKZ2IZAdqAGMAVPWsqp7wNlWsagM7VfVKekBIKhmAUBHJAGQBfvU4D0Bx4AdVPa2qUcASoJFXYVR1KfBbjMn3AR/57n8E3J/U203XxSI6ESkElAN+8DaJ4zvUsw44DMxX1RSRCxgKPAlc8DpIDArME5HVItLF6zA+4cARYKzvsN1oEcnqdahYNAcmex1CVX8B3gD2AgeAk6o6z9tUAGwCqotILhHJAtwNFPA4U0x5VPWA7/5BIE9Sb8CKBSAiYcAMoKeq/u51HoD/t3dvIVbVURzHvz8vxSRiaSaG1vjQ5SnKSipNhryAEUIkSmVpBFmEPQaK4KsS9iRFQZDgaJhpmYSmlGF28TKNM9mUgUoN5AWRSiMdx9XDfx3bczzjzjyyj2fWBzb7f/bs899rZphZe//32etvZt0+RDAKGOeXwoWS9Bhw1Mz2FB1LBRPMbCwwjTScOLHogEhnyWOBN83sHuAUV2B44HJIugaYDrxfA7HcQDpDHgPcDAySNLvYqMDMOoClwKfAJqAV6C40qIuw9DxE1Uci+nyykDSQlCiazWxd0fGU82GLz7lwjLII44Hpkg4B7wGPSFpZbEiJn5ViZkdJY+/jio0IgE6gM3NVuJaUPGrJNKDFzI4UHQgwGThoZsfMrAtYBzxUcEwAmNk7ZnavmU0ETgD7i46pzBFJIwF8fbTaB+jTyUKSSOPJHWb2etHxlEgaLul6bzcAU4Afi40KzGyBmY0ys0bS0MVnZlb4mZ+kQZIGl9rAVNLQQaHM7DDwq6Q7fNMk4IcCQ6rkSWpgCMr9Ajwg6Tr/25xEjXwgQNJNvr6FdL9iVbERXWADMMfbc4CPqn2AAdXu8CozHngGaPf7AwALzeyTAmMCGAmskNSflNDXmFnNfEy1Bo0A1qf/LwwAVpnZpmJDOm8+0OzDPQeA5wqO5zxPrFOAeUXHAmBm30paC7SQPqn4HbVTXuMDScOALuDlIj+oIGk10ATcKKkTWAwsAdZIep40VcPMqh83yn2EEELI06eHoUIIIfw3kSxCCCHkimQRQgghVySLEEIIuSJZhBBCyBXJIlz1JJ30daOkp6rc98Ky119Vs/9qkzRX0vKi4wj1J5JFqCeNwCUlCy9YdzE9koWZ1cQTxVeKP9sTwgUiWYR6soRU8K3V50XoL+k1SbsktUmaByCpSdJ2SRvwJ6olfehFCPeVChFKWkKqgNoqqdm3la5i5H1/7/NozMr0vS0zh0WzP43cg++zVGnekv2SHvbtPa4MJG2U1FQ6th9zn6StksZ5PwckTc90P9q3/yxpcaav2X68VklvlRKD97tM0l6gJubbCDXIzGKJ5apegJO+bgI2Zra/ACzy9rXAblKRuiZSUb8xmX2H+rqBVCpkWLbvCsd6AthCmnNhBKlUxUjv+3dSAch+wNekIoflMW8Dlnn7UWCrt+cCyzP7bQSavG3ANG+vJxW2G0iaY6E18/7fgGGZ7+U+Upntj4GBvt8bwLOZfmcW/XuMpbaXvl7uI9S3qcBdkmb46yHAbcAZYKeZHczs+4qkx7092vc7fpG+JwCrzaybVMTtC+B+4A/vuxPAy8g0Al9W6KNUuHKP75PnDKnqKUA7cNrMuiS1l71/i5kd9+Ov81jPkiY52uUXOg38W2yum1RMM4ReRbII9UzAfDPb3GNjGtY5VfZ6MvCgmf0laRtwOdN5ns60u+n97+x0hX3O0nN4OBtHl5mV6vOcK73fzM6V3Xspr+FjpJ/FCjNbUCGOvz3phdCruGcR6smfwODM683AS16GHkm39zL50BDghCeKO0lT7JZ0ld5fZjswy++LDCfNiLezCt/DIeBuSf0kjeb/lVqfojQncwNpxrQdpKk2Z2Sqpw6VdGsV4g19RFxZhHrSBnT7jdp3SfNfNwItfpP5GJWnm9wEvCipA/gJ+CbztbeBNkktZvZ0Zvt60s3gvaQz91fN7LAnm8uxAzhIuvHeQarAeql2koaVRgErzWw3gKRFpNkE++HVU0kVSkPIFVVnQwgh5IphqBBCCLkiWYQQQsgVySKEEEKuSBYhhBByRbIIIYSQK5JFCCGEXJEsQggh5PoHEP6barT1vBoAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-transfer-learning-v3-checkpoint.ipynb b/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-transfer-learning-v3-checkpoint.ipynb
new file mode 100644
index 0000000..6bc6e20
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-single-model/.ipynb_checkpoints/MADlib-Keras-transfer-learning-v3-checkpoint.ipynb
@@ -0,0 +1,832 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Transfer Learning Using Keras and MADlib\n",
+    "\n",
+    "This is a transfer learning example based on https://keras.io/examples/mnist_transfer_cnn/ \n",
+    "\n",
+    "To load images into tables we use the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning which uses the Python Imaging Library so supports multiple formats http://www.pythonware.com/products/pil/\n",
+    "\n",
+    "## Table of contents\n",
+    "<a href=\"#import_libraries\">1. Import libraries</a>\n",
+    "\n",
+    "<a href=\"#load_and_prepare_data\">2. Load and prepare data</a>\n",
+    "\n",
+    "<a href=\"#image_preproc\">3. Call image preprocessor</a>\n",
+    "\n",
+    "<a href=\"#define_and_load_model\">4. Define and load model architecture</a>\n",
+    "\n",
+    "<a href=\"#train\">5. Train</a>\n",
+    "\n",
+    "<a href=\"#transfer_learning\">6. Transfer learning</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"import_libraries\"></a>\n",
+    "# 1.  Import libraries\n",
+    "From https://keras.io/examples/mnist_transfer_cnn/ import libraries and define some params"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from __future__ import print_function\n",
+    "\n",
+    "import datetime\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import mnist\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
+    "from tensorflow.keras import backend as K\n",
+    "\n",
+    "now = datetime.datetime.now\n",
+    "\n",
+    "batch_size = 128\n",
+    "num_classes = 5\n",
+    "epochs = 5\n",
+    "\n",
+    "# input image dimensions\n",
+    "img_rows, img_cols = 28, 28\n",
+    "# number of convolutional filters to use\n",
+    "filters = 32\n",
+    "# size of pooling area for max pooling\n",
+    "pool_size = 2\n",
+    "# convolution kernel size\n",
+    "kernel_size = 3\n",
+    "\n",
+    "if K.image_data_format() == 'channels_first':\n",
+    "    input_shape = (1, img_rows, img_cols)\n",
+    "else:\n",
+    "    input_shape = (img_rows, img_cols, 1)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Others needed in this workbook"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_and_prepare_data\"></a>\n",
+    "# 2.  Load and prepare data\n",
+    "\n",
+    "First load MNIST data from Keras, consisting of 60,000 28x28 grayscale images of the 10 digits, along with a test set of 10,000 images."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
+      "11493376/11490434 [==============================] - 2s 0us/step\n",
+      "11501568/11490434 [==============================] - 2s 0us/step\n",
+      "(4861, 28, 28)\n",
+      "(4861, 28, 28, 1)\n"
+     ]
+    }
+   ],
+   "source": [
+    "# the data, split between train and test sets\n",
+    "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
+    "\n",
+    "# create two datasets one with digits below 5 and one with 5 and above\n",
+    "x_train_lt5 = x_train[y_train < 5]\n",
+    "y_train_lt5 = y_train[y_train < 5]\n",
+    "x_test_lt5 = x_test[y_test < 5]\n",
+    "y_test_lt5 = y_test[y_test < 5]\n",
+    "\n",
+    "x_train_gte5 = x_train[y_train >= 5]\n",
+    "y_train_gte5 = y_train[y_train >= 5] - 5\n",
+    "x_test_gte5 = x_test[y_test >= 5]\n",
+    "y_test_gte5 = y_test[y_test >= 5] - 5\n",
+    "\n",
+    "# reshape to match model architecture\n",
+    "print(x_test_gte5.shape)\n",
+    "x_train_lt5=x_train_lt5.reshape(len(x_train_lt5), *input_shape)\n",
+    "x_test_lt5 = x_test_lt5.reshape(len(x_test_lt5), *input_shape)\n",
+    "x_train_gte5=x_train_gte5.reshape(len(x_train_gte5), *input_shape)\n",
+    "x_test_gte5 = x_test_gte5.reshape(len(x_test_gte5), *input_shape)\n",
+    "print(x_test_gte5.shape)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load datasets into tables using image loader scripts called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# MADlib tools directory\n",
+    "import sys\n",
+    "import os\n",
+    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
+    "sys.path.append(madlib_site_dir)\n",
+    "\n",
+    "# Import image loader module\n",
+    "from madlib_image_loader import ImageLoader, DbCredentials"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Specify database credentials, for connecting to db\n",
+    "#db_creds = DbCredentials(user='gpadmin',\n",
+    "#                         host='35.239.240.26',\n",
+    "#                         port='5432',\n",
+    "#                         password='')\n",
+    "\n",
+    "db_creds = DbCredentials(user='gpadmin',\n",
+    "                         host='localhost',\n",
+    "                         port='8000',\n",
+    "                         password='')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Initialize ImageLoader (increase num_workers to run faster)\n",
+    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "MainProcess: Connected to madlib db.\n",
+      "Executing: CREATE TABLE train_lt5 (id SERIAL, x REAL[], y TEXT[])\n",
+      "CREATE TABLE\n",
+      "Created table train_lt5 in madlib db\n",
+      "Spawning 5 workers...\n",
+      "Initializing PoolWorker-1 [pid 84210]\n",
+      "PoolWorker-1: Created temporary directory /tmp/madlib_ZWAMbc3vz1\n",
+      "Initializing PoolWorker-2 [pid 84211]\n",
+      "PoolWorker-2: Created temporary directory /tmp/madlib_InjvRoDiNG\n",
+      "Initializing PoolWorker-3 [pid 84212]\n",
+      "PoolWorker-3: Created temporary directory /tmp/madlib_b8amy7agop\n",
+      "PoolWorker-5: Created temporary directory /tmp/madlib_r8iho70gsD\n",
+      "Initializing PoolWorker-4 [pid 84213]\n",
+      "PoolWorker-4: Created temporary directory /tmp/madlib_bXuGj0ZMjg\n",
+      "Initializing PoolWorker-5 [pid 84214]\n",
+      "PoolWorker-1: Connected to madlib db.\n",
+      "PoolWorker-4: Connected to madlib db.\n",
+      "PoolWorker-5: Connected to madlib db.\n",
+      "PoolWorker-2: Connected to madlib db.\n",
+      "PoolWorker-3: Connected to madlib db.\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_ZWAMbc3vz1/train_lt50000.tmp\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_InjvRoDiNG/train_lt50000.tmp\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_r8iho70gsD/train_lt50000.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_bXuGj0ZMjg/train_lt50000.tmp\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_b8amy7agop/train_lt50000.tmp\n",
+      "PoolWorker-1: Removed temporary directory /tmp/madlib_ZWAMbc3vz1\n",
+      "\n",
+      "Error in PoolWorker-1 while loading images\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17722)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Removed temporary directory /tmp/madlib_InjvRoDiNG\n",
+      "\n",
+      "Error in PoolWorker-2 while loading images\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17726)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Removed temporary directory /tmp/madlib_bXuGj0ZMjg\n",
+      "PoolWorker-3: Removed temporary directory /tmp/madlib_b8amy7agop\n",
+      "PoolWorker-5: Removed temporary directory /tmp/madlib_r8iho70gsD\n",
+      "\n",
+      "Error in PoolWorker-3 while loading images\n",
+      "Error in PoolWorker-5 while loading images\n",
+      "Error in PoolWorker-4 while loading images\n",
+      "\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17738)\n",
+      "CONTEXT:  COPY train_lt5, line 2, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17730)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17734)\n",
+      "CONTEXT:  COPY train_lt5, line 2, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "\n",
+      "\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "5 workers terminated.\n"
+     ]
+    },
+    {
+     "ename": "BadCopyFileFormat",
+     "evalue": "array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17722)\nCONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mBadCopyFileFormat\u001b[0m                         Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-10-3c25ba51b8fc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;31m# Save images to temporary directories and load into database\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'train_lt5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'test_lt5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_gte5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_gte5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'train_gte5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.pyc\u001b[0m in \u001b[0;36mload_dataset_from_np\u001b[0;34m(self, data_x, data_y, table_name, append, label_datatype)\u001b[0m\n\u001b[1;32m    523\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mException\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    524\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mterminate_workers\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 525\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    527\u001b[0m         \u001b[0mend_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mBadCopyFileFormat\u001b[0m: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=17722)\nCONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Drop tables\n",
+    "%sql DROP TABLE IF EXISTS train_lt5, test_lt5, train_gte5, test_gte5\n",
+    "\n",
+    "# Save images to temporary directories and load into database\n",
+    "iloader.load_dataset_from_np(x_train_lt5, y_train_lt5, 'train_lt5', append=False)\n",
+    "iloader.load_dataset_from_np(x_test_lt5, y_test_lt5, 'test_lt5', append=False)\n",
+    "iloader.load_dataset_from_np(x_train_gte5, y_train_gte5, 'train_gte5', append=False)\n",
+    "iloader.load_dataset_from_np(x_test_gte5, y_test_gte5, 'test_gte5', append=False)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"image_preproc\"></a>\n",
+    "# 3. Call image preprocessor\n",
+    "\n",
+    "Transforms from one image per row to multiple images per row for batch optimization.  Also normalizes and one-hot encodes.\n",
+    "\n",
+    "Training dataset < 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS train_lt5_packed, train_lt5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('train_lt5',               -- Source table\n",
+    "                                       'train_lt5_packed',        -- Output table\n",
+    "                                       'y',                       -- Dependent variable\n",
+    "                                       'x',                       -- Independent variable\n",
+    "                                        1000,                     -- Buffer size\n",
+    "                                        255                       -- Normalizing constant\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM train_lt5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Test dataset < 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS test_lt5_packed, test_lt5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('test_lt5',                -- Source table\n",
+    "                                         'test_lt5_packed',         -- Output table\n",
+    "                                         'y',                       -- Dependent variable\n",
+    "                                         'x',                       -- Independent variable\n",
+    "                                         'train_lt5_packed'         -- Training preproc table\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM test_lt5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Training dataset >= 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS train_gte5_packed, train_gte5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('train_gte5',              -- Source table\n",
+    "                                       'train_gte5_packed',       -- Output table\n",
+    "                                       'y',                       -- Dependent variable\n",
+    "                                       'x',                       -- Independent variable\n",
+    "                                        1000,                     -- Buffer size\n",
+    "                                        255                       -- Normalizing constant\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM train_gte5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Test dataset >= 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS test_gte5_packed, test_gte5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('test_gte5',             -- Source table\n",
+    "                                         'test_gte5_packed',      -- Output table\n",
+    "                                         'y',                     -- Dependent variable\n",
+    "                                         'x',                     -- Independent variable\n",
+    "                                         'train_gte5_packed'      -- Training preproc table\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM test_gte5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"define_and_load_model\"></a>\n",
+    "# 4. Define and load model architecture\n",
+    "\n",
+    "Model with feature and classification layers trainable"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# define two groups of layers: feature (convolutions) and classification (dense)\n",
+    "feature_layers = [\n",
+    "    Conv2D(filters, kernel_size,\n",
+    "           padding='valid',\n",
+    "           input_shape=input_shape),\n",
+    "    Activation('relu'),\n",
+    "    Conv2D(filters, kernel_size),\n",
+    "    Activation('relu'),\n",
+    "    MaxPooling2D(pool_size=pool_size),\n",
+    "    Dropout(0.25),\n",
+    "    Flatten(),\n",
+    "]\n",
+    "\n",
+    "classification_layers = [\n",
+    "    Dense(128),\n",
+    "    Activation('relu'),\n",
+    "    Dropout(0.5),\n",
+    "    Dense(num_classes),\n",
+    "    Activation('softmax')\n",
+    "]\n",
+    "\n",
+    "# create complete model\n",
+    "model = Sequential(feature_layers + classification_layers)\n",
+    "\n",
+    "model.summary()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table using psycopg2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import psycopg2 as p2\n",
+    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS model_arch_library;\n",
+    "query = \"SELECT madlib.load_keras_model('model_arch_library', %s, NULL, %s)\"\n",
+    "cur.execute(query,[model.to_json(), \"feature + classification layers trainable\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check model loaded OK\n",
+    "%sql SELECT model_id, name FROM model_arch_library;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Model with feature layers frozen"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# freeze feature layers\n",
+    "for l in feature_layers:\n",
+    "    l.trainable = False\n",
+    "\n",
+    "model.summary()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into transfer model architecture table using psycopg2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cur.execute(query,[model.to_json(), \"only classification layers trainable\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check model loaded OK\n",
+    "%sql SELECT model_id, name FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 5.  Train\n",
+    "Train the model for 5-digit classification [0..4]  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_model, mnist_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('train_lt5_packed',    -- source table\n",
+    "                               'mnist_model',         -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
+    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
+    "                                5                     -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mnist_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Evaluate using test data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('mnist_model',      -- model\n",
+    "                                   'test_lt5_packed',   -- test table\n",
+    "                                   'mnist_validate'     -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM mnist_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"transfer_learning\"></a>\n",
+    "# 6. Transfer learning"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Use UPDATE to load trained weights from previous run into the model library table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library\n",
+    "SET model_weights = mnist_model.model_weights\n",
+    "FROM mnist_model\n",
+    "WHERE model_arch_library.model_id = 2;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Transfer: train dense layers for new classification task [5..9]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_transfer_model, mnist_transfer_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('train_gte5_packed',   -- source table\n",
+    "                               'mnist_transfer_model',-- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                2,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
+    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
+    "                                5                     -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mnist_transfer_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Evaluate using test data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_transfer_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('mnist_transfer_model',      -- model\n",
+    "                                   'test_gte5_packed',           -- test table\n",
+    "                                   'mnist_transfer_validate'     -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM mnist_transfer_validate;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-MLP-v2.ipynb b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-MLP-v2.ipynb
new file mode 100644
index 0000000..b16a948
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-MLP-v2.ipynb
@@ -0,0 +1,5025 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Multilayer Perceptron Using Keras and MADlib\n",
+    "\n",
+    "E2E classification example using MADlib calling a Keras MLP.\n",
+    "\n",
+    "Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax.  So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started.  It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
+    "\n",
+    "For more realistic examples with images please refer to the deep learning notebooks at\n",
+    "https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#class\">Classification</a>\n",
+    "\n",
+    "* <a href=\"#create_input_data\">1. Create input data</a>\n",
+    "\n",
+    "* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
+    "\n",
+    "* <a href=\"#load\">3. Define and load model architecture</a>\n",
+    "\n",
+    "* <a href=\"#train\">4. Train</a>\n",
+    "\n",
+    "* <a href=\"#eval\">5. Evaluate</a>\n",
+    "\n",
+    "* <a href=\"#pred\">6. Predict</a>\n",
+    "\n",
+    "* <a href=\"#pred_byom\">7. Predict BYOM</a>\n",
+    "\n",
+    "<a href=\"#class2\">Classification with Other Parameters</a>\n",
+    "\n",
+    "* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
+    "\n",
+    "* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
+    "\n",
+    "* <a href=\"#warm_start\">3. Warm start</a>\n",
+    "\n",
+    "<a href=\"#transfer_learn\">Transfer learning</a>\n",
+    "\n",
+    "* <a href=\"#load2\">1. Define and load model architecture with some layers frozen</a>\n",
+    "\n",
+    "* <a href=\"#train2\">2. Train transfer model</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class\"></a>\n",
+    "# Classification\n",
+    "\n",
+    "<a id=\"create_input_data\"></a>\n",
+    "# 1.  Create input data\n",
+    "\n",
+    "Load iris data set."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "150 rows affected.\n",
+      "150 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>attributes</th>\n",
+       "        <th>class_text</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>8</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>10</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>11</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>13</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>14</td>\n",
+       "        <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>15</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>16</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>17</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>19</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>20</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>21</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>22</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>25</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>27</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>28</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>29</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>30</td>\n",
+       "        <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>32</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>34</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>35</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>36</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>37</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>39</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>40</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>41</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>42</td>\n",
+       "        <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>43</td>\n",
+       "        <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>44</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>45</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>46</td>\n",
+       "        <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>47</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>48</td>\n",
+       "        <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>49</td>\n",
+       "        <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>50</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>52</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>53</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>55</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>56</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>57</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>58</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>59</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>60</td>\n",
+       "        <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>61</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>62</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>63</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>64</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>65</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>67</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>68</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>69</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>70</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>71</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>72</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>75</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>76</td>\n",
+       "        <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>77</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>79</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>80</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>82</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>84</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>85</td>\n",
+       "        <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>86</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>87</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>88</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>89</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>91</td>\n",
+       "        <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>92</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>95</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>97</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>98</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>100</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>101</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>103</td>\n",
+       "        <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>104</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>105</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>106</td>\n",
+       "        <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>107</td>\n",
+       "        <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>108</td>\n",
+       "        <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>109</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>110</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>112</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>113</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>114</td>\n",
+       "        <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>115</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>116</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>118</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>119</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>121</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>122</td>\n",
+       "        <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>124</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>125</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>126</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>129</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>130</td>\n",
+       "        <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>132</td>\n",
+       "        <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>133</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>134</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>136</td>\n",
+       "        <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>137</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>138</td>\n",
+       "        <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>139</td>\n",
+       "        <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>140</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>141</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>142</td>\n",
+       "        <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>144</td>\n",
+       "        <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>146</td>\n",
+       "        <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>147</td>\n",
+       "        <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>148</td>\n",
+       "        <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>149</td>\n",
+       "        <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>150</td>\n",
+       "        <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
+       " (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
+       " (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
+       " (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
+       " (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
+       " (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
+       " (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
+       " (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
+       " (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
+       " (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
+       " (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
+       " (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
+       " (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
+       " (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
+       " (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
+       " (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
+       " (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
+       " (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
+       " (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
+       " (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
+       " (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
+       " (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
+       " (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
+       " (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
+       " (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
+       " (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
+       " (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
+       " (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS iris_data;\n",
+    "\n",
+    "CREATE TABLE iris_data(\n",
+    "    id serial,\n",
+    "    attributes numeric[],\n",
+    "    class_text varchar\n",
+    ");\n",
+    "\n",
+    "INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
+    "(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
+    "(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
+    "(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
+    "(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
+    "(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
+    "(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
+    "(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
+    "(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
+    "(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
+    "(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
+    "(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
+    "(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
+    "(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
+    "(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
+    "(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
+    "(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
+    "(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
+    "(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
+    "(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
+    "(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
+    "(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
+    "(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
+    "(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
+    "(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
+    "(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
+    "(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
+    "(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
+    "(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
+    "(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
+    "(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
+    "(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
+    "(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
+    "(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
+    "(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
+    "(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
+    "(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
+    "(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
+    "(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
+    "(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
+    "(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
+    "(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
+    "(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
+    "(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
+    "(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
+    "(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
+    "(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
+    "(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
+    "(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
+    "(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
+    "(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
+    "(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
+    "(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
+    "(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
+    "(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
+    "(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
+    "(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
+    "(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
+    "(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
+    "(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
+    "(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
+    "(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
+    "(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
+    "(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
+    "(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
+    "(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
+    "(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
+    "(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
+    "(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
+    "(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
+    "(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
+    "(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
+    "(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
+    "(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
+    "(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
+    "(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
+    "(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
+    "(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
+    "(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
+    "(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
+    "(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
+    "(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
+    "(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
+    "(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
+    "(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
+    "(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
+    "(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
+    "(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
+    "(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
+    "(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
+    "(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
+    "(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
+    "(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
+    "(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
+    "(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
+    "(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
+    "(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
+    "(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
+    "(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
+    "(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
+    "(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
+    "(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
+    "(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
+    "(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
+    "(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
+    "(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
+    "(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
+    "(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
+    "(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
+    "(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
+    "(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
+    "(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
+    "(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
+    "(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
+    "(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
+    "(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
+    "(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
+    "(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
+    "(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
+    "(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
+    "(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
+    "(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
+    "(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
+    "(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
+    "(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
+    "(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
+    "(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
+    "(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
+    "(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
+    "(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
+    "(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
+    "(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
+    "(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
+    "(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
+    "(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
+    "(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
+    "(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
+    "(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
+    "(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
+    "(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
+    "(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
+    "(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
+    "\n",
+    "SELECT * FROM iris_data ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Create a test/validation dataset from the training data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>120</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(120L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train, iris_test;\n",
+    "\n",
+    "-- Set seed so results are reproducible\n",
+    "SELECT setseed(0);\n",
+    "\n",
+    "SELECT madlib.train_test_split('iris_data',     -- Source table\n",
+    "                               'iris',          -- Output table root name\n",
+    "                                0.8,            -- Train proportion\n",
+    "                                NULL,           -- Test proportion (0.2)\n",
+    "                                NULL,           -- Strata definition\n",
+    "                                NULL,           -- Output all columns\n",
+    "                                NULL,           -- Sample without replacement\n",
+    "                                TRUE            -- Separate output tables\n",
+    "                              );\n",
+    "\n",
+    "SELECT COUNT(*) FROM iris_train;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pp\"></a>\n",
+    "# 2. Call preprocessor for deep learning\n",
+    "Training dataset (uses training preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train</td>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>60</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train', u'iris_train_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('iris_train',         -- Source table\n",
+    "                                       'iris_train_packed',  -- Output table\n",
+    "                                       'class_text',         -- Dependent variable\n",
+    "                                       'attributes'          -- Independent variable\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM iris_train_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Validation dataset (uses validation preprocessor):"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>output_table</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "        <th>buffer_size</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>distribution_rules</th>\n",
+       "        <th>__internal_gpu_config__</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_test</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "        <td>15</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>all_segments</td>\n",
+       "        <td>all_segments</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_test', u'iris_test_packed', [u'class_text'], [u'attributes'], [u'character varying'], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, [3], 'all_segments', 'all_segments')]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('iris_test',          -- Source table\n",
+    "                                         'iris_test_packed',   -- Output table\n",
+    "                                         'class_text',         -- Dependent variable\n",
+    "                                         'attributes',         -- Independent variable\n",
+    "                                         'iris_train_packed'   -- From training preprocessor step\n",
+    "                                          ); \n",
+    "\n",
+    "SELECT * FROM iris_test_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load\"></a>\n",
+    "# 3. Define and load model architecture\n",
+    "Import Keras libraries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Define model architecture"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
+      "Model: \"sequential\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense (Dense)                (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_1 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_2 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 193\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_simple = Sequential()\n",
+    "model_simple.add(Dense(10, activation='relu', input_shape=(4,)))\n",
+    "model_simple.add(Dense(10, activation='relu'))\n",
+    "model_simple.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_simple.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_simple.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model')]"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS model_arch_library;\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,\n",
+    "                               \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Sophie',              -- Name\n",
+    "                               'A simple model'       -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 4.  Train\n",
+    "Train the model:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10                    -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>10</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:29:48.575453</td>\n",
+       "        <td>2021-03-06 00:29:51.861215</td>\n",
+       "        <td>[3.28567409515381]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.958333313465</td>\n",
+       "        <td>0.560008466244</td>\n",
+       "        <td>[0.958333313465118]</td>\n",
+       "        <td>[0.560008466243744]</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>[10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, None, None, 10, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 29, 48, 575453), datetime.datetime(2021, 3, 6, 0, 29, 51, 861215), [3.28567409515381], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.958333313465118, 0.560008466243744, [0.958333313465118], [0.560008466243744], None, None, None, None, [10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"eval\"></a>\n",
+    "# 5. Evaluate\n",
+    "\n",
+    "Now run evaluate using model we built above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>loss</th>\n",
+       "        <th>metric</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0.590213775635</td>\n",
+       "        <td>0.899999976158</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0.590213775634766, 0.899999976158142, [u'accuracy'], u'categorical_crossentropy')]"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('iris_model',       -- model\n",
+    "                                   'iris_test_packed',  -- test table\n",
+    "                                   'iris_validate'      -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred\"></a>\n",
+    "# 6. Predict\n",
+    "\n",
+    "Now predict using model we built.  We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8026635</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.13821265</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.059123855</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8471821</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.110732675</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.042085275</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8697099</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.09588991</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.03440017</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9113638</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.06569701</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.022939174</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8007704</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.14301367</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.056215953</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7946505</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.14609303</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.05925647</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8087025</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.1362152</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.055082306</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9220808</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.059425894</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.018493252</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.82773703</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.12367095</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.04859213</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.52441037</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2698906</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.205699</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4541727</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3792952</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.16653205</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5121435</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2632511</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.22460538</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.44443503</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4180967</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.13746823</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.46657953</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3879333</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.14548717</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47301942</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3099994</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.21698117</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.48130804</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2771792</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2415128</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.48122597</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.30558127</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2131927</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45175043</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2748035</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.2734461</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45799258</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.29800493</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.24400246</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.41659498</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.34956554</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.23383953</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46772137</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3688568</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.16342185</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4250459</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.41558483</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.15936929</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46659094</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3897162</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.1436929</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5056077</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.37151548</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.12287672</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.42669904</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.418276</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.15502496</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.41957054</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.41565675</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.16477272</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4755917</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.40127525</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.12313308</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.50083333</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.34366286</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.15550385</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46772137</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.3688568</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.16342185</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47896492</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.36823604</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.15279905</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, u'class_text', u'Iris-setosa', 0.8026635, 1),\n",
+       " (9, u'class_text', u'Iris-versicolor', 0.13821265, 2),\n",
+       " (9, u'class_text', u'Iris-virginica', 0.059123855, 3),\n",
+       " (12, u'class_text', u'Iris-setosa', 0.8471821, 1),\n",
+       " (12, u'class_text', u'Iris-versicolor', 0.110732675, 2),\n",
+       " (12, u'class_text', u'Iris-virginica', 0.042085275, 3),\n",
+       " (18, u'class_text', u'Iris-setosa', 0.8697099, 1),\n",
+       " (18, u'class_text', u'Iris-versicolor', 0.09588991, 2),\n",
+       " (18, u'class_text', u'Iris-virginica', 0.03440017, 3),\n",
+       " (23, u'class_text', u'Iris-setosa', 0.9113638, 1),\n",
+       " (23, u'class_text', u'Iris-versicolor', 0.06569701, 2),\n",
+       " (23, u'class_text', u'Iris-virginica', 0.022939174, 3),\n",
+       " (24, u'class_text', u'Iris-setosa', 0.8007704, 1),\n",
+       " (24, u'class_text', u'Iris-versicolor', 0.14301367, 2),\n",
+       " (24, u'class_text', u'Iris-virginica', 0.056215953, 3),\n",
+       " (26, u'class_text', u'Iris-setosa', 0.7946505, 1),\n",
+       " (26, u'class_text', u'Iris-versicolor', 0.14609303, 2),\n",
+       " (26, u'class_text', u'Iris-virginica', 0.05925647, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.8087025, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 0.1362152, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 0.055082306, 3),\n",
+       " (33, u'class_text', u'Iris-setosa', 0.9220808, 1),\n",
+       " (33, u'class_text', u'Iris-versicolor', 0.059425894, 2),\n",
+       " (33, u'class_text', u'Iris-virginica', 0.018493252, 3),\n",
+       " (38, u'class_text', u'Iris-setosa', 0.82773703, 1),\n",
+       " (38, u'class_text', u'Iris-versicolor', 0.12367095, 2),\n",
+       " (38, u'class_text', u'Iris-virginica', 0.04859213, 3),\n",
+       " (51, u'class_text', u'Iris-versicolor', 0.52441037, 1),\n",
+       " (51, u'class_text', u'Iris-virginica', 0.2698906, 2),\n",
+       " (51, u'class_text', u'Iris-setosa', 0.205699, 3),\n",
+       " (54, u'class_text', u'Iris-versicolor', 0.4541727, 1),\n",
+       " (54, u'class_text', u'Iris-virginica', 0.3792952, 2),\n",
+       " (54, u'class_text', u'Iris-setosa', 0.16653205, 3),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.5121435, 1),\n",
+       " (66, u'class_text', u'Iris-virginica', 0.2632511, 2),\n",
+       " (66, u'class_text', u'Iris-setosa', 0.22460538, 3),\n",
+       " (73, u'class_text', u'Iris-virginica', 0.44443503, 1),\n",
+       " (73, u'class_text', u'Iris-versicolor', 0.4180967, 2),\n",
+       " (73, u'class_text', u'Iris-setosa', 0.13746823, 3),\n",
+       " (78, u'class_text', u'Iris-versicolor', 0.46657953, 1),\n",
+       " (78, u'class_text', u'Iris-virginica', 0.3879333, 2),\n",
+       " (78, u'class_text', u'Iris-setosa', 0.14548717, 3),\n",
+       " (81, u'class_text', u'Iris-versicolor', 0.47301942, 1),\n",
+       " (81, u'class_text', u'Iris-virginica', 0.3099994, 2),\n",
+       " (81, u'class_text', u'Iris-setosa', 0.21698117, 3),\n",
+       " (83, u'class_text', u'Iris-versicolor', 0.48130804, 1),\n",
+       " (83, u'class_text', u'Iris-virginica', 0.2771792, 2),\n",
+       " (83, u'class_text', u'Iris-setosa', 0.2415128, 3),\n",
+       " (93, u'class_text', u'Iris-versicolor', 0.48122597, 1),\n",
+       " (93, u'class_text', u'Iris-virginica', 0.30558127, 2),\n",
+       " (93, u'class_text', u'Iris-setosa', 0.2131927, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.45175043, 1),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.2748035, 2),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.2734461, 3),\n",
+       " (96, u'class_text', u'Iris-versicolor', 0.45799258, 1),\n",
+       " (96, u'class_text', u'Iris-virginica', 0.29800493, 2),\n",
+       " (96, u'class_text', u'Iris-setosa', 0.24400246, 3),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.41659498, 1),\n",
+       " (99, u'class_text', u'Iris-setosa', 0.34956554, 2),\n",
+       " (99, u'class_text', u'Iris-virginica', 0.23383953, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.46772137, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.3688568, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 0.16342185, 3),\n",
+       " (111, u'class_text', u'Iris-versicolor', 0.4250459, 1),\n",
+       " (111, u'class_text', u'Iris-virginica', 0.41558483, 2),\n",
+       " (111, u'class_text', u'Iris-setosa', 0.15936929, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.46659094, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.3897162, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.1436929, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.5056077, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.37151548, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 0.12287672, 3),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.42669904, 1),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.418276, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 0.15502496, 3),\n",
+       " (128, u'class_text', u'Iris-virginica', 0.41957054, 1),\n",
+       " (128, u'class_text', u'Iris-versicolor', 0.41565675, 2),\n",
+       " (128, u'class_text', u'Iris-setosa', 0.16477272, 3),\n",
+       " (131, u'class_text', u'Iris-virginica', 0.4755917, 1),\n",
+       " (131, u'class_text', u'Iris-versicolor', 0.40127525, 2),\n",
+       " (131, u'class_text', u'Iris-setosa', 0.12313308, 3),\n",
+       " (135, u'class_text', u'Iris-virginica', 0.50083333, 1),\n",
+       " (135, u'class_text', u'Iris-versicolor', 0.34366286, 2),\n",
+       " (135, u'class_text', u'Iris-setosa', 0.15550385, 3),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.46772137, 1),\n",
+       " (143, u'class_text', u'Iris-versicolor', 0.3688568, 2),\n",
+       " (143, u'class_text', u'Iris-setosa', 0.16342185, 3),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.47896492, 1),\n",
+       " (145, u'class_text', u'Iris-versicolor', 0.36823604, 2),\n",
+       " (145, u'class_text', u'Iris-setosa', 0.15279905, 3)]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model', -- model\n",
+    "                                   'iris_test',  -- test_table\n",
+    "                                   'id',  -- id column\n",
+    "                                   'attributes', -- independent var\n",
+    "                                   'iris_predict'  -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id)\n",
+    "WHERE iris_predict.class_value != iris_test.class_text AND iris_predict.rank = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict.class_value as estimated\n",
+    "     from iris_predict inner join iris_test\n",
+    "     on iris_test.id=iris_predict.id where iris_predict.rank = 1) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_byom\"></a>\n",
+    "# 7. Predict BYOM\n",
+    "The predict BYOM function allows you to do inference on models that have not been trained on MADlib, but rather imported from elsewhere.  \n",
+    "\n",
+    "We will use the validation dataset for prediction as well, which is not usual but serves to show the syntax.\n",
+    "\n",
+    "See load_keras_model()\n",
+    "http://madlib.apache.org/docs/latest/group__grp__keras__model__arch.html\n",
+    "for details on how to load the model architecture and weights.  In this example we will use weights we already have:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 1;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train using a model from the model architecture table directly without referencing the model table from the MADlib training.  \n",
+    "\n",
+    "Note that if you specify the class values parameter as we do below, it must reflect how the dependent variable was 1-hot encoded for training.  In this example the 'training_preprocessor_dl()' in Step 2 above encoded in the order {'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'} so this is the order we pass in the parameter.  If we accidently picked another order that did not match the 1-hot encoding, the predictions would be wrong."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "30 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8026635</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8471821</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8697099</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9113638</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8007704</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.7946505</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.8087025</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9220808</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.82773703</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.52441037</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4541727</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.5121435</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.44443503</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.46657953</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.47301942</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.48130804</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.48122597</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45175043</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45799258</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.41659498</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46772137</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.4250459</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46659094</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5056077</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.42669904</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.41957054</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.4755917</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.50083333</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.46772137</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>dependent_var</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.47896492</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, u'dependent_var', u'Iris-setosa', 0.8026635),\n",
+       " (12, u'dependent_var', u'Iris-setosa', 0.8471821),\n",
+       " (18, u'dependent_var', u'Iris-setosa', 0.8697099),\n",
+       " (23, u'dependent_var', u'Iris-setosa', 0.9113638),\n",
+       " (24, u'dependent_var', u'Iris-setosa', 0.8007704),\n",
+       " (26, u'dependent_var', u'Iris-setosa', 0.7946505),\n",
+       " (31, u'dependent_var', u'Iris-setosa', 0.8087025),\n",
+       " (33, u'dependent_var', u'Iris-setosa', 0.9220808),\n",
+       " (38, u'dependent_var', u'Iris-setosa', 0.82773703),\n",
+       " (51, u'dependent_var', u'Iris-versicolor', 0.52441037),\n",
+       " (54, u'dependent_var', u'Iris-versicolor', 0.4541727),\n",
+       " (66, u'dependent_var', u'Iris-versicolor', 0.5121435),\n",
+       " (73, u'dependent_var', u'Iris-virginica', 0.44443503),\n",
+       " (78, u'dependent_var', u'Iris-versicolor', 0.46657953),\n",
+       " (81, u'dependent_var', u'Iris-versicolor', 0.47301942),\n",
+       " (83, u'dependent_var', u'Iris-versicolor', 0.48130804),\n",
+       " (93, u'dependent_var', u'Iris-versicolor', 0.48122597),\n",
+       " (94, u'dependent_var', u'Iris-versicolor', 0.45175043),\n",
+       " (96, u'dependent_var', u'Iris-versicolor', 0.45799258),\n",
+       " (99, u'dependent_var', u'Iris-versicolor', 0.41659498),\n",
+       " (102, u'dependent_var', u'Iris-virginica', 0.46772137),\n",
+       " (111, u'dependent_var', u'Iris-versicolor', 0.4250459),\n",
+       " (117, u'dependent_var', u'Iris-virginica', 0.46659094),\n",
+       " (123, u'dependent_var', u'Iris-virginica', 0.5056077),\n",
+       " (127, u'dependent_var', u'Iris-versicolor', 0.42669904),\n",
+       " (128, u'dependent_var', u'Iris-virginica', 0.41957054),\n",
+       " (131, u'dependent_var', u'Iris-virginica', 0.4755917),\n",
+       " (135, u'dependent_var', u'Iris-virginica', 0.50083333),\n",
+       " (143, u'dependent_var', u'Iris-virginica', 0.46772137),\n",
+       " (145, u'dependent_var', u'Iris-virginica', 0.47896492)]"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict_byom;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict_byom('model_arch_library',  -- model arch table\n",
+    "                                         1,                    -- model arch id\n",
+    "                                        'iris_test',           -- test_table\n",
+    "                                        'id',                  -- id column\n",
+    "                                        'attributes',          -- independent var\n",
+    "                                        'iris_predict_byom',   -- output table\n",
+    "                                        'response',            -- prediction type\n",
+    "                                         FALSE,                -- use GPUs\n",
+    "                                         ARRAY[ARRAY['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']], -- class values\n",
+    "                                         1.0                   -- normalizing const\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict_byom ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Count missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(3L,)]"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM iris_predict_byom JOIN iris_test USING (id)\n",
+    "WHERE iris_predict_byom.class_value != iris_test.class_text;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Percent missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>90.00</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('90.00'),)]"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
+    "    (select iris_test.class_text as actual, iris_predict_byom.class_value as estimated\n",
+    "     from iris_predict_byom inner join iris_test\n",
+    "     on iris_test.id=iris_predict_byom.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"class2\"></a>\n",
+    "# Classification with Other Parameters\n",
+    "\n",
+    "<a id=\"val_dataset\"></a>\n",
+    "# 1.  Validation dataset\n",
+    "Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter.  This can help reduce run time if you do not need metrics computed at every iteration."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                FALSE,                -- warm start\n",
+    "                               'Sophie L.',           -- name\n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:30:02.409489</td>\n",
+       "        <td>2021-03-06 00:30:03.741511</td>\n",
+       "        <td>[0.776393890380859, 0.917426109313965, 1.05355596542358, 1.18816304206848, 1.33194589614868]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.983333349228</td>\n",
+       "        <td>0.251336187124</td>\n",
+       "        <td>[0.975000023841858, 0.983333349227905, 0.975000023841858, 0.991666674613953, 0.983333349227905]</td>\n",
+       "        <td>[0.474240601062775, 0.406035482883453, 0.347332179546356, 0.295203357934952, 0.251336187124252]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.272865414619</td>\n",
+       "        <td>[0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.50140792131424, 0.429758101701736, 0.369670689105988, 0.317984014749527, 0.272865414619446]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 30, 2, 409489), datetime.datetime(2021, 3, 6, 0, 30, 3, 741511), [0.776393890380859, 0.917426109313965, 1.05355596542358, 1.18816304206848, 1.33194589614868], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.983333349227905, 0.251336187124252, [0.975000023841858, 0.983333349227905, 0.975000023841858, 0.991666674613953, 0.983333349227905], [0.474240601062775, 0.406035482883453, 0.347332179546356, 0.295203357934952, 0.251336187124252], 0.966666638851166, 0.272865414619446, [0.966666638851166, 0.899999976158142, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.50140792131424, 0.429758101701736, 0.369670689105988, 0.317984014749527, 0.272865414619446], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzt3Xd4VGX2wPHvSSD0DoYSEAQsiBgEgVA0WBAs6Kq7YldEdFcX8bcWEEVFpFhWUVgbdlEWcS3rYluElSbVAAoiiAqhCKKUIBBCzu+P9844xJCZkEzuZOZ8nmee3Ln1zM3MnLnvvfc9oqoYY4wxRUnyOwBjjDGxz5KFMcaYsCxZGGOMCcuShTHGmLAsWRhjjAnLkoUxxpiwLFnEORG5XEQ+LsPtNRcRFZEK3vMPROTqSOY9jG3dJSITSxJvIhORTBHJLqV1PS0i95TGukoQw1cikulnDPFM7D6L8k1EvgcGqOp//Y4FXAIAvgMqqmpeKc6bCbymqmmlEaeJ3j4ti/+ViLwEZKvq3dHahjmYHVnEscP9xW78lej/t0R//bHKkkUcEZFrRGSOiDwmItuA+7xxs73p4k3bIiI7RWS5iLQtZD2XiMiiAuNuFZH3vOFzROQLbx3rReS+ImKaKSIDvOFkEXlERH4SkbXAOQXmvVZEVorILhFZKyI3eOOrAR8AjUUkx3s0FpH7ROS1kOX7ek0R273tHhcy7XsRuU1ElonIDhH5p4hUPkTMLUXkUxHZ5sU6SURqh0xvKiL/EpGt3jzjQ6ZdH/IaVojISd54FZFWIfO9JCIjveFMEckWkTtFZDPwoojUEZH3vW384g2nhSxfV0ReFJGN3vR3vPFfish5IfNV9F5D+yL+R3d583wvIpd7404WkR9FJDlkvgtFZOkh1vGSiIws4n+VJCJDRORbb59NEZG63rKB5sjrRGQd8Kk3/k0R2ez9vz4TkeO98QOBy4E7vPX/O+R/fIY3XElEHvf2z0ZvuFKB/f0377OwSUSuPdT+MY4li/jTGVgLpAIPFpjWCzgFOBqoBfwJ2FbIOv4NHCMirUPGXQa87g3vBq4CauO+8P8sIhdEENv1wLlAe6AjcHGB6Vu86TWBa4HHROQkVd0N9AE2qmp177ExdEERORp4AxgMNACmAf8WkZSQ2f4E9AZaAO2Aaw4RpwCjgcbAcUBT4D5vO8nA+8APQHOgCTDZm/ZHb76rvNfQl8L3b2EaAnWBI4GBuM/mi97zZsAeYHzI/K8CVYHjgSOAx7zxrwBXhMx3NrBJVb8oYrv1vddxNfCsiByjqgu92HuFzHult/5DKuJ/9VfgAuBU3H79BZhQYPFTcfv7LO/5B0Br7/UtASZ523jWG37IW/95/N4woAuQDpwIdAJCm6wa4j4DTYDrgAkiUqeo15bwVNUe5fgBfA+c4Q1fA6wrMP0aYLY3fBrwDe5DlBRmva8Bw73h1sAuoOoh5n0ceMwbbg4oUMF7PhN3TgXcL8YbQ5brFTpvIet9B7jFG87EtVGHTr8P1zYOcA8wJWRaErAByAzZT1eETH8IeDrCfXwB8IU3nAFsLSxm4KNAvIVMU6BVyPOXgJEhry0XqFxEDOnAL95wIyAfqFPIfI29/1VN7/lU4I5DrDMTyAOqhYybAtzjDd8JTPKG6wK/Ao0Osa6Cr6fg/2olcHrI80bAfqBCyHvmqCJef21vnloFt3eIz8K3wNkh084Cvg+Jb0/o/xD3Q6VLaX8+4+lhRxbxZ/2hJqjqp7hfpxOALSLyrIjUPMTsrwOXesOXAe+o6q8AItJZRGZ4TSQ7gBtxv07DaVwgvh9CJ4pIHxH5XER+FpHtuF/Fkaw3sO7g+lQ139tWk5B5NocM/wpUL2xFIpIqIpNFZIOI7MQlzkAcTYEftPAT8k1xX1KHY6uq7g2JoaqIPCMiP3gxfAbU9o5smgI/q+ovBVei7lf8HOAir+msD94v8kP4Rd3RQMAPuH0J7nWf5zUt/QmYpaqbDvP1HQm87TURbscljwO4I+CA4HtDXJPlGK/ZaicuEcBhvh84+HUBbCvwPzzk+8E4liziT5GXt6nqE6raAWiDa466/RCzfgI0EJF0XNJ4PWTa68B7QFNVrQU8jWu6CWcT7osuoFlgwGtPfgt4BEhV1dq4pqTAesNdtrcR94UUWJ9429oQQVwFjfK2d4Kq1sQ16wTiWA80k8JPwq4HWh5inb/imo0CGhaYXvD1/Q04BujsxXCKN1687dQNPY9SwMtezH8E5qlqUfugjpcMAprh9iXecvOAC3FNUK8WsZ6iXgtezH1UtXbIo3KB2EKXuww4HzgD11zU3Bt/WO8HQl6XOTyWLBKId9Kys4hUxJ132ItrzvgdVd0PvAk8jGuC+CRkcg3cL9u9ItIJ98GOxBRgkIikee3DQ0KmpQCVcE08eSLSh4Pby38E6olIrSLWfY6InO69vr8B+4C5EcYWqgaQA+wQkSYcnFAX4JLeGBGpJiKVRaSbN20icJuIdBCnlYgEvrCygMu8X8y9ce3z4WLYA2z3TgTfG5jg/br/APiHuBPhFUXklJBl3wFOAm4hzDkGz/0ikiIiPXDnjN4MmfYKcAdwAvCvCNYFhf+vngYeDOwPEWkgIucXsY4auP/fNlySHVXINo4qYvk3gLu97dQHhuOOlMxhsmSRWGoCz+FOLv6A+yA+XMT8r+N+2b1Z4JD9L8AIEdmF+xBOiXD7z+Ha9ZfiTlgGv3xUdRcwyFvXL7gE9F7I9K9xXwBrvaaM0CYFVHUV7tf0k8BPwHnAeaqaG2Fsoe7HfdnuAP5TIM4D3rpbAeuAbOASb9qbuIsKXsedN3gHl2jBfXGfB2zHXcnzTpgYHgeqeK/lc+DDAtOvxLX5f41rbx8cEuMe3FFaC8J/wW/G7e+NuOaqG719HfA2XhNSoBkynEP8r8bh/p8fe++bz3EXYxzKK7j36AZghTd/qOeBNt76C9uXI4FFwDJgOe79NjKS+E3h7KY8Y+KQiAwHjlbVK8LOHH5d3wI3aIzc+Gn8YTe/GBNnvGar63BHHyVd10W48wOflnRdpnyzZihj4oiIXI87mfyBqn5WwnXNBJ4CbvKuLjMJzJqhjDHGhGVHFsYYY8KKm3MW9evX1+bNmx/28rt376ZatWrhZyxjFlfxWFzFY3EVTzzGtXjx4p9UtUHYGf2+hby0Hh06dNCSmDFjRomWjxaLq3gsruKxuIonHuMCFql192GMMaY0WLIwxhgTliULY4wxYVmyMMYYE5YlC2OMMWFZsjDGGBOWJQtjTEyZt34ek9ZNYt76eX6HYkJYsjDGxIzPfviMzJczef675zntldOYu+5wypGYaIibO7iNMeXX7tzdPLfkOe6deS+5B1wJkr15eznz1TM5s+WZdG/WnR7NenBSo5OomFzR52gTkyULY4xvft7zM+MXjOeJ+U+wbc820hums3LrSvYf2E9yUjKZLTL5autXvLvqXQCqVKhCl7QuweTRJa0LNSrV8PlVJAZLFsaYMrdx10b+Pu/vPLP4GXJyczj36HMZ2n0oXZt2Zd76ebww4wX69+xPRtMMADbt2sSc9XOYvW42s9bN4sFZD5Kv+SRLMukN04PJo3uz7qRWT/X51cUnSxbGmDKzettqHp77MC8vfZm8/Dz6te3HkG5DOCH1hOA8GU0z2NdsXzBRADSq0YiL21zMxW0uBmDXvl3My54XTB7PLn6WcfPHAdC6bmu6N+seTCCt6rZCRMr2hcYhSxbGmKjL2pzF6NmjmbpiKhWTKtI/vT+3d7udo+ocdVjrq1GpBr1a9qJXy14A5B7IZcmmJcHk8e6qd3kx60UAUqulHpQ8Tmx4IhWS7KuvuGyPGWOiQlWZtW4Wo2eP5sM1H1IjpQa3d72dwV0G07B6w1LdVkpyCl3SutAlrQu3db2NfM3n65++Zva62cEE8tbKtwConlKdjLSMYPLonNaZqhWrlmo88ciShTGmVKkq/1n9H0bPHs3c9XNpULUBD572IH85+S/Urly7TGJIkiTaNGhDmwZtGNhhIADZO7MPSh73zbwPRamQVIGTGp0UPOfRvVl36letXyZxlieWLIwxpSIvP48pX01hzOwxLN+ynGa1mvFknyfp375/TPxyT6uZRr+2/ejXth8A2/duZ+76ucHk8eSCJ3l03qMAHFv/2GDy6NGsB81rN0/48x6WLIwxJbI3by8vZb3Ew3MfZu0vazmu/nG8fMHLXNr20pi+J6J25dqc3fpszm59NuBex+KNi5m1bhaz183mzRVv8tyS5wBoXKMxPZr1IHVfKnU216HtEW1JTkr2M/wyZ8nCGHNYdu7byVMLn+Kxzx/jx90/0qlJJx7t9Sh9j+lLkpS/ziEqV6hMt2bd6NasGwD5ms9XW74KJo9Z62aRvTObJ9Y8Qc1KNenatGvw6KNTk05UrlDZ51cQXZYsjDHFsmX3FsZ9Po4JCyewY98OzjjqDF7v/jo9m/eMq6aaJEnihNQTOCH1BP5y8l9QVf750T/Ja5wXTB7DPh0GuBPsHRt3DCaPrk27UrdKXZ9fQemyZGGMicgP23/gkbmP8PwXz7M3by8XHnchQ7oPoWPjjn6HViZEhIaVG5LZLpMr2l0BwLZftzF3/dzg0cff5/2dsXPGAtD2iLZ0b9qdHke6BNKsVjM/wy8xSxbGmCKt2LqCsXPG8vry1wG4st2V3NHtDo6tf6zPkfmvXtV6nHfMeZx3zHkA/Lr/VxZuWBhMHpOWT+LpxU8D0KxWs4PuNG/ToE25aq6zZGGMKdSCDQsYPXs073z9DlUrVuWmk2/ibxl/o2mtpn6HFrOqVqzKqc1P5dTmpwLuCrHlPy4PJo9Pv/s0mHTrVK5Dt2bdgkcfHRp1oFKFSn6GXyRLFsaYIFVl+nfTGT17NJ9+9ym1K9fmnlPuYVDnQXbvwWGokFSB9o3a075RewZ1HoSqsvaXtcFzHrPXzeb9b94H3An2Tk06BZNHRloGtSrX8vkV/MaShTGGfM3n7ZVvM2bOGBZtXESj6o14+MyHuaHDDdaraykSEVrWbUnLui25Ov1qwF0wMGfdnGDyGDtnLKNmjyJJkmiX2u6g8x6NazT2LXZLFqbYApXMKq2vdFBnb6b82Z+/nxe/eJGxc8ayatsqWtZpyTPnPsPVJ14d000i8eSIakfwh+P+wB+O+wMAObk5zM+eHzz6eCHrBcYvHA9Ai9otXOLwEsgx9Y7h8+zPy+TzaMnCRCwnN4cXv3iRv338N/Ly83ht/WtMv3I6XZt19Ts0U0y7c3czcclERi0YxZZ9Wzgx9UQmXzSZi9tcnHA3m8Wa6inVOf2o0zn9qNMB2H9gP1mbs4LJ44PVH/DK0lcAqFWpFrtyd6GqTFo/ielXTY9awrBkYQ6p4OHxkk1LOKAHgtP35u2l12u9OKvVWcErPNIbpluPnjHslz2/MH7BeMbNH8e2PdtoV6sdL130Er1b9Y6reyTiScXkipzc5GRObnIyt2bciqryzbZvmL1uNv9Y+A+WbF4CuJ53Z34/05KFia7AibfQu1W/2fYNAJWSK9E5rTNDug+hXpV6DPt0GPvy9pGclEyPZj34YtMX/GvlvwCoVrEaGU0zgsmjc5POVEup5udLM7hiQ4/Ne4ynFz9NTm4O57Q+h6Hdh7J/7X4yW2f6HZ4pBhHhmPrHcEz9Y2jToA2nv3I6+/L2kZKcQmbzzKht15JFgjqQf4BlPy4LJofZ62azKWcT8Nslfde1v47uzbr/7pK+LmldflfJbMPODQdd4VGwR89AG2u3pt1oUK2BL685Ea35eQ0PzXkoWGzokuMvYUj3IbRLbQfAzLUz/Q3QlEhG0wymXzX9d5/HaLBkkSD27N/D/A3zg4lh7vq57MrdBbibhU5rcVrwhqHjGhxX5M1ChVUya1KzCZe0vYRL2l4CwI69Ow7q0XPCwgn8/fO/A65Hz9ArPFrUbmFNIKUsa3MWY2aP4c0Vb1IhqQLXpl/L7V1vp2Xdln6HZkpZYZ/HaIhqshCR3sA4IBmYqKpjCkw/EngBaAD8DFyhqtnetIeAc4Ak4BPgFlXVaMYbT7b9uu2gmsWLNy5mf/5+wHVDcEW7K4J990ejG4JalWvRp3Uf+rTuA8C+vH0s2rgoGM/UlVOZ+MVEwPXoGXpn6wlHnGAnWQ/TrB9csaEP1nxAjZQa3JZxG4O7DKZRjUZ+h2bKuaglCxFJBiYAZwLZwEIReU9VV4TM9gjwiqq+LCKnAaOBK0WkK9ANaOfNNxs4FZgZrXjLM1Vl3Y51B51vWLHV7eaU5BRObnwy/5fxf3Rv1p1uTbtRp0qdMo+xUoVKwR497+TOYI+egXhnrZvFlK+mAAR79AwcfZzc+GSqVKxS5jGXF6rKtNXTGD17NHPWz6F+1fqM7DmSv5z8F1/+1yY+RfPIohOwRlXXAojIZOB8IDRZtAH+zxueAbzjDStQGUgBBKgI/BjFWMuVfM3nyy1fHnSOIHtnNuC+aLs17cblJ1xOj2Y96Ni4Y0x+0Yb26Pnnk/8M4BLeD78lvLvX3A381qNnIHnEY4+ehyMvP483v3qTMXPGsOzHZTSr1Ywnej/BdSddFxPFhkx8kWi17IjIxUBvVR3gPb8S6KyqN4fM8zowX1XHiciFwFtAfVXdJiKPAANwyWK8qg4rZBsDgYEAqampHSZPnnzY8ebk5FC9evXDXj5acnJySKmawqpdq1i+YznLdizjq51fkZOXA0D9lPqcUOuE4KNFtRYkS/SbcMpif+3cv5Mvd3zJ8p3LWb5jOat2rSJP8wBoUa0FJ9T87XWnVk4ts7gOR2nGlZufy4ebP+Sf6//Jxr0bObLqkfRr2o8zjjij2JctJ8L+Kk3xGFfPnj0Xq2rYroP9PsF9GzBeRK4BPgM2AAdEpBVwHJDmzfeJiPRQ1VmhC6vqs8CzAB07dtTMzMzDDmTmzJmUZPnSFFru8f3V7/PN7m/Yd2AfAMfVP45L210abN/3q9xjWe2vvvQNDu/Zv4cFGxa4k/TrZzNj3Qze2/QeAE1rNqXHkT04Yu8RXNfpupjr0bM09tfOfTt5etHTPPb5Y2zO2czJjU9mfPfxnH/s+Yf9WmPpfR/K4iqesogrmsliAxDaPWWaNy5IVTcCFwKISHXgIlXdLiLXA5+rao437QMgAzgoWcSLQCH5WT/MYvb62Sz/cXnwstPW1Vpzc6eb6dHMNb8k8mWnVSpWOahHzwP5B1i+ZXlwv834bgabcjbx+OrHy12PnkXZunsr4+a7YkPb927njKPO4LU/vMZpLU6zq8hMmYlmslgItBaRFrgk0Q+4LHQGEakP/Kyq+cBQ3JVRAOuA60VkNK4Z6lTg8SjGWmZUlZU/rTzofMP3278H3G3+GWkZXJR5ET2a9aBTk04snLswJn/JxILkpGTSG6aT3jCdv3b+K6rKGx++wf5G+4P7t7AePQOVzGKpR8/CrNuxjkfmPsLEJRPZm7eXPxz3B4Z0G8LJTU72OzSTgKKWLFQ1T0RuBj7CXTr7gqp+JSIjgEWq+h6QCYwWEcU1Q93kLT4VOA1YjjvZ/aGq/jtasUZT7oFclmxaEvz1O2fdHLbt2Qa4DsR6NOvB4M6D6d6sOyc2PNG6yigBEaFxlcZkpmcGe/Tcunsrc9bPCe7/QI+egtAutV2wOa/HkT187dEz1MqtKxk7ZyyTlk8C4Ip2V3BH1zs4rsFxPkdmEllUv5lUdRowrcC44SHDU3GJoeByB4AbohlbtOzct5PPsz8PfjnNz57Pnrw9ALSu25q+x/QNfkG1qtvKmhGirEG1Blxw7AVccOwFgOtAb/6G+cH/z4tZLxbZo2dZ/n8WblgYLDZUuUJl/tLxL/yt69/KfTlOEx/sZ2wJbc7ZHLzcc/b62WRtziJf80mSJNo3bM/ADgPp0awH3Zp1o2H1hn6Hm/CqpVTjtBancVqL0wDXo+fSH5cGk0doj571q9Z3Ny56TVcnNTqJiskVSzWeQLGhMbPHMP276dSuXJthPYYxqPOghD4/ZWKPJYtiUFVW/7w6+MUy64dZfPvLtwBUqVCFLmlduLvH3XRv1p0uaV2saEw5UDG5Ih0bd6Rj447BHj1X/7z6oHNK73ztbv8J/I8DR4YZTTOonnJ4lyvmaz7vfP0OY2aPYeHGhTSs3pCHzniIGzreQM1KNUvzJRpTKixZFCEvP4+szVnB5DB73Wy27N4CQL0q9ejerDt/7vjnqP3qNGVPRDi63tEcXe9o+rfvD8CmXZsOOu8xctZI8jWfZHEn2APJo3uz7qRWTy1y/fsP7GfS8kmMnTOWr3/6Olhs6KoTr6Jyhcpl8RKNOSyWLPit8lv+2nwUDf6q/Dz7c3bv3w249uyzWv5Wt+HY+sfa+YYE0ahGIy5uczEXt7kY+P15qacXP83j893Feq3rtj6on6tWdVvxefbnvPz9y7z74bu8tfIt1u9cT7vUdrxx0Rtc3OZiu6jBlAsJ/y6dtnoa508+n7z8PCZ+5zq2C1wpc236tcFfjE1qNvE5UhMralaqSa+WvejVshfw2xVvgR8Z7656lxezXgRcd+879u0gX/PhB2iX2o6nz32aPq362I8NU64kfLJYsGEBefmuCwlBuOrEqxjXe1zMX4NvYkdKcgpd0rrQJa0Lt3W9jXzN5+ufvmb2utk8tegpsjZnAa4/rH7H9+Ps1mf7HLExxRc7/SH45KyWZ1GlQhWSSKJyhcrc0OEGSxSmRJIkiTYN2jCww0D+cfY/gu+vSsmVolrJzJhoSvhkEag01b9F/6gWOzeJyd5fJl4kfDMUlF2lKZOY7P1l4kHCH1kYY4wJz5KFMcaYsCxZGGOMCcuShTHGmLAsWRhjjAnLkoUxxpiwLFkYY4wJy5KFMcaYsCxZGGOMCcuShTHGmLAsWRhjjAnLkoUxxpiwLFkAzJtHs0mTYN48vyMx8cjeX8Vj+6t4ymh/Wa+z06ZB3760yM+HSZNg+nTIsN5BTSmZNw9OPZUW+/fDiy/CuedCw4Z+RxV09MaNMHmy32H8ZvNmeP99Whw4YPsrEoH9VQbfX5YsPv8cDhxAAHJzYeZMSxam9Lz+Ouzf795fBw64D3O1an5HFVQ/NxdSUvwO4ze7d//2ebT9FV7o/ory95cliz59YMwY2L8fKlSAzEy/IzLxZNEiAPKTkkiqVAk+/jimfozMnTmTzFh6z8+bB6efTv6+fba/IhG6v1JSovr9ZecsMjLgo4/Iq1IFjj0WunTxOyITLz77zB253nQT3/fvb02ckcjIgOnTbX9Fqgz3lyULgJ49WXvDDbB0KXz4od/RmHigCkOHQuPG8PDDrLv8cvvii1RGhu2v4iij/WXJwrPp7LPhqKPcBzw/3+9wTHn3/vswdy7cey9UqeJ3NMaUmCULj1asCA884I4upkzxOxxTnh04AHfdBa1bw7XX+h2NMaXCkkWofv2gXTu4+253wtuYw/HGG/Dll+7HR8WKfkdjTKmwZBEqKQlGjYJvv4UXXvA7GlMe5ebC8OHQvj388Y9+R2NMqbFkUdDZZ0O3bnD//fDrr35HY8qb556D775zPzqS7ONl4oe9mwsScfddbNoE48f7HY0pT3bvdk1Pp54KZ53ldzTGlCpLFoXp3t0dYYwZA9u3+x2NKS/GjYMff4TRo92PDmPiSFSThYj0FpFVIrJGRIYUMv1IEZkuIstEZKaIpIVMayYiH4vIShFZISLNoxnr74waBb/8Ag8/XKabNeXUzz/DQw9B3752f4CJS1FLFiKSDEwA+gBtgEtFpE2B2R4BXlHVdsAIYHTItFeAh1X1OKATsCVasRbqxBPh0kvh8cddZ13GFGXsWNi5Ex580O9IjImKaB5ZdALWqOpaVc0FJgPnF5inDfCpNzwjMN1LKhVU9RMAVc1R1bI/2zxihLu6ZeTIMt+0KUc2bIAnnoArroC2bf2OxpioiGayaAKsD3me7Y0LtRS40Bv+A1BDROoBRwPbReRfIvKFiDzsHamUrVatYMAAeOYZWLu2zDdvyokHHnA34t1/v9+RGBM1oqrRWbHIxUBvVR3gPb8S6KyqN4fM0xgYD7QAPgMuAtoCZwDPA+2BdcA/gWmq+nyBbQwEBgKkpqZ2mFyCfuZzcnKoXr3678an/PQTna+4gq2nnMLXd9112Osv7bj8ZnE5VbKz6XT11Ww4/3zWDBoUM3FFyuIqnniMq2fPnotVtWPYGVU1Kg8gA/go5PlQYGgR81cHsr3hLsD/QqZdCUwoansdOnTQkpgxY8ahJ955p6qI6rJlJdrG4SgyLh9ZXJ5+/VSrVlXdvLnI2Wx/FY/FVTwliQtYpBF8p0ezGWoh0FpEWohICtAPeC90BhGpLyKBGIYCL4QsW1tEGnjPTwNWRDHWot15J9SqBcOG+RaCiUFZWa5q2q23Qmqq39EYE1VRSxaqmgfcDHwErASmqOpXIjJCRPp6s2UCq0TkGyAVeNBb9gBwGzBdRJYDAjwXrVjDqlMH7rgD/v1vmDPHtzBMjLnrLvfeuO02vyMxJuqiWilPVacB0wqMGx4yPBWYeohlPwHaRTO+Yhk0yF3xMnQo/O9/dtNVovvsM/jgA3dvRe3afkdjTNTZHdyRqlYN7rkHZs2yAkmJLrSw0c03h5/fmDhgyaI4BgxwBZLuussKJCWy//zHChuZhGPJojhSUtyNellZViApUeXnux8LrVpZYSOTUCxZFNell7oCSffcYwWSEtEbb8Dy5e6ufitsZBKIJYviSkpy/f+sWWMFkhJNbq77kZCeboWNTMIJmyxE5K8iUqcsgik3zjnHFUgaMcIKJCWSiRNdYaPRo62wkUk4kbzjU4GFIjLF63LcrhkVcV8YGzdagaREsXu3+3FwyilW2MgkpLDJQlXvBlrj+mq6BlgtIqNEpGWUY4ttPXpYgaREYoWNTIKL6Fja6z9ks/fIA+oAU0XkoSjGFvsefNAKJCWCQGGj886Drl39jsYYX0RyzuIWEVkMPATMAU5Q1T8DHXC9xCau9HQrkJQIrLCRMREdWdQFLlTVs1T1TVXdD6Cq+cC5UY2uPLACSfEtUNjo8svhhBP8jsYY30SSLD4Afg48EZGaItIZQFVXRiuwciNQIOnZZ61AUjyywkbBdkLSAAAe2ElEQVTGAJEli6eAnJDnOd44E3DPPVChguv+wcSP1avd5bIDB7puXoxJYJEkC/FOcAPB5qeo9lZb7jRu7HqlnTTJ3d1r4sPw4VCpEtx9t9+RGOO7SJLFWhEZJCIVvcctgLW3FHTnnVCzphVIiheBwkaDB0PDhn5HY4zvIkkWNwJdgQ1ANtAZr+61CVGnjksY//6365HUlG+Bwka33+53JMbEhEhuytuiqv1U9QhVTVXVy1R1S1kEV+4MGuTKaw4d6moemPIpUNhoyBArbGSMJ+y5BxGpDFwHHA9UDoxX1f5RjKt8qlbNtXPfdBN89BH07u13RKa4rLCRMYWKpBnqVaAhcBbwPyAN2BXNoMq1AQOgRQv3hWMFksqfQGGj4cOhalW/ozEmZkSSLFqp6j3AblV9GTgHd97CFCYlxV2bn5UFb77pdzSmOEILG/W3A2djQkWSLAIVfraLSFugFnBE9EKKA5de6u72vftuK5BUngQKGz3wgBU2MqaASJLFs149i7uB94AVwNioRlXeJSXBqFGuQNKLL/odjYlEaGGjP/3J72iMiTlFnuAWkSRgp6r+AnwG2G2skTrnHNdD6f33w5VXQpUqfkdkihIobDRtmhU2MqYQRX4qvLu17yijWOKLiKt1YQWSYl9oYSO7gs2YQkXyE+q/InKbiDQVkbqBR9Qjiwc9ekCfPq5gjhVIil1PPGGFjYwJI5JkcQlwE64ZarH3WBTNoOLKqFGuQNIjj/gdiSnMzz+7ehVW2MiYIkVyB3eLQh527iJS6enQrx889pgVSIpFDz1khY2MiUAkd3BfVdh4VX2l9MOJUw88AFOnui+kJ5/0OxoTsHGjq61thY2MCSuSZqiTQx49gPuAvlGMKf60agXXXQfPPOOuuDGx4YEHIC/PChsZE4FImqH+GvK4HjgJqB790OLM8OGQnGwFkmLFmjXuctkbbrDCRsZE4HAuKN8NtCjtQOJeoEDSa69ZgaRYMHy465rFChsZE5GwyUJE/i0i73mP94FVwNvRDy0OBQok2ReUv7KyXNceVtjImIhFUh419JrPPOAHVc2OUjzxrW5duOMOV01v7ly7VNMvw4ZZYSNjiimSZqh1wHxV/Z+qzgG2iUjzqEYVz265xQok+WnWLNelhxU2MqZYIkkWbwKhhRkOeOPCEpHeIrJKRNaIyJBCph8pItNFZJmIzBSRtALTa4pItojET38Z1aq5Dus++8wVSDJlJ1DYqFEjK2xkTDFFkiwqqGpu4Ik3nBJuIRFJBiYAfYA2wKUi0qbAbI8Ar6hqO2AEMLrA9Adwd47Hl+uvdwWS7rrLCiSVpf/8B+bMcVekWWEjY4olkmSxVUSC91WIyPnATxEs1wlYo6prvQQzGTi/wDxtgE+94Rmh00WkA5AKfBzBtsqXlBTXcd0XX1iBpLJihY2MKZFIksWNwF0isk5E1gF3AjdEsFwTYH3I82xvXKilwIXe8B+AGiJSz+sa/VHgtgi2Uz4FCiTdc48VSCoLVtjImBIRjfAkq4hUB1DVnAjnvxjoraoDvOdXAp1V9eaQeRoD43H3bXwGXAS0Ba4AqqrqQyJyDdAxdLmQ5QcCAwFSU1M7TJ48OaLXUpicnByqVy/bew3rzZ3LCcOGser//o9N550XM3FFojzFJfv30+maa8irWpXFzzzjS72K8rS/YoHFVTwliatnz56LVbVj2BlVtcgHMAqoHfK8DjAyguUygI9Cng8FhhYxf3Ug2xuehLsK63tck9dOYExR2+vQoYOWxIwZM0q0/GHJz1ft2lW1cWPVX38tdBZf4opAuYprwgRVUJ02rczjCShX+ysGWFzFU5K4gEUa5vtcVSNqhuqjqsFiDOqq5p0dwXILgdYi0kJEUoB+uLKsQSJS32tyCiSTF7xtXK6qzVS1Oa4p6hVV/d3VVOWeiKuhYAWSomf3btf01KOHFTYypgQiSRbJIlIp8EREqgCVipgfAFXNA24GPgJWAlNU9SsRGRFywjwTWCUi3+BOZideP9GnnGIFkqLpiSdc1/BW2MiYEonkDu5JwHQReREQ4Brg5UhWrqrTgGkFxg0PGZ4KTA2zjpeAlyLZXrn14INw0kmuQNLIkX5HEz9++cXVqzj3XOjWze9ojCnXIul1diwwEjgOOAZ3pHBklONKLO3b/1Yg6ccf/Y4mfowdCzt2WGEjY0pBpJeF/Ago8EfgNFyzkilNI0bAvn12ZFFaNm50TVCXXQbt2vkdjTHl3iGThYgcLSL3isjXwJO4q5NEVXuqqp2NLW2tW8OAAVYgqbQ88IC7f2XECL8jMSYuFHVk8TXuKOJcVe2uqk/i+oUy0XLPPVYgqTQEChsNHGiFjYwpJUUliwuBTcAMEXlORE7HneA20dKkyW8Fkr780u9oyi8rbGRMqTtkslDVd1S1H3Asrt+mwcARIvKUiPQqqwATTqBA0rBhfkdSLlVfs8Z17XHLLa53WWNMqYjkaqjdqvq6qp4HpAFf4PqHMtEQKJD03nswb57f0ZQ7LSZOdIWN7rjD71CMiSvF6iRHVX9R1WdV9fRoBWSwAkmHa9Ys6s2f747OrLCRMaWq7HtUM+EFCiT973/UWbjQ72jKB6+w0b569eCvf/U7GmPijiWLWOUVSDpq4kQrkBSJadNgzhx+uOoqK2xkTBRYsohVXoGkGqtXw9Qie0QxgcJGLVuy6exI+rg0xhSXJYtYduml5LRo4S4BtQJJhzZ5MixbBg88gFaIpLszY0xxWbKIZcnJfDdgAKxeDS+95Hc0sSk3153fOfFEuOQSv6MxJm5Zsohx2zIyICMD7rsP9uzxO5zY8/zzsHYtjBrlSwU8YxKFfbpinQiMGeM6xpswwe9oYsvu3a7vpx49XE0QY0zUWLIoD045xVV5Gz3adbltnCeftMJGxpQRSxblxahR8PPPrkCScYWNxo61wkbGlBFLFuVF+/buBK4VSHIeesgKGxlThixZlCcPPAB799oX5KZNMG6cFTYypgxZsihPWreG666Dp5+G77/3Oxr/BAob3X+/35EYkzAsWZQ3w4cndoGkb7+F555zhY1atvQ7GmMShiWL8qZJE9dR3quvJmaBpOHDoWJFK2xkTBmzZFEeDRniCiQl2hfm0qXw+usweLAVNjKmjFmyKI/q1oXbb4d334XPP/c7mrIzbJirU3H77X5HYkzCsWRRXiVagaTZs+E//3FHVXXq+B2NMQnHkkV5Vb26a4aaORM++cTvaKJL1SWJRo2ssJExPrFkUZ4NHAjNm7uji3gukOQVNmL4cCtsZIxPLFmUZ16BJJYsgbfe8jua6AgpbMR11/kdjTEJy5JFeXfZZdC2rWuSysvzO5rSF1LYiIoV/Y7GmIRlyaK8S0523X988038FUiywkbGxAxLFvHgvPPis0CSFTYyJmbYJzAeiLiaDhs2wD/+4Xc0pePXX935mO7drbCRMTHAkkW8OPVUVyBp1Kj4KJD0xBNW2MiYGGLJIp4ECiQ9+qjfkZRMoLDROee4IwtjjO8sWcSTQIGkv/+9fBdIChQ2GjXK70iMMZ6oJgsR6S0iq0RkjYgMKWT6kSIyXUSWichMEUnzxqeLyDwR+cqbZpfCRCpQIKm8ftEGChtdeqkVNjImhkQtWYhIMjAB6AO0AS4VkTYFZnsEeEVV2wEjgNHe+F+Bq1T1eKA38LiI1I5WrHElUCDpqafKZ4GkQGGjESP8jsQYEyKaRxadgDWqulZVc4HJwPkF5mkDfOoNzwhMV9VvVHW1N7wR2AI0iGKs8SVQIOm++/yOpHgChY2uv94KGxkTY0Sj1GOpiFwM9FbVAd7zK4HOqnpzyDyvA/NVdZyIXAi8BdRX1W0h83QCXgaOV9X8AtsYCAwESE1N7TB58uTDjjcnJ4fq1asf9vLRcrhxHfX00zSdMoWFzz/Pry1axExcRTlu5Ejqz57N/EmTyK1XL2biKg0WV/FYXMVTkrh69uy5WFU7hp1RVaPyAC4GJoY8vxIYX2CexsC/gC+AcUA2UDtkeiNgFdAl3PY6dOigJTFjxowSLR8thx3XTz+p1qypesEFpRpPQKnvr6wsVRHVIUNKtJq4+z9GmcVVPPEYF7BII/hOj2Yz1AagacjzNG9caKLaqKoXqmp7YJg3bjuAiNQE/gMMU9UEqvBTSurVgzvugHfeKR8FkoYNg1q1XMzGmJgTzWSxEGgtIi1EJAXoB7wXOoOI1BeRQAxDgRe88SnA27iT31OjGGN8u+UWOOKI2C+QFChsdOedVtjImBgVtWShqnnAzcBHwEpgiqp+JSIjRKSvN1smsEpEvgFSgQe98X8CTgGuEZEs75EerVjjVvXqriO+WC6QpOqSWaNGMGiQ39EYYw6hQjRXrqrTgGkFxg0PGZ4K/O7IQVVfA16LZmwJY+BAd0f3XXfBGWfEXod8H3zgjiz+8Q8rbGRMDIuxbw5T6gIFkhYvjr0CSaGFjQYM8DsaY0wRLFkkgssug+OPj70CSf/8Jyxd6pKZFTYyJqZZskgEycmu+49YKpC0f787n9KuHfTr53c0xpgwLFkkikCBpPvvj40CSc8/7+7YtsJGxpQL9ilNFIECSdnZ/hdICi1sdPbZ/sZijImIJYtEcuqpcNZZLmn4WSDpySdd77JW2MiYcsOSRaIZNQq2bfOvQNIvv8CYMVbYyJhyxpJFojnpJPjTn1yBpC1byn77Dz8M27fDgw+Gn9cYEzMsWSSiQIGksv7C3rQJHn/cXcp74ollu21jTIlE9Q5uv+3fv5/s7Gz27t0bdt5atWqxcuXKMoiqeIobV+XKlUlLS6NiUfctHH009O8PTz8Nt94KzZuXPNBIjBxphY2MKafiOllkZ2dTo0YNmjdvjoQ5kbpr1y5q1KhRRpFFrjhxqSrbtm0jOzubFuFqWAwfDq++6goklcW9F99+C88+a4WNjCmn4roZau/evdSrVy9soogXIkK9evUiOpIiLQ1uvtkljK++in5w997r7tK+557ob8sYU+riOlkACZMoAor1eocMcT3T3n139AICWLYMXn/ddZneqFF0t2WMiYq4TxamCPXqwe23uwJJ8+dHbztW2MiYcs+SRRRt27aN9PR00tPTadiwIU2aNAk+z83NjWgdf/7zn1m1alX0ghw8OLoFkubMgffft8JGxpRzcX2C+3DMWz+Pmd/PJLN5JhlNM0q0rnr16pGVlQXAfffdR/Xq1bntttsOmidY3/YQ/SM99dRT0T3xHmiGGjQI/vtfOPPM0lu3qmvqatjQChsZU84lTLIY/OFgsjZnHXL6gQMHyMnLYdmPy8jXfJIkiXap7ahVqdYhl0lvmM7jvR8vdixr1qyhb9++tG/fni+++IJPPvmE+++/nyVLlrBnzx4uueQShg93NaJ69erFU089Rdu2balfvz433ngjH3zwAVWrVuXdd9/liCOOKPb2f2fgQHeT3tChrkBSaZ3nscJGxsQNa4YKsWPvDvI1H4B8zWfH3uj1n/T1119z6623smLFCpo0acKYMWNYtGgRS5cu5ZNPPmHFihW/j2/HDk499VSWLl1KRkYGL7zwQukEU6mS6422NAskBQobHXUUXHdd6azTGOObhDmyCHcEsGvXLr7c/iWnv3I6uQdySUlOYdKFk0rcFHUoLVu2pGPHjsHnb7zxBs8//zx5eXls3LiRFStW0KZNm4OWqVKlCn369AGgQ4cOzJo1q/QCuvxyeOgh1yR1wQVQoYRvjUBho0mTXLU+Y0y5ljDJIhIZTTOYftX0UjtnUZRq1aoFh1evXs24ceNYsGABtWvX5oorrij0XomUkC/d5ORk8kqz6l1ysuv+44IL4OWXS3Y0YIWNjIk71gxVQEbTDIb2GBrVRFHQzp07qVGjBjVr1mTTpk189NFHZbbtg/TtC126uLu6I7mx71CssJExccc+yTHgpJNOok2bNhx77LFcddVVdOvWzZ9ASqNAUqCwUbduVtjImDhizVBl5L777gsOt2rVKnhJLbi7rl999dVCl/v444+Dl85u3749OL5fv370i0YTT2amK5A0ahQMGAA1axZv+UBhoylTrLCRMXHEjizM7x1ugaRAYaOzz7bCRsbEGUsW5vcCBZIefbR4BZIChY1GjYpebMYYX1iyMIULFEiK9It/0yYYNw4uvdQKGxkThyxZmMIFCiQ99RT88EP4+UeOhNxcK2xkTJyyZGEObfhwd5I65OR8odaudYWNBgyAVq3KJDRjTNmyZGEOLS0N/vpXeOUVKKT7kaDhw62wkTFxzpJFFJVGF+UAL7zwAps3b45ipEUIVyApUNho0CBo3LhsYzPGlBlLFgXNm+duTJs3r8SrCnRRnpWVxY033sitt94afJ5SjP6SfE0WgQJJb79deIGkQGGjO+8s+9iMMWUmcW7KGzwYsg7dRXmVAwcgJ8f9Us7Pd91UtGvnvggPJT0dHi9+F+UAL7/8MhMmTCA3N5euXbsyfvx48vPzufbaa8nKykJVGThwIDVr1iQrK4tLLrmEKlWqsGDBgmIlmlIxeLC72W7oUJg+/beb7QKFjUaNssJGxsS5xEkWkdixwyUKcH937Cg6WRymL7/8krfffpu5c+dSoUIFBg4cyOTJk2nZsiU//fQTy5cvB9wd28nJyUycOJHx48eTnp5e6rFEpLACSaoueVhhI2MSQuIkizBHAHt27aLGl1/C6ae7S0BTUlz32hml36Hgf//7XxYuXBjsonzPnj00bdqUs846i1WrVjFo0CDOOeccevXqRU5OTqlv/7AMHOhu0vMKJNVdsABmzYIJEyCkB11jTHyK6jkLEektIqtEZI2IDClk+pEiMl1ElonITBFJC5l2tYis9h5XRzPOoIwM18zywAPubxQSBbhSqv379w+ev1i1ahX33HMP9erVY9myZfTo0YMJEyZwww03RGX7h6VSJXcPxeLFMHUqRz33nCtsNGCA35EZY8pA1JKFiCQDE4A+QBvgUhFpU2C2R4BXVLUdMAIY7S1bF7gX6Ax0Au4VkbJpFM/IcL+eo5QoAM444wymTJnCTz/9BLirptatW8fWrVtRVf74xz8yYsQIlixZAkCNGjXYtWtX1OKJ2OWXw/HHw9VXU/3bb+HKK62wkTEJIppHFp2ANaq6VlVzgcnA+QXmaQN86g3PCJl+FvCJqv6sqr8AnwC9oxhrmTrhhBO49957OeOMM2jXrh29evXixx9/ZP369Zxyyimkp6dz7bXXMsrrauPaa69lwIABxb7kttQlJ7sEsWcPCq6yXilcNWaMiX2iqtFZscjFQG9VHeA9vxLorKo3h8zzOjBfVceJyIXAW0B94FqgsqqO9Oa7B9ijqo8U2MZAYCBAampqh8mTJx8UQ61atWgV4R3FBw4cIDk5+bBeazQdTlxr1qxhx47o1A9vNmkSLSZORID8pCS+79+fdZdfHpVtHY6cnByqV6/udxi/Y3EVj8VVPCWJq2fPnotVtWO4+fw+wX0bMF5ErgE+AzYAByJdWFWfBZ4F6Nixo2ZmZh40feXKlcFaEOHs2rUr4nnL0uHEVblyZdq3bx+dgCpVgkmTyN+3j6RKlTiqf3+OimKTXXHNnDmTgu+DWGBxFY/FVTxlEVc0m6E2AE1Dnqd544JUdaOqXqiq7YFh3rjtkSxrfOJdBPB9//5RvQjAGBNbonlksRBoLSItcF/0/YDLQmcQkfrAz6qaDwwFXvAmfQSMCjmp3cubXmyqiiRQxbZoNSseJCODdfv2xdQRhTEmuqJ2ZKGqecDNuC/+lcAUVf1KREaISF9vtkxglYh8A6QCD3rL/gw8gEs4C4ER3rhiqVy5Mtu2bSubL9AYoKps27aNypUr+x2KMSbORPWchapOA6YVGDc8ZHgqMPUQy77Ab0cahyUtLY3s7Gy2bt0adt69e/fG5JdsceOqXLkyaWlp4Wc0xphi8PsEd1RVrFiRFi1aRDTvzJkzo3dSuARiNS5jTGKxXmeNMcaEZcnCGGNMWJYsjDHGhBW1O7jLmohsBX4owSrqAz+VUjilyeIqHoureCyu4onHuI5U1QbhZoqbZFFSIrIoklvey5rFVTwWV/FYXMWTyHFZM5QxxpiwLFkYY4wJy5LFb571O4BDsLiKx+IqHoureBI2LjtnYYwxJiw7sjDGGBOWJQtjjDFhJXSyEJGmIjJDRFaIyFcicovfMQGISGURWSAiS7247vc7plAikiwiX4jI+37HEiAi34vIchHJEpFFfscTICK1RWSqiHwtIitFJCb6dReRY7x9FXjsFJHBMRDXrd57/ksReUNEYqJ3TxG5xYvpK7/3k4i8ICJbROTLkHF1ReQTEVnt/a1T1DoOR0InCyAP+JuqtgG6ADeJSBufYwLYB5ymqicC6UBvEenic0yhbsF1Ox9reqpqeoxdBz8O+FBVjwVOJEb2m6qu8vZVOtAB+BV428+YRKQJMAjoqKptgWRcHRxfiUhb4HqgE+5/eK6IRFavOTpeAnoXGDcEmK6qrYHp3vNSldDJQlU3qeoSb3gX7oPcxN+oQJ0c72lF7xETVyKISBpwDjDR71hinYjUAk4BngdQ1VyvEmSsOR34VlVL0gNCaakAVBGRCkBVYKPP8QAcB8xX1V+9Oj3/Ay70KxhV/QwoWN/nfOBlb/hl4ILS3m5CJ4tQItIcaA/M9zcSx2vqyQK2AJ+oakzEBTwO3AHk+x1IAQp8LCKLRWSg38F4WgBbgRe9ZruJIlLN76AK0Q94w+8gVHUD8AiwDtgE7FDVj/2NCoAvgR4iUk9EqgJnc3DZ51iQqqqbvOHNuGJypcqSBSAi1YG3gMGqutPveABU9YDXRJAGdPIOhX0lIucCW1R1sd+xFKK7qp4E9ME1J57id0C4X8knAU95deZ3E4XmgZIQkRSgL/BmDMRSB/cLuQXQGKgmIlf4GxWo6kpgLPAx8CGQBRzwNagiqLsfotRbIhI+WYhIRVyimKSq//I7noK8ZosZ/L6N0g/dgL4i8j0wGThNRF7zNyTH+1WKqm7Btb138jciALKB7JCjwqm45BFL+gBLVPVHvwMBzgC+U9Wtqrof+BfQ1eeYAFDV51W1g6qeAvwCfON3TAX8KCKNALy/W0p7AwmdLEREcO3JK1X1737HEyAiDUSktjdcBTgT+NrfqEBVh6pqmqo2xzVdfKqqvv/yE5FqIlIjMAz0wjUd+EpVNwPrReQYb9TpwAofQyrMpcRAE5RnHdBFRKp6n83TiZELAkTkCO9vM9z5itf9jeh33gOu9oavBt4t7Q3EdVnVCHQDrgSWe+cHAO7yaof7qRHwsogk4xL6FFWNmctUY1Aq8Lb7fqEC8LqqfuhvSEF/BSZ5zT1rgWt9jifIS6xnAjf4HQuAqs4XkanAEtyVil8QO91rvCUi9YD9wE1+XqggIm8AmUB9EckG7gXGAFNE5DpcqYY/lfp2rbsPY4wx4SR0M5QxxpjIWLIwxhgTliULY4wxYVmyMMYYE5YlC2OMMWFZsjDlnojkeH+bi8hlpbzuuwo8n1ua6y9tInKNiIz3Ow4TfyxZmHjSHChWsvA6rCvKQclCVWPijuJo8e7tMeZ3LFmYeDIG1+FbllcXIVlEHhaRhSKyTERuABCRTBGZJSLv4d1RLSLveJ0QfhXoiFBExuB6QM0SkUneuMBRjHjr/tKro3FJyLpnhtSwmOTdjXwQb56x4uqWfCMiPbzxBx0ZiMj7IpIZ2La3za9E5L8i0slbz1oR6Ruy+qbe+NUicm/Iuq7wtpclIs8EEoO33kdFZCkQE/U2TAxSVXvYo1w/gBzvbybwfsj4gcDd3nAlYBGuk7pMXKd+LULmrev9rYLrKqRe6LoL2dZFwCe4mgupuK4qGnnr3oHrADIJmIfr5LBgzDOBR73hs4H/esPXAOND5nsfyPSGFejjDb+N69iuIq7GQlbI8puAeiGvpSOum+1/AxW9+f4BXBWy3j/5/X+0R2w/Er27DxPfegHtRORi73ktoDWQCyxQ1e9C5h0kIn/whpt6820rYt3dgTdU9QCuE7f/AScDO711ZwN43cg0B2YXso5Ax5WLvXnCycX1egqwHNinqvtFZHmB5T9R1W3e9v/lxZqHK3K00DvQqcJvnc0dwHWmacwhWbIw8UyAv6rqRweNdM06uws8PwPIUNVfRWQmUJJynvtChg9w6M/ZvkLmyePg5uHQOParaqB/nvzA8qqaX+DcS8E+fBS3L15W1aGFxLHXS3rGHJKdszDxZBdQI+T5R8CfvW7oEZGjD1F8qBbwi5cojsWV2A3YH1i+gFnAJd55kQa4ingLSuE1fA+ki0iSiDTl8LpaP1NcTeYquIppc3ClNi8O6T21rogcWQrxmgRhRxYmniwDDngnal/C1b9uDizxTjJvpfBykx8CN4rISmAV8HnItGeBZSKyRFUvDxn/Nu5k8FLcL/c7VHWzl2xKYg7wHe7E+0pcD6zFtQDXrJQGvKaqiwBE5G5cNcEkvN5TcT2UGhOW9TprjDEmLGuGMsYYE5YlC2OMMWFZsjDGGBOWJQtjjDFhWbIwxhgTliULY4wxYVmyMMYYE9b/A3p/aG2JYhlSAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Loss by iteration"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Accuracy by time"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get time\n",
+    "time_proxy = %sql SELECT metrics_elapsed_time FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "time = np.array(time_proxy).reshape(num_points)/60.0\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by time')\n",
+    "plt.xlabel('Time (min)')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(time, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(time, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Time to achieve a given accuracy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#plot\n",
+    "plt.title('Iris time by validation accuracy')\n",
+    "plt.xlabel('Accuracy')\n",
+    "plt.ylabel('Time (min)')\n",
+    "plt.grid(True)\n",
+    "plt.plot(train_accuracy, time, 'g.-', label='Train')\n",
+    "plt.plot(test_accuracy, time, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"pred_prob\"></a>\n",
+    "# 2. Predict probabilities\n",
+    "Predict with probabilities for each class:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "90 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>class_name</th>\n",
+       "        <th>class_value</th>\n",
+       "        <th>prob</th>\n",
+       "        <th>rank</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9294206</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.06840064</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>9</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.002178827</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.95446134</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.044602826</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>12</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0009358918</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9657251</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.033696607</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>18</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00057823793</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9846532</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.015122785</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>23</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.00022406144</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9215944</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.07646777</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>24</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0019379102</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9169111</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.08092835</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>26</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0021605128</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.92948824</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.06870209</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>31</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0018096273</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.9864705</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.013397024</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>33</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0001324016</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.94184655</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.056837272</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>38</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0013162153</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8235848</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.10498193</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>51</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.07143335</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.60921746</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.33687788</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>54</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.05390459</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.8232913</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.09234422</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>66</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.084364414</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5667156</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.41627046</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>73</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.017013948</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.584179</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.3888702</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>78</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.026950791</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7245893</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.17719878</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>81</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09821194</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7691566</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.12076647</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>83</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.11007695</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.7436626</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.16565561</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>93</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.09068175</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.72709775</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.1566202</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>94</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.11628201</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.727868</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.15816915</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>96</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.11396286</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.66456306</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.2604218</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>99</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.0750151</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7876302</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.20347802</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>102</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.008891817</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5265808</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.45525447</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>111</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.018164707</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7262987</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.2655178</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>117</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.008183556</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8544553</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.1435273</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>123</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0020173935</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.5349145</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.44564962</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>127</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.019435901</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.545205</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.43319198</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>128</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.021603057</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8042598</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.19291137</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>131</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.0028288176</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.8229959</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.17136817</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>135</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.005635898</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7876302</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.20347802</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>143</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.008891817</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-virginica</td>\n",
+       "        <td>0.7896347</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-versicolor</td>\n",
+       "        <td>0.20416242</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>145</td>\n",
+       "        <td>class_text</td>\n",
+       "        <td>Iris-setosa</td>\n",
+       "        <td>0.006202857</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(9, u'class_text', u'Iris-setosa', 0.9294206, 1),\n",
+       " (9, u'class_text', u'Iris-versicolor', 0.06840064, 2),\n",
+       " (9, u'class_text', u'Iris-virginica', 0.002178827, 3),\n",
+       " (12, u'class_text', u'Iris-setosa', 0.95446134, 1),\n",
+       " (12, u'class_text', u'Iris-versicolor', 0.044602826, 2),\n",
+       " (12, u'class_text', u'Iris-virginica', 0.0009358918, 3),\n",
+       " (18, u'class_text', u'Iris-setosa', 0.9657251, 1),\n",
+       " (18, u'class_text', u'Iris-versicolor', 0.033696607, 2),\n",
+       " (18, u'class_text', u'Iris-virginica', 0.00057823793, 3),\n",
+       " (23, u'class_text', u'Iris-setosa', 0.9846532, 1),\n",
+       " (23, u'class_text', u'Iris-versicolor', 0.015122785, 2),\n",
+       " (23, u'class_text', u'Iris-virginica', 0.00022406144, 3),\n",
+       " (24, u'class_text', u'Iris-setosa', 0.9215944, 1),\n",
+       " (24, u'class_text', u'Iris-versicolor', 0.07646777, 2),\n",
+       " (24, u'class_text', u'Iris-virginica', 0.0019379102, 3),\n",
+       " (26, u'class_text', u'Iris-setosa', 0.9169111, 1),\n",
+       " (26, u'class_text', u'Iris-versicolor', 0.08092835, 2),\n",
+       " (26, u'class_text', u'Iris-virginica', 0.0021605128, 3),\n",
+       " (31, u'class_text', u'Iris-setosa', 0.92948824, 1),\n",
+       " (31, u'class_text', u'Iris-versicolor', 0.06870209, 2),\n",
+       " (31, u'class_text', u'Iris-virginica', 0.0018096273, 3),\n",
+       " (33, u'class_text', u'Iris-setosa', 0.9864705, 1),\n",
+       " (33, u'class_text', u'Iris-versicolor', 0.013397024, 2),\n",
+       " (33, u'class_text', u'Iris-virginica', 0.0001324016, 3),\n",
+       " (38, u'class_text', u'Iris-setosa', 0.94184655, 1),\n",
+       " (38, u'class_text', u'Iris-versicolor', 0.056837272, 2),\n",
+       " (38, u'class_text', u'Iris-virginica', 0.0013162153, 3),\n",
+       " (51, u'class_text', u'Iris-versicolor', 0.8235848, 1),\n",
+       " (51, u'class_text', u'Iris-virginica', 0.10498193, 2),\n",
+       " (51, u'class_text', u'Iris-setosa', 0.07143335, 3),\n",
+       " (54, u'class_text', u'Iris-versicolor', 0.60921746, 1),\n",
+       " (54, u'class_text', u'Iris-virginica', 0.33687788, 2),\n",
+       " (54, u'class_text', u'Iris-setosa', 0.05390459, 3),\n",
+       " (66, u'class_text', u'Iris-versicolor', 0.8232913, 1),\n",
+       " (66, u'class_text', u'Iris-virginica', 0.09234422, 2),\n",
+       " (66, u'class_text', u'Iris-setosa', 0.084364414, 3),\n",
+       " (73, u'class_text', u'Iris-virginica', 0.5667156, 1),\n",
+       " (73, u'class_text', u'Iris-versicolor', 0.41627046, 2),\n",
+       " (73, u'class_text', u'Iris-setosa', 0.017013948, 3),\n",
+       " (78, u'class_text', u'Iris-versicolor', 0.584179, 1),\n",
+       " (78, u'class_text', u'Iris-virginica', 0.3888702, 2),\n",
+       " (78, u'class_text', u'Iris-setosa', 0.026950791, 3),\n",
+       " (81, u'class_text', u'Iris-versicolor', 0.7245893, 1),\n",
+       " (81, u'class_text', u'Iris-virginica', 0.17719878, 2),\n",
+       " (81, u'class_text', u'Iris-setosa', 0.09821194, 3),\n",
+       " (83, u'class_text', u'Iris-versicolor', 0.7691566, 1),\n",
+       " (83, u'class_text', u'Iris-virginica', 0.12076647, 2),\n",
+       " (83, u'class_text', u'Iris-setosa', 0.11007695, 3),\n",
+       " (93, u'class_text', u'Iris-versicolor', 0.7436626, 1),\n",
+       " (93, u'class_text', u'Iris-virginica', 0.16565561, 2),\n",
+       " (93, u'class_text', u'Iris-setosa', 0.09068175, 3),\n",
+       " (94, u'class_text', u'Iris-versicolor', 0.72709775, 1),\n",
+       " (94, u'class_text', u'Iris-setosa', 0.1566202, 2),\n",
+       " (94, u'class_text', u'Iris-virginica', 0.11628201, 3),\n",
+       " (96, u'class_text', u'Iris-versicolor', 0.727868, 1),\n",
+       " (96, u'class_text', u'Iris-virginica', 0.15816915, 2),\n",
+       " (96, u'class_text', u'Iris-setosa', 0.11396286, 3),\n",
+       " (99, u'class_text', u'Iris-versicolor', 0.66456306, 1),\n",
+       " (99, u'class_text', u'Iris-setosa', 0.2604218, 2),\n",
+       " (99, u'class_text', u'Iris-virginica', 0.0750151, 3),\n",
+       " (102, u'class_text', u'Iris-virginica', 0.7876302, 1),\n",
+       " (102, u'class_text', u'Iris-versicolor', 0.20347802, 2),\n",
+       " (102, u'class_text', u'Iris-setosa', 0.008891817, 3),\n",
+       " (111, u'class_text', u'Iris-virginica', 0.5265808, 1),\n",
+       " (111, u'class_text', u'Iris-versicolor', 0.45525447, 2),\n",
+       " (111, u'class_text', u'Iris-setosa', 0.018164707, 3),\n",
+       " (117, u'class_text', u'Iris-virginica', 0.7262987, 1),\n",
+       " (117, u'class_text', u'Iris-versicolor', 0.2655178, 2),\n",
+       " (117, u'class_text', u'Iris-setosa', 0.008183556, 3),\n",
+       " (123, u'class_text', u'Iris-virginica', 0.8544553, 1),\n",
+       " (123, u'class_text', u'Iris-versicolor', 0.1435273, 2),\n",
+       " (123, u'class_text', u'Iris-setosa', 0.0020173935, 3),\n",
+       " (127, u'class_text', u'Iris-virginica', 0.5349145, 1),\n",
+       " (127, u'class_text', u'Iris-versicolor', 0.44564962, 2),\n",
+       " (127, u'class_text', u'Iris-setosa', 0.019435901, 3),\n",
+       " (128, u'class_text', u'Iris-virginica', 0.545205, 1),\n",
+       " (128, u'class_text', u'Iris-versicolor', 0.43319198, 2),\n",
+       " (128, u'class_text', u'Iris-setosa', 0.021603057, 3),\n",
+       " (131, u'class_text', u'Iris-virginica', 0.8042598, 1),\n",
+       " (131, u'class_text', u'Iris-versicolor', 0.19291137, 2),\n",
+       " (131, u'class_text', u'Iris-setosa', 0.0028288176, 3),\n",
+       " (135, u'class_text', u'Iris-virginica', 0.8229959, 1),\n",
+       " (135, u'class_text', u'Iris-versicolor', 0.17136817, 2),\n",
+       " (135, u'class_text', u'Iris-setosa', 0.005635898, 3),\n",
+       " (143, u'class_text', u'Iris-virginica', 0.7876302, 1),\n",
+       " (143, u'class_text', u'Iris-versicolor', 0.20347802, 2),\n",
+       " (143, u'class_text', u'Iris-setosa', 0.008891817, 3),\n",
+       " (145, u'class_text', u'Iris-virginica', 0.7896347, 1),\n",
+       " (145, u'class_text', u'Iris-versicolor', 0.20416242, 2),\n",
+       " (145, u'class_text', u'Iris-setosa', 0.006202857, 3)]"
+      ]
+     },
+     "execution_count": 28,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_predict;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict('iris_model',      -- model\n",
+    "                                   'iris_test',       -- test_table\n",
+    "                                   'id',              -- id column\n",
+    "                                   'attributes',      -- independent var\n",
+    "                                   'iris_predict',    -- output table\n",
+    "                                   'prob'             -- response type\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM iris_predict ORDER BY id, rank;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"warm_start\"></a>\n",
+    "# 3. Warm start\n",
+    "Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2,                    -- metrics compute frequency\n",
+    "                                TRUE,                 -- warm start\n",
+    "                               'Sophie L.',           -- name \n",
+    "                               'Simple MLP for iris dataset'  -- description\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In the summary table and plots below note that the loss and accuracy values pick up from where the previous run left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>1</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>Sophie L.</td>\n",
+       "        <td>Simple MLP for iris dataset</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:30:10.030573</td>\n",
+       "        <td>2021-03-06 00:30:11.397745</td>\n",
+       "        <td>[0.810183048248291, 0.952910184860229, 1.08659505844116, 1.22299003601074, 1.36708807945251]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.991666674614</td>\n",
+       "        <td>0.139637470245</td>\n",
+       "        <td>[0.975000023841858, 0.975000023841858, 0.991666674613953, 0.991666674613953, 0.991666674613953]</td>\n",
+       "        <td>[0.21851558983326, 0.192899897694588, 0.170841887593269, 0.153602108359337, 0.139637470245361]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.162758678198</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.239112228155136, 0.212523519992828, 0.192814856767654, 0.176179185509682, 0.162758678197861]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 1, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, u'Sophie L.', u'Simple MLP for iris dataset', u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 30, 10, 30573), datetime.datetime(2021, 3, 6, 0, 30, 11, 397745), [0.810183048248291, 0.952910184860229, 1.08659505844116, 1.22299003601074, 1.36708807945251], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.991666674613953, 0.139637470245361, [0.975000023841858, 0.975000023841858, 0.991666674613953, 0.991666674613953, 0.991666674613953], [0.21851558983326, 0.192899897694588, 0.170841887593269, 0.153602108359337, 0.139637470245361], 0.966666638851166, 0.162758678197861, [0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.239112228155136, 0.212523519992828, 0.192814856767654, 0.176179185509682, 0.162758678197861], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzs3XWcVNX7wPHPs7uUpITkEsJSSyzNIilIiNIg3SAgLfLDQgX9KqFIh3RISYiEiEuXdC1d0i2xIrnn98e56LoCG+wwG8/b17yce+fGs3eGeeacc885YoxBKaWUehoPdweglFIq+tNkoZRSKkyaLJRSSoVJk4VSSqkwabJQSikVJk0WSimlwqTJws1EpImI/PIcz5dVRIyIeDnLy0SkRXi2jcS5PhCR8c8S7xOO21JE1kf1cZ9wrme6BqGO5ZLrEcEYnvh+K/U0ov0sXEtETgJtjTG/ujsWsF9+wAkgnjHmQRRuWx6YbozJFBVxhnGulthrWvo5nCsr4bwG0eG4oc7xKZDDGNPUFceP7UTEAD7GmKPPcIzV2H8Xbv2REBW0ZOFGUfFrVcVN+tmJ3tdArFj1/Rqr/pjozqk+2SAiQ0TkKvBpyCoV5wM2REQuichNEdkrIvkec5y3RGRbqHU9RGSR87y6iOx0jnHa+YX5pJhWi0hb57mniAwWkSsichyoHmrbViJyQERuichxEXnbWZ8YWAZkEJEg55FBRD4Vkekh9q8hIoEict05b54Qr50UkV4iskdEbojIbBFJGM7rWkpEtjr7bRWRUqGu+XEn5hMi0sRZn0NE1jj7XBGR2WGcprWInBOR8yLSyzlGOhG5LSKpQpyvsIhcFpF4j4kz5PVY6/z/unO9/J1tWjvX+A8RWS4iWULsb0TkHRE5Ahxx1g113uObIrJdRMo466sCHwBvOcff7awP+X57iMhHIvK785mbKiLJndceVb+1EJFTzjX6MDzvx+M45yjiPG/iHNvXWW4jIgud58VFZJPzGTkvIiNEJH4Y18CISCcROeK8z/1FJLuIbHSuy5yQxwgV12M/ByLy6P3Z7Vy/t0TkRRFZ7Ly/fzjPM4U41moR+UJENgC3gWlAGWCEc4wRkb1+0YIxRh8ufAAngUrO85bAA6AL4AUkctatd16vAmwHUgAC5AHSP+aYLwC3sEXkR+u2Ag2d5+WB/NgfAwWAi0At57WsgAG8nOXV2CodgA7AQcAbSAmsCrVtdSC7E1s57D+IwiHOeSZUnJ9ii+AAOYE/gdeAeEBv4CgQP8R12gJkcM59AOjwhGsa8pqlBP4AmjnXtJGznApIDNwEcjnbpgd8neczgQ+da5QQKP2Ecz26XjOd4+UHLod4T5cCHUNsPwQY/oRjhbwe/3ofnHU1nWuSx/lbPgI2hnjdACucvzmRs66p87d6Ae8CF4CEoc8X4hgh3+/WzvleBpIA84FpoeL7Dvs5LQjcBfJE8t/BVOBd5/k44Nij6+a81sN5XgQo6fw9WZ3PQfcwroEBfgSSAb5OnAHO35Uc2A+0eEJcT/wcOMfNEWI5FVAX++8vKTAXWBjq2p5yYvDCfs7/vt4x/aEli+fvnDFmuDHmgTHmr1Cv3cd+CHNj25MOGGPOhz6AMeY29h9HIwAR8XH2WeS8vtoYs9cYE2yM2YP9B1EuHLE1AL41xpw2xlwDvgx13iXGmGPGWgP8gv3lFB5vAUuMMSuMMfeBwdgvoVIhthlmjDnnnPsnwC8cx60OHDHGTHOu6UxswnvTeT0YyCciiYwx540xgc76+0AWIIMx5o4xJqwG88+MMX8aY/YCk3CuPTAF+4WNiHg666eFI+7H6QB86bzvD4D/AX4hSxfO69cefXaMMdONMVedv/1rIAGQK5znawJ8Y4w5bowJAt4HGsq/q3c+M8b8ZYzZDezGJo3IWMM/n8Ey2M/Wo+VyzusYY7YbYzY7f89JYCz//ez+6xo4Bhpjbjrv7z7gF+fvuoEt9RZ6Qlzh/hw413meMea2MeYW8MVjYptsjAl04r//xKsRA2myeP5OP+kFY8xKYAQwErgkIuNEJNkTNv+ef76wGmN/4dwGEJESIrLKKS7fwH4JpQ5HbBlCxfd7yBdFpJqIbBaRayJyHXg9nMd9dOy/j2eMCXbOlTHENhdCPL+N/bUboeOGiDujMeZPbJLqAJwXkSUiktvZpje2hLRFbNVY6zDOE/q6ZHCe/wjkFZFs2FLTDWPMlnDE/ThZgKFOFcx14JoTY8hr9K/Pj9iquwNONcp17C/pSL0nznMvIG2IdWG+JyKSWf6pfgx6wrnWAGVEJD3gCcwBXhHb0J8c2OUcK6dTvXNBRG5iE2bov+dx/4Yuhnj+12OWn/RZCvfnQEReEJGxTpXaTWxVYgrnR8LTYosVNFk8f0+9/cwYM8wYUwTIi626ee8Jm64A0oiIHzZpfB/ite+xpQxvY0xyYAz2H0RYzmOroB7J/OiJiCQA5mFLBGmNMSmwVTCPjhvWbXXnsF+Gj44nzrnOhiOucB/XkfnRcY0xy40xr2GroA5iq1UwxlwwxrQzxmQA3gZGiUiOp5wn9HU55xznDvaLrym2Kiy8pYrHXa/TwNvGmBQhHomMMRsft5/TPtEbWyJ80XlPbhDJ98T5ux7w7y/asP8QY04ZY5I8ejxhm6PYZNMFWGuMuYlNRO2xVYrBzqajse+TjzEmGbbdJfRnN8pu4Yzg5+BdbKmthBNbWWd9yPhCxxZrbjfVZBGNiEgxp1QQD1u/fwdbjfIfThF3LjAIW3+7IsTLSYFrxpg7IlIcW/IIjzlAVxHJJCIvAn1CvBYfW8VxGXggItWAyiFevwiketRA+oRjVxeRis7f9y62bnnjE7YPr6VAThFpLCJeIvIWNtEuFpG0IlJTbAP8XSAI53qKSP0QjZN/YP9RP/ZaOz52fln6Aq2AkA3iU7HtKDUIf7K47Jzv5RDrxgDvh2j4TS4i9Z9yjKTYL/fLgJeI9MXW2z9yEcgqT74rZybQQ0SyiUgS7K/42cZFt/JiSxednf+Drc8PuQz2b7oJBDmlwI4uigUI83NwkX+/P0mxpZTrIpIS+CQcpwh9jBhLk0X0kgz7y/cPbJXAVWwyeJLvgUrA3FD/wDsB/UTkFtAX+0UdHt8By7F10zuwDZ4AOHW0XZ1j/YFNQItCvH4Q++Vz3KlGyRDiuBhjDmF/fQ8HrmDbFN40xtwLZ2yPZYy5CryBTT5Xsb+03zDGXMF+vntif0Ffw9YvP/ryKQb85lSbLAK6GWOOP+VUa7CNwQHAYGPM3x0pjTEbsF8wO4wxoavEnhT3bWyd9wbnepU0xiwABgCznGqOfUC1pxxmOfAzcBj7ebnDv6tB5jr/vyoiOx6z/0RscluL7fNxB/vL31XWYL9w1z5hGaAX9rN1C/t5DOsutWf1tM/Bp8AU5/1pAHyLbWe7AmzGXvuwDAXqOXdPDYvy6J8j7ZSnVBQQkZXA9yYWdL5S6nE0WSj1jESkGLYa0NspgSkV62g1lFLPQESmAL9i+wJoolCxlpYslFJKhUlLFkoppcIUbQfiiqjUqVObrFmzRnr/P//8k8SJE0ddQFFE44oYjStiNK6IiY1xbd++/YoxJk2YG4Y1HkhMeRQpUsQ8i1WrVj3T/q6icUWMxhUxGlfExMa4gG1Gx4ZSSikVFTRZKKWUCpMmC6WUUmFyaQO32AlYhmJHmRxvjPkq1Os9gbb8M75NaxNiuARnxNX92BFVO7syVqVU3HL//n3OnDnDnTt3wr1P8uTJOXDggAujipzwxJUwYUIyZcpEvHj/mZcrXFyWLJxhe0dih20+A2wVkUXGmP0hNtsJFDXG3BaRjsBA7JDSj/Tn3+PGKKVUlDhz5gxJkyYla9as2EGQw3br1i2SJk3q4sgiLqy4jDFcvXqVM2fOkC1btkidw5XVUMWBo8ZOQHIPmIWdCexvxphVxpmDATswV8gpCotgx9X/BaWUimJ37twhVapU4U4UMZmIkCpVqgiVov5zDOOiHtwiUg+oaox5NN9vM+w48I+tTnLmp71gjPncGVJ5JXaU0krY0sd/9hOR9tjx8EmbNm2RWbNmRSrWZIGBJNqyhb+KF+emr2+kjuEqQUFBJEkSnjmAni+NK2I0roh5HnElT56cHDmeNoXJfz18+BBPT8+wN3zOwhvX0aNHuXHjxr/WVahQYbsxpmiYO4fn/trIPIB62HaKR8vNgBFP2LYptmSRwFnuDPR2nrd80n4hH5HuZ7F+vTFeXibYw8OYRImM2bgxcsdxkdh4X7craVwRE5fj2r9/f4T3uXnzpgsieXbhjetxfzPRoJ/FWf49u1gmHjMrmohUwk6YXsMYc9dZ7Q90FpGT2JnZmovIV6H3jRLz58ODB0hwMNy9C6tWueQ0SikV0tWrV/Hz88PPz4906dKRMWPGv5fv3QvfNC+tWrXi0KFDLo7UcuXdUFsBH2du4rNAQ0LN2CYihbATslc1xlx6tN4Y0yTENi2x1VAhZ22LOvXqwahRmDt3bMJYsgRat4Z06VxyOqWUAkiVKhW7du0C4NNPPyVJkiT06tXrX9v8/ave4/G/6ydNmgTYBm5Xc1nJwtiZ2zpjZ/M6AMwxxgSKSD8RqeFsNgg7kfpcEdklIouecDjX8feHlSs50aYNdO8OO3ZAvny2xKGUUiH8du43vlz3JZtOb3LZOY4ePUrevHlp0qQJvr6+nD9/nvbt21O0aFF8fX3p16/f39uWLl2aXbt28eDBA1KkSEGfPn0oWLAg/v7+XLp06SlniTiX9rMwxizFzpEccl3fEM8rheMYk4HJUR3bv/j7c+ruXV4uXx7atYNmzaBuXWjZEoYOhWTJwjqCUioG6/5zd3Zd2PXUbW7cvcGei3sINsF4iAcF0hYgeYInTTkPfun8+Lbqt5GK5+DBg0ydOpWiRW2781dffUXKlCl58OABFSpUoF69euTNm/ff8d24Qbly5fjqq6/o2bMnEydOpE+fqKuQ0R7coeXNC5s2wYcfwtSpUKAArNWuHkrFdTfu3CDYBAMQbIK5cedGGHtEXvbs2f9OFAAzZ86kcOHCFC5cmAMHDrB///7/7JMoUSKqVbNTthcpUoSTJ09GaUyxZojyKBU/Pnz+OVSvbksZ5ctDr17Qvz8kSODu6JRSUSw8JYBNpzdRcWpF7j28R3zP+MyoMwN/b3+XxBNyuPEjR44wdOhQtmzZQooUKWjatOlj+0vEjx//7+eenp48ePAgSmPSksXT+PvDrl22amrQIChWDPbscXdUSik38Pf2Z1G9RfSv0J+A5gEuSxSh3bx5k6RJk5IsWTLOnz/P8uXLn8t5Q9OSRViSJIGxY+HNN6FtW5swPv8cevaEaNg5RynlOiUylKBSrjCbWqNU4cKFyZs3L7lz5yZLliy88sorz/X8j2iyCK833oC9e+Htt6F3b1i8GKZMgWeYnU8ppcDeOvtIjhw5/r6lFuxQHdOmTXvsfuvXrwfsrbPXr1//e33Dhg1p2LBhlMao1VARkSYNzJsHkyfDzp228XvKFHDRkClKKRVdaLKIKBFo0cK2Xfj52dtr69WDK1fcHZlSSrmMJovIyprVDg0ycKCtksqXz/b+VkqpWEiTxbPw9IT33oOtW+Gll2y7RocOEBTk7siUUipKabKICgUK2ITx3nswbhwUKgSbN7s7KqWUijKaLKJKggS2SmrVKrh/H155BT7+2D5XSqkYTpNFVCtXzjZ+N29u+2P4+0M0nLNXKeVeUTFEOcDEiRO5ePGiCyO1NFm4QrJkMGmSvc325EkoXBiGDYPgYHdHppSKJh4NUb5r1y46dOhAjx49/l4OOXRHWDRZxAZ16sC+ffDqq9CtG1SpAmfOuDsqpVQkefz2G3z5pR1s1IWmTJlC8eLF8fPzo1OnTgQHB/PgwQOaNWtG/vz5yZcvH8OGDWP27Nns2rWLli1bRrhEElHag9vV0qWzt9Z+9x306AH588Po0RDFvSuVUs+ge3c7DtzT3LjBC3v22BoCDw97Y0vyJw9Rjp8ffBvxIcr37dvHggUL2LhxI15eXrRv355Zs2aRPXt2rly5wt69ewG4fv06KVKkYPjw4QwYMMDlw4BoyeJ5EIH27WH3bsidGxo1so8//nB3ZEqp8Lpx45+q5OBgu+wCv/76K1u3bqVo0aL4+fmxZs0ajh07Ro4cOTh06BBdu3Zl+fLlJH9aonIBLVk8TzlywLp18NVX8Nln9vmkSfDaa+6OTKm4LTwlgE2boGJFuHfPTmMwY4a9gSWKGWNo3bo1/fv3/89re/bsYdmyZYwcOZJ58+Yxbty4KD//k2jJ4nnz8oKPPrL9MJImhcqVbXvGX3+5OzKl1NP4+3N70SI7r01AgEsSBUClSpWYM2cOV5whhK5evcqpU6e4fPkyxhjq169Pv3792LFjBwBJkyYl6Dl0BNaShbsUKWLn++7Tx94p9csvMH26Xa+UipaCS5SASq4dojx//vx88sknVKpUieDgYOLFi8eYMWPw9PSkTZs2GGMQEQYMGABAq1at6Ny5M4kTJ2bLli0RupMqIjRZuFOiRHaO7zfegFatoGRJ+OQTm0C89K1RKq4IOUQ5QOPGjWncuPF/ttu5c+d/1jVo0IBq1aqRNGlSV4UHaDVU9PDaa3aujPr1ba/vMmXgyBF3R6WUUn/TZBFdvPgifP89zJwJBw/a2+7GjtW5MpRS0YImi+imYUNbyihVCjp0IP/778OFC+6OSqlYycShH2PP+rdqsoiOMmWC5cth2DBS7Nxp58qYP9/dUSkVqyRMmJCrV6/GiYRhjOHq1askTJgw0sfQVtToysMDunRhe7JkFB8+HOrWtTP0DR369F6jSqlwyZQpE2fOnOHy5cvh3ufOnTvP9IXrKuGJK2HChGTKlCnS59BkEc3dzpLFdgbq3x+++AJWr7bzfpcr5+7QlIrR4sWLR7Zs2SK0z+rVqylUqJCLIoq85xGXVkPFBPHiQb9+sH69fV6hgp1o6e5dd0emlIojNFnEJP7+sHOnHWdq8GAoVszOnaGUUi6mySKmSZIExoyxI9leumQTxqBB8PChuyNTSsVimixiqurV7S221atD7962aurkSXdHpZSKpTRZxGRp0tjZ+CZPtmPxFyhgn8eBWwGVUs+XS5OFiFQVkUMiclRE+jzm9Z4isl9E9ohIgIhkcdb7icgmEQl0XnvLlXHGaCL2lto9e6BQITvGVN26EIHbAZVSKiwuSxYi4gmMBKoBeYFGIpI31GY7gaLGmALAD8BAZ/1toLkxxheoCnwrIilcFWuskDUrrFxp2y+WLLEz8i1e7O6olFKxhCtLFsWBo8aY48aYe8AsoGbIDYwxq4wxt53FzUAmZ/1hY8wR5/k54BKQxoWxxg6entCrF2zdCmnTwptvwttvw3MY614pFbuJq7q6i0g9oKoxpq2z3AwoYYzp/ITtRwAXjDGfh1pfHJgC+BpjgkO91h5oD5A2bdois2bNinS8QUFBJEmSJNL7u0pk45J798g2aRLes2dzJ316DnzwATd9fd0el6tpXBGjcUVMbIyrQoUK240xRcPc0BjjkgdQDxgfYrkZMOIJ2zbFliwShFqfHjgElAzrfEWKFDGRtfHURtN2Sluz8dTGSB/DVVatWvVsB1izxpgsWYzx8DDmww+NuXs3KsJ69rhcROOKGI0rYmJjXMA2E47vdFdWQ50FvEMsZ3LW/YuIVAI+BGoYY+6GWJ8MWAJ8aIzZ7Kog159aT5lJZZhwYgIVp1Zk0+lNrjqVe5Qtaxu/mze3w4X4+8OBA+6OSikVw7gyWWwFfEQkm4jEBxoCi0JuICKFgLHYRHEpxPr4wAJgqjHmBxfGyMKDC3loHmIw3Hlwh4ATAa48nXskSwaTJtmRa0+dgsKF7VSuwcFh76uUUrgwWRhjHgCdgeXAAWCOMSZQRPqJSA1ns0FAEmCuiOwSkUfJpAFQFmjprN8lIn6uiLNunrok8kpkY8YwZdcUdl3Y5YpTuV/t2rYjX8WK0K0bVK4MZ864OyqlVAzg0n4WxpilxpicxpjsxpgvnHV9jTGLnOeVjDFpjTF+zqOGs366MSZeiPV+xhiXfIP7e/sT0DyAttnaMrDSQILuB1Hsu2J8tvoz7j+874pTule6dPDTT3YWvs2b7S22M2e6OyqlVDSnPbixCaNJ5ia898p7BHYKpGG+hny65lOKjy/O7gu73R1e1BOxgxHu2gV58kDjxtCoEVy75u7IlFLRlCaLUFImSsm02tNY+NZCzt86T9HvitJvTb/YWcrIkQPWroXPP4cffrCljBUr3B2VUioa0mTxBDVz1ySwUyANfBvwyepPKDG+BHsuxsLhwL284MMPbZVU8uS2HaNrV7h9O+x9lVJxhiaLp0j1Qipm1JnB/AbzOXvrLEXHFeXztZ/HzlJGkSKwfbtt+B4+3C5v2+buqJRS0YQmi3Conac2gZ0CqZu3Lh+v+piSE0qy79I+d4cV9RIlgm+/tVVRt27ZPhn9+8ODB+6OTCnlZposwin1C6mZWXcm8xrM4/SN0xQeW5gv1n7Bg+BY+EVaqZK9xbZ+fejbF0qXhiNH3B2VUsqNNFlEUJ08dQjsFEjtPLX5aNVH+E/wJ/BSoLvDinovvgjff29vqz10CPz87O22OleGUnGSJotISJM4DbPrzWZu/bmcvH6SwuMK8+W6L2NnKaNhQ9i3D155BTp0gDfegJ9+IvOMGbAplg2NopR6Ik0Wz6Be3nrs77Sfmrlq8sHKDyg1oRT7L+93d1hRL2NG+PlnO0TIr79CjRpkmzDB9gTXhKFUnKDJ4hmlSZyGOfXnMLvebI7/cZxCYwsxYP2A2FfK8PCALl3gnXcAEGPgr79sg/jDh24OTinlaposokgD3wbsf2c/b+Z8kz4BfSg9sTQHrxx0d1hRr359SJQII2J7gs+ZY+f+njdPByZUKhbTZBGFXkr8EnPrz2Vm3ZkcvXYUvzF+DNowiIfBseiXt78/BARwok0bWLcOZs+2SaJePds3Y/FibQRXKhbSZBHFRISG+RoS2CmQ131ep/evvSk9qTSHrhxyd2hRx9+fU02a2EbvBg1sA/jUqXDzpp3K1d/f9tXQpKFUrKHJwkXSJknLvAbzmFFnBoevHsZvrB9fb/w6dpUyHvH0hGbN4OBBGDcOzp2zw4aUL29LH0qpGE+ThQuJCI3zNyawUyBVsleh14pelJ1clsNXD7s7NNeIFw/atbMd+IYPh8OH7Ux9VarAli3ujk4p9Qw0WTwH6ZKkY8FbC5heezoHLh+g4JiCfLPpm9hZygBIkAA6d4Zjx2DwYNixA0qUgBo17LDoSqkYR5PFcyIiNCnQhMBOgbz28mu8+8u7lJtcjiNXY/EwGi+8AO++C8eP22HQ166FQoVsO4fOA65UjKLJ4jlLnzQ9Pzb8kam1phJ4OZCCYwry7eZvCTax+LbTpEntMOgnTsBHH8GyZZAvHzRvbksfSqloT5OFG4gIzQo2I7BTIBVfrkiP5T0oN7kcR68ddXdorvXii3YU2xMnbInjhx8gVy7bznHqlLujU0o9hSYLN8qQNAOLGi5iSq0p7L24lwKjCzDst2Gxu5QBkDo1DBxoSxWdOtnbbn18bA/x8+fdHZ1S6jE0WbiZiNC8YHMCOwVSIVsFuv3cjQpTKnDsWhyonkmf3o43dfQotGwJY8bAyy9Dr15w+bK7o1NKhaDJIprImCwjixstZlLNSey+sJsCYwow/Lfhsb+UAeDtbYc/P3jQNn4PGQLZstn2jT/+cHd0Sik0WUQrIkJLv5bs67SPslnK0vXnrvTc3ZPjfxx3d2jPR/bsMGUKBAbaodC/+MImjf79be9wpZTbaLKIhjIly8TSxkuZUGMCR4OOUmB0AUZuGRk3ShkAuXPDrFmwe7ftBd63r62eGjQIbt92d3RKxUmaLKIpEaF1odZMLDqR0plL03lZZypNrcSJP064O7Tnp0ABWLjQ9v4uVgx697ZJY9gwuHPH3dEpFadosojmXkr4EsuaLOO7N79j27lt5B+dn9FbR8edUgbYRLFsmR1nKndu6NbN3j01bhzcv+/u6JSKEzRZxAAiQtvCbdnXaR+lvEvRaWknKk+rzO/Xf3d3aM9X6dKwapWdrS9TJnj7bZs8pkyBB7FssimlohlNFjFI5uSZWd50OWPfGMtvZ38j3+h8jN02FhOXhgIXsdO5btwIS5ZA8uT2ttt8+f6ZW0MpFeU0WcQwIkL7Iu3Z13EfJTKWoMOSDlSeHgdLGSLw+uuwfTvMnw9eXtCwIUXbtYMff9S5NJSKYposYqgsKbKwotkKRlcfzeYzm8k/Oj/fbf8ubpUywCaN2rXtnVPff4/HvXtQqxYULw4//6xJQ6kooskiBhMROhTtwN6OeymWsRjtF7en6oyqnLoRB8dZ8vSERo3YOnkyTJwIV65AtWpQpgysXu3u6JSK8VyaLESkqogcEpGjItLnMa/3FJH9IrJHRAJEJEuI11qIyBHn0cKVccZ0WVNkZUWzFYx6fRQbTm0g36h8jN8xPu6VMgDj6QmtWsGhQzB6tB20sEIF286xaZO7w1MqxnJZshART2AkUA3ICzQSkbyhNtsJFDXGFAB+AAY6+6YEPgFKAMWBT0TkRVfFGht4iAcdi3Vkb8e9FMlQhHY/taPajGqcuXnG3aG5R/z40KGDHXdqyBA7T3ipUlC9um3nUEpFiCtLFsWBo8aY48aYe8AsoGbIDYwxq4wxj7rkbgYyOc+rACuMMdeMMX8AK4CqLow11sj2YjYCmgcwotoI1p1ah+8oXybunBgnSxkAJEoE3bvbCZi++sqWLooWhTp1bAJRSoWLuOpLRETqAVWNMW2d5WZACWNM5ydsPwK4YIz5XER6AQmNMZ87r30M/GWMGRxqn/ZAe4C0adMWmTVrVqTjDQoKIkmSJJHe31WeJa5zf51j4KGB7L6xmxIpS/BuzndJkyCN2+NypbDi8gwKItO8eXjPnYvn7dtcqlCBky1b8pe3t1vjcheNK2JiY1wVKlTYbowpGuaGxhiXPIB6wPgQy82AEU/Ytim2ZJHAWe4FfBTi9Y+BXk87X5EiRcyzWLVq1TPt7yrPGtfD4Idm+G/DzQtfvGCSf5ni+qI1AAAgAElEQVTcTNo5yQQHB7s9LlcJd1xXrxrz/vvGvPCCMR4exrRsaczx4+6P6znTuCImNsYFbDPh+E53ZTXUWSDkz7VMzrp/EZFKwIdADWPM3Yjsq8LmIR50Lt6ZPR32UCBtAVr92Io3Z77J2Ztx/HKmTAn/+59tAO/WDWbOhJw5oWNHOBNH23mUegpXJoutgI+IZBOR+EBDYFHIDUSkEDAWmyguhXhpOVBZRF50GrYrO+tUJGVPmZ3VLVcztOpQVp5YSb7R+Ziya0rcbct45KWX4Jtv7Kx97dvDhAmQI4dt57h40d3RKRVtuCxZGGMeAJ2xX/IHgDnGmEAR6SciNZzNBgFJgLkisktEFjn7XgP6YxPOVqCfs049Aw/xoGuJruzpuId8L+Wj5Y8tqTGrBudunXN3aO6XMSOMHAmHD0OTJjBihB3htk8fuHrV3dEp5XYu7WdhjFlqjMlpjMlujPnCWdfXGPMoKVQyxqQ1xvg5jxoh9p1ojMnhPCa5Ms64JkfKHKxusZohVYYQcDwA31G+TNs9TUsZAFmz2tLFgQO2Z/jAgXYCpk8/hRs33B2dUm6jPbjjKE8PT7qX7M7uDrvxTeNL84XNqTW7FudvnXd3aNGDjw9Mnw5790LlyvDZZzZpfPklBAW5OzqlnjtNFnGcTyof1rRcw9eVv+aXY7/gO8qXGXtmaCnjEV9f+OEH25GvVCn44ANbPTVkCPz1l7ujU+q50WSh8PTwpKd/T3a9vYvcqXPTdEFTas+uzYWgC+4OLfooXBgWL7ad+goWhJ49bUP4qFFw7567o1PK5TRZqL/lSp2Lda3WMei1Qfx89Gd8R/kyc+9MLWWEVLIkrFhhJ2F6+WV45x17y+3EiToBk4rVNFmof/H08KRXqV7s6rALn5Q+NJ7fmLpz6nIxSG8j/Zfy5WHtWjsM+ksvQZs2kCcPzJgBDx+6OzqlopwmC/VYuVPnZkPrDQyoNIClR5biO8qX2ftmaykjJBGoUgV++81OuPTCC9C0KRQoAPPm6ax9KlbRZKGeyNPDk96v9Gbn2zvJnjI7Dec1pP7c+iw5soQZp2aw6bQO+Q3YpFGjBuzc+c/UrvXq2QELFy+GjRvJPGOGDpGuYrRwJQsRyS4iCZzn5UWkq4ikcG1oKrrIkyYPG1pv4KuKX/HjoR954/s3mHBiAhWnVtSEEZKHBzRoYEeznTrV9st4800oU4ZsEybonBoqRgtvyWIe8FBEcgDjsOM2fe+yqFS04+Xhxf+V/j/eKfYOAAbDXw/+YuqeqW6OLBry9IRmzeDgQduxLzgYMcbeavu//8GtW+6OUKkIC2+yCHaG76gNDDfGvAekd11YKrp6y/ctEnklQhAAxmwbQ7MFzXRgwseJFw/eew8SJcKI2JLH4sWQKZO99fb4cXdHqFS4hTdZ3BeRRkALYLGzLp5rQlLRmb+3PwHNA2iTrQ2/NvuVD0p/wNzAueQckZP+a/rz133tqPYv/v4QEMCJNm1g/XrYvNnO1jd8uO2nUauWvQ1XbxxQ0Vx4k0UrwB/4whhzQkSyAdNcF5aKzvy9/WmSuQkVX67IFxW/4MA7B6iWoxp9V/clz8g8zA2cq3dNheTvz6kmTWziKFECvv8eTp60vcHXr4dXXwU/P9tX484dd0er1GOFK1kYY/YbY7oaY2Y6Q4YnNcYMcHFsKobI9mI2fmjwA6tarCJ5wuQ0+KEB5SaXY+f5ne4OLfrKmBE+/xxOn4bx423Jok0b8PaGjz6CczoSsIpewns31GoRSSYiKYEdwHci8o1rQ1MxTfms5dnRfgdj3xjLgSsHKDKuCO0WtdMOfU+TKJFNErt3w8qV8MorthE8SxY7VPqWLe6OUCkg/NVQyY0xN4E6wFRjTAmgkuvCUjGVp4cn7Yu050iXI/Qo2YPJuyfjM9yHwRsHc++hjqH0RCJQoQIsXAhHjkDnzvDTT7bayt8fZs2C+/fdHaWKw8KbLLxEJD3QgH8auJV6ohQJU/B1la/Z13EfZbOU5b0V7+E7ypefDv2k7RlhyZ7djmp79iwMGwZXrkCjRv8Mka6TMSk3CG+y6Ied8e6YMWariLwMHHFdWCq2yJU6F4sbL2ZZk2V4eXhRY1YNqkyvQuClQHeHFv0lTQpdusChQ7aUkSePbRTPlAnatbOd/5R6TsLbwD3XGFPAGNPRWT5ujKnr2tBUbFI1R1X2dNjD0KpD2XpuKwXHFKTL0i5c+0tnyw2Thwe88YYd7XbfPmje3E7MlD+/7RX+0086DpVyufA2cGcSkQUicsl5zBORTK4OTsUu8Tzj0bVEV450OcLbRd5m1LZR+Az3YcSWETwI1uG9w8XXF8aOhTNnbJXU4cN2XKqcOWHoULh5090RqlgqvNVQk4BFQAbn8ZOzTqkIS/1CakZWH8mut3fhl86PLsu64DfGjxXHVrg7tJgjVSro08f2Ap89G9Kmhe7dbRVV9+5w7Ji7I1SxTHiTRRpjzCRjzAPnMRlI48K4VByQP21+fm32KwveWsBfD/6i8vTK1JxVkyNXtTks3OLFs4MXbthgb7OtUcPO3ufjY58HBGjvcBUlwpssropIUxHxdB5NAb0lQz0zEaFW7lrs77SfAZUGsPLESnxH+dJ7RW9u3tUqlQgpVsy2Zfz+u+3Yt3kzVKpk59cYP17nDFfPJLzJojX2ttkLwHmgHtDSRTGpOCiBVwJ6v9KbI12O0LRAUwZvHIzPcB8m7JjAw2CdeS5C0qeHfv3g1Ck7hIinp717ytvb3k115oy7I1QxUHjvhvrdGFPDGJPGGPOSMaYWoHdDqSiXLkk6JtacyJZ2W/BJ6UPbn9pS7LtirPt9nbtDi3kSJoRWreykTKtXQ9myMGCA7a/RsKEteSgVTs8yU17PKItCqVCKZijKulbrmFl3JpdvX6bs5LK89cNb/H79d3eHFvOIQLlyMH8+HD0KXbvaucP9/SncsaMd2PCe9q5XT/csyUKiLAqlHkNEaJivIYc6H+LTcp/y06GfyD0yN31X9eXPe3+6O7yYKVs2+PprWxU1YgRef/5px6DKmhW++AIuX3Z3hCqaepZkobdYqOfihXgv8En5TzjU+RC1c9em/9r+5BqRixl7ZujQIZGVJAm88w5bJk+GJUtsB7+PPrLtGm3awJ497o5QRTNPTRYicktEbj7mcQvb30Kp58Y7uTff1/2e9a3Wky5JOpouaEqpiaXYclZHZo00Dw94/XVYvhwCA20bx6xZULCgHdjwxx/hod5goMJIFsaYpMaYZI95JDXGeD2vIJUK6ZXMr7Cl3RYm1pjIyesnKTG+BC0WtuDcLZ0D4pnkzQujR9s5NgYMsB37atWyfTaGDIEbN9wdoXKjZ6mGUsptPMSDVoVacbjzYfq80odZ+2aRc3hOpv8+nTsPdLa5Z5IyJfTubXuHz51rJ2rq2dP2Du/a1Q6hruIcTRYqRkuaIClfVvqS/Z32Uzl7ZSacnECekXmYt3+etmc8Ky8vqFcP1q2Dbdugdm0YMwZy5fpnYEO9xnGGS5OFiFQVkUMiclRE+jzm9bIiskNEHohIvVCvDRSRQBE5ICLDRETvvlJPlD1ldua/NZ+vC3xN0vhJqTe3HhWmVGD3hd3uDi12KFIEpk61Hf369oWtW6FyZciXD8aNg9u33R2hcjGXJQsR8QRGAtWAvEAjEckbarNT2J7g34fatxTwClAAyAcUA8q5KlYVexR+sTA73t7BqNdHse/SPgqPK0yHxR24/KfeEhol0qWDTz+1SWPyZEiQAN5+295F1aePbe9QsZIrSxbFgaPO3Bf3gFlAzZAbGGNOGmP2AKEH4zdAQiA+kACIB+hEzipcvDy86FisI0e6HKFL8S5M2DkBn+E+fLPpG53aNaokSAAtWsD27bB2rb1zatAg24+jQQPYuFGrqGIZcVW9rlOtVNUY09ZZbgaUMMZ0fsy2k4HFxpgfQqwbDLTFdv4bYYz58DH7tQfaA6RNm7bIrFmzIh1vUFAQSZIkifT+rqJxRczj4vr9z98ZdWwUW/7Ygncibzpl70TJVCXdHld0EJVxJbxwgQwLF5J+yRLiBQVxM1cuztaty6Xy5THx4rktrqgUG+OqUKHCdmNM0TA3NMa45IEdbHB8iOVm2C/9x207GagXYjkHsARI4jw2AWWedr4iRYqYZ7Fq1apn2t9VNK6IeVpcSw4vMTmH5zR8iqk6varZf2l/tIjLnVwSV1CQMaNGGZM7tzFgTLp0xnz2mTEXL7o3rigQG+MCtplwfKe7shrqLOAdYjmTsy48agObjTFBxpggYBngH8XxqTjmdZ/X2dtxL99U/oZNpzeRf3R+uv/cnT/++sPdocUuiRNDx462k9+yZeDnB598Yts1WrWCXbvcHaGKBFcmi62Aj4hkE5H4QEPsbHvhcQooJyJeIhIP27h9wEVxqjgkvmd8evj34EiXI7Qt3JbhW4bjM9yH0VtH69SuUc3DA6pWtQnjwAFo2xbmzIFChezAhgsWaO/wGMRlycIY8wDoDCzHftHPMcYEikg/EakBICLFROQMUB8YKyKBzu4/AMeAvcBuYLcx5idXxarinjSJ0zDmjTHsaL+D/Gnz02lpJwqNLUTA8QB3hxY75c4NI0faAQwHDbITNNWpAzly2IENr193d4QqDC7tZ2GMWWqMyWmMyW6M+cJZ19cYs8h5vtUYk8kYk9gYk8oY4+usf2iMedsYk8cYk9cYo8OhK5comK4gK5uv5If6PxB0L4hK0ypRe3Ztjl3TOaxd4sUXoVcvO1T6vHmQObNdzpQJ3nkHDh2CTZvIPGMGbNrk7mhVCNqDW8V5IkLdvHU58M4B/vfq/1hxbAV5R+Wlz699uHX3lrvDi528vGzJYs0a2LHD9hQfP96WQEqXJtuECVCxoiaMaESThVKOhF4Jeb/M+xzucpiG+RoyYMMAfIb7MGnnJIJN6K5AKsoUKmQ7+J06ZRNEcDBijJ0zvFs3O8tfsF5/d9NkoVQoGZJmYEqtKfzW9jeyvZiN1otaU/y74mw4tcHdocVuadNC//6QKBFGxM4dvnev7fD3qLpqxw7t7OcmmiyUeoLiGYuzsfVGpteezoWgC5SeVJpG8xpx6sYpd4cWe/n7Q0AAJ9q0sQMYXrkCM2fasamGDbP/z50bPvsMDh92d7RxiiYLpZ5CRGhSoAmHOh/i47Ifs/DgQnKPyM2nqz/l9n0dPM8l/P051aSJTRyJE0PDhnYSpgsX7KCFGTLYZJErFxQtCt98A2fD24VLRZYmC6XCIXH8xPSr0I+D7xzkzVxv8tmaz8g9Ijcz987UodCfl5QpoV07WLXKDlj49dd2/bvv2g5/r74K330H1665N85YSpOFUhGQJUUWZtebzdqWa0n9Qmoaz29MmUll2HZum7tDi1seTci0bZu93faTT2zpon17OzJuzZp2etg//3R3pLGGJgulIqFMljJsbbeV8W+O58i1IxT/rjitf2zNhaAL7g4t7smZ0yaLgwftKLhdu9ok0qiRbTRv2hSWLoX7990daYymyUKpSPL08KRN4TYc6XKEXqV6MX3PdHyG+zBg/QDuPrjr7vDiHhEoXBgGD7a34a5aBY0b20RRvTqkT2/HrFq3Tm/FjQRNFko9o2QJkjHwtYEEdgrk1Wyv0iegD3lH5WXhwYXanuEunp5QvrxtEL9wARYtgtdes7P9lS0LWbPaecZ37dJbccNJk4VSUcQnlQ8/NvyRX5r+QkKvhNSeXZtK0yoxffd0ZpyawabT2hvZLeLHhzfftLfgXrwIM2ZAgQIwZIjtEOjrC59/Dsd0iJen0WShVBR7Lftr7O6wm+HVhrP17FaaLWzG+BPjqTClgiYMd0uSxFZNLV4M58/DmDGQJg18/LEd1LBECRg61L6m/kWThVIu4OXhRefinelWshuCAHD34V2aL2jOL8d+0eqp6CB1ajt/+Jo1to1j0CDbCN69ux3YsFIlmDhRR8R1aLJQyoVez/E6Cb0S4oEH8Tzice3ONapMr0LBMQWZvGuyNoRHF97e/wwnsn8/fPghnDwJbdrYO6pq14a5c/G4G3ffL00WSrmQv7c/Ac0DaJ2tNWtaruFcz3NMqjkJg6HVj63INjQbX677kmt/aUeyaCNPHujXD44cgS1boFMn2LwZGjSgVJ060KIFLF8OD+LWZFmaLJRyMX9vf5pkboK/tz8JvBLQ0q8lezrs4ecmP5PvpXx8sPIDvId402VpF51HIzoRgWLFbEP4mTMQEMDl8uXt0CNVq9phRzp3ho0b48QdVZoslHIDEaFKjir80uwXdr29i3p56zF2+1hyjshJvTn1tCE8uvH0hFdf5dB779k7qhYssKPhTpgAr7wC2bLB++/bUXJjKU0WSrlZwXQFmVJrCie7n6R3qd4EnAig1MRSlJpQivkH5vMwWOepjlYSJIBatWD2bLh0yfbdyJvXNpAXKAD588P//gcnTrg70iilyUKpaCJD0gx8WelLTvc4zdCqQ7kQdIG6c+qSa0QuRmwZwZ/3dJyjaCdpUmjWzPYSP3/ezjOeIoVtIH/5ZShVCoYPt6WRGE6ThVLRTJL4SehaoitHuhxhbv25pEmchi7LuuA9xJsPAz7k/C3tAxAtpUljG8PXrbN3Un31lR3IsGtX275RpQpMmQI3b7o70kjRZKFUNOXp4Um9vPXY1GYTG1pvoHzW8ny5/kuyDs1Kqx9bse/SPneHqJ4kSxb4v/+D3bth3z7bnnHkCLRsCS+9ZOccnz8f7txxd6ThpslCqRiglHcp5r81n8NdDtOucDtm75tN/tH5qTq9KiuOrdBOftFZyOFENm2yHQHXr4e6dW0fjlatYMWKaH8rriYLpWKQHClzMOL1EZzucZrPK3zOrgu7qDy9Mn5j/Zi6eyr3Ht5zd4jqSUSgZEk7nMiZM/DLLzZhzJ8PlSvbXuPdutk+HdEw+WuyUCoGSvVCKj4s+yG/d/+dCTUm8DD4IS0WtiDb0Gx8tf4r/vjrD3eHqJ7Gy8uOgjtxom38njcPSpeGsWPtdLI5csBHH0FgoLsj/ZsmC6VisAReCWhdqDV7O+5lWZNl5E2Tl/cD3sd7iDfdlnXjxB+x6/bNWClhQqhTB374wSaOyZNtsvjyS8iXDwoWhAED4Pff3RqmJgulYgERoWqOqqxotoKdb++kTp46jNo2ihzDc1B/bn1+O/Obu0NU4ZE8+T/DiZw7Z2+7TZwY+vSxc3CULg2jRsHly889NE0WSsUyfun8mFp7Kie7neS9Uu+x4tgKSk4oSemJpVlwYIF28osp0qb9ZziRY8fgiy/sCLjvvGNn/Xv9dZg2DX79lcwzZtjGcxfSZKFULJUxWUa+qvQVp3uc5tsq33L21lnqzKlD7pG5GbV1FLfv33Z3iCq8Xn4ZPvjA3oa7Zw+8954dHbd5c3jtNbKNHw8VK7o0YWiyUCqWS5ogKd1KduNIlyPMqTeHlIlS8s7Sd/Ae4s2EExO4EHTB3SGqiMif37ZnnDhhb8MVZ8aUe/dg9WqXnVaThVJxhJeHF/V967O5zWbWtVpH2SxlmXFqBlm+zUKbH9sQeCn63HmjwkHEtm8kTEiwh4edPrZ8eZedzqXJQkSqisghETkqIn0e83pZEdkhIg9EpF6o1zKLyC8ickBE9otIVlfGqlRcISKUzlyaBW8tYGqxqbQp1IaZ+2aSb3Q+qs2oxq/Hf9VOfjGFvz8EBHCydWsICLDLLuKyZCEinsBIoBqQF2gkInlDbXYKaAl8/5hDTAUGGWPyAMWBS66KVam4KtMLmRhVfRSnepyif4X+7Dy/k9emvUahsYWYtnuadvKLCfz9OdWkiUsTBbi2ZFEcOGqMOW6MuQfMAmqG3MAYc9IYswcIDrneSSpexpgVznZBxhhtjVPKRVK/kJqPyn7Eye4nGf/meO4H36f5wuZkG5qNgRsGcv2OzkMd14mriptOtVJVY0xbZ7kZUMIY0/kx204GFhtjfnCWawFtgXtANuBXoI8x5mGo/doD7QHSpk1bZNasWZGONygoiCRJkkR6f1fRuCJG44qYJ8UVbILZem0rc87MYcf1HSTyTMTr6V6nXqZ6pEuYzm1xuVtsjKtChQrbjTFFw9zQGOOSB1APGB9iuRkw4gnbTgbqhdr3BvAy4AXMA9o87XxFihQxz2LVqlXPtL+raFwRo3FFTHji2nl+p2k6v6nx6udlPD7zMA3mNjC/nfnN7XG5Q2yMC9hmwvGd7spqqLOAd4jlTM668DgD7DK2CusBsBAoHMXxKaXCwS+dH9NqT+NEtxO86/8uy48up8T4EpSZVIaFBxdqJ784wpXJYivgIyLZRCQ+0BBYFIF9U4hIGmf5VWC/C2JUSoVTpmSZGPjaQE73OM2QKkM4feM0tWfXJs/IPIzeOlo7+cVyLksWTomgM7AcOADMMcYEikg/EakBICLFROQMUB8YKyKBzr4PgV5AgIjsBQT4zlWxKqXCL2mCpHQv2Z2jXY8yq+4sUiRMQaelncg8JDN9V/XlYlDMn0JU/ZeXKw9ujFkKLA21rm+I51ux1VOP23cFUMCV8SmlIs/Lw4u38r1FA98GrD+1nq83fc3naz9n4IaBNC3QlJ7+PcmbJvTd8iqm0h7cSqlnIiKUyVKGhQ0XcrDzQVr5tWLG3hn4jvKl+vfVWXlipXbyiwU0WSilokzOVDkZ/cZoTvc4Tb/y/dh2bhsVp1ak8LjCTN8znfsP77s7RBVJmiyUUlEu9Qup+bjcx/ze/Xe+e/M77j64S7MFzXh52MsM2jCIG3duuDtEFUGaLJRSLpPQKyFtC7dlX6d9LG60GJ+UPvT+tTeZhmSix889OHn9pLtDVOGkyUIp5XIe4kH1nNVZ2WIl29tvp2aumgzfMpwcw3LQ8IeGbD271d0hqjBoslBKPVeF0xdmep3pnOh2gh4le7Ds6DKKjy9OucnlWHRoERtObWDGqRlsOu3amd9UxGiyUEq5hXdybwZVHsTpHqf5pvI3nLx+kpqzalJmUhkmnJjAq1Nf1YQRjWiyUEq5VbIEyejh34NjXY/xlu9bGOe/Ow/u0HpRa+YEzuHOgzvuDjPO02ShlIoWvDy86FaiG4m8EuGBB14eXly5fYW3fniLdIPT0W5RO9b+vpZgExz2wVSU02ShlIo2/L39CWgeQOtsrVnbci0X3r3AimYrqJm7JjP3zaTc5HJkH5adj1d+zOGrh90dbpyiyUIpFa34e/vTJHMT/L398fTwpNLLlZhSawoXe11kWu1p5EyVk/+t/x+5RuSi5PiSjNwykiu3r7g77FhPk4VSKkZIHD8xTQs0ZXnT5ZzucZpBrw3i9v3bdF7WmfRfp6fWrFrM2z+Puw/uujvUWEmThVIqxsmQNAO9SvViT8c97Hp7F91KdOO3s79Rb2490n2djg6LO7Dh1AYdkyoKabJQSsVoBdMVZHDlwZzucZqfm/xMdZ/qTN09ldKTSuMz3IdPV3/KsWvH3B1mjKfJQikVK3h5eFElRxWm15nOxV4XmVxzMllTZKXfmn7kGJ6DVya+wphtY7j21zV3hxojabJQSsU6SRMkpYVfC35t/iunepziq4pfcf3OdTou6Uj6r9NTd05dFh5cyL2H99wdaoyhyUIpFatlSpaJ/yv9f+zruI/t7bfTqWgn1p9aT+3ZtUn/dXreWfIOm89s1vaNMGiyUErFCSJC4fSFGVJ1CGd7nmVJ4yVUzl6Zibsm4j/Bn1wjctF/TX9O/HHC3aFGS5oslFJxjpeHF6/7vM7MujO58O4FJtSYQMZkGem7ui8vD3uZspPK8t3277h+57q7Q402NFkopeK05AmT07pQa1a1WMXJbif54tUvuHz7Mu0Xtyfd4HQ0mNuAnw79FOdn+fNydwBKKRVdZEmRhQ/KfMD7pd9n27ltTNszjZn7ZjJ3/1xSv5CaMi+WIbFPYopmKIqIuDvc50pLFkopFYqIUCxjMYZVG8a5nudY1HARFbJWYPG5xRQfX5w8I/Pwv3X/4/frv7s71OdGk4VSSj1FPM94vJnrTebUn8P8UvMZ98Y4Xkr8Eh+u/JCsQ7NSfnJ5Ju6cyM27N90dqktpslBKqXBK4pWEdkXasbbVWo53PU6/8v04d+scbRa1Ie3gtDSa14ilR5byIPiBu0ONcposlFIqErK9mI2Py33Moc6H2NRmE639WvPLsV+o/n11Mn6TkR4/92DH+R2xpv+GJgullHoGIkLJTCUZWX0k5989z4K3FlA6c2lGbRtFkXFFyDc6HwPWD+DMzTPuDvWZaLJQSqkoEt8zPrVy12Jeg3mcf/c8o6uPJkXCFPQJ6EPmIZmpOLUiU3ZN4dbdW+4ONcI0WSillAukTJSSDkU7sKH1Bo50OULfcn05ef0kLX9sSdrBaWk6vynLjy7nYfBDd4caLposlFLKxXKkzMGn5T/laJejrG+1nuYFm7PkyBKqzqiK9xBvev3Si90Xdrs7zKfSZKGUUs+JiPBK5lcY88YYLrx7gXkN5lE8Y3GG/TYMv7F+FBxTkMEbB3Pu1jl3h/ofmiyUUsoNEngloE6eOixsuJDz755n5OsjSeSViPdWvIf3EG+qTK/C9D3T+fPen+4OFXBxshCRqiJySESOikifx7xeVkR2iMgDEan3mNeTicgZERnhyjiVUsqdUr2Qik7FOrG57WYOdT7Eh2U+5PDVwzRb0Iy0g9PSYmELfj3+q1vbN1yWLETEExgJVAPyAo1EJG+ozU4BLYHvn3CY/sBaV8WolFLRTc5UOelXoR/Huh5jbcu1NM7fmB8P/shr014jy7dZ+L8V/8e+S/uee1yuHEiwOHDUGHMcQERmATWB/Y82MMacdF4LDr2ziBQB0gI/A0VdGKdSSkU7HuJBmSxlKJOlDMOqDeOnQz8xdc9Uvtn8DQM3DqRQukI0K9AMn1Q+/HjqRxKcToC/t7/L4hFX9S50qpWqGmPaOsvNgBLGmI8J32cAAAlFSURBVM6P2XYysNgY84Oz7AGsBJoClYCiT9ivPdAeIG3atEVmzZoV6XiDgoJIkiRJpPd3FY0rYjSuiNG4IiY6xHX93nVWXl7JLxd/4dCtQ3+vT+CRgK8LfI1vct8IHa9ChQrbjTFh/iCPrkOUdwKWGmPOPG0YYGPMOGAcQNGiRU358uUjfcLVq1fzLPu7isYVMRpXxGhcERNd4qpFLQB6Lu/Jt5u/xWB4YB5wM+VNypcp75JzurKB+yzgHWI5k7MuPPyBziJyEhgMNBeRr6I2PKWUitnq561PQq+EeOBBfM/4lM9a3mXncmXJYivgIyLZsEmiIdA4PDsaY5o8ei4iLbHVUP+5m0oppeIyf29/ApoHMHHVRFpXaO3SNguXJQtjzAMR6QwsBzyBicaYQBHpB2wzxiwSkWLAAuBF4E0R+cwYE7EKN6WUisP8vf25m/muSxMFuLjNwhizFFgaal3fEM+3Yqun/r+9+4+1uq7jOP588aMEcihIjIS8bJnmXKIWo1R2E3VijlY5tbK0tbTmFFubS+fm+g9XttpcLacFm4gzhDLWEDQxswIBL7+8/lhCRoGQmYgsflze/fH5HD0cLnw53YOfw72vx3Z2vufr936+Lw5c3+d8vue8P4cbYzYw+yjEMzOzI+RvcJuZWSUXCzMzq+RiYWZmlVwszMyskouFmZlVOmrtPt5rkrYDf+vDECcB/2pRnFZyruY4V3Ocqzn9MdcpETGm6qB+Uyz6StLKI+mP8l5zruY4V3OcqzkDOZenoczMrJKLhZmZVXKxeNe9pQMcgnM1x7ma41zNGbC5fM3CzMwq+Z2FmZlVcrEwM7NKA7pYSJog6UlJz0vaIGlm6UwAko6TtELSmpzr+6Uz1ZM0WNJzkhaVzlIjaZOkdZK6JK0snadG0gmS5kt6QVK3pKPbR/oISTotP1e12w5Jt7RBru/kf/PrJc2TdFzpTACSZuZMG0o/T5J+IWmbpPV1+0ZJWirp5Xx/YqvPO6CLBbAP+G5EnAFMAW6UdEbhTAC7gQsj4ixgEnCppCmFM9WbCXSXDtGLz0TEpDb7HPxPgMURcTpwFm3yvEXEi/m5mgScC+wirS1TjKSTgZtJi52dSVoH5+qSmQAknQl8E5hM+ju8XNJHCkaaDVzasO97wBMRcSrwRH7cUgO6WETElohYnbffIv0in1w2FUSyMz8cmm9t8UkESeOBzwL3lc7S7iSNBKYC9wNExJ6I+E/ZVL2aBvw1IvrSAaFVhgDDJA0BhgP/LJwH4GPA8ojYFRH7gKeAL5QKExF/AP7dsPtzwJy8PQfyIt0tNKCLRT1JHcDZwPKySZI81dMFbAOWRkRb5AJ+DNwK7C8dpEEASyStknR96TDZRGA78Ms8bXefpBGlQ/XiamBe6RAR8Q/gh8CrwBbgzYhYUjYVAOuBCySNljQcuAyYUDhTo7ERsSVvbwXGtvoELhaApA8AjwC3RMSO0nkAIqInTxGMBybnt8JFSboc2BYRq0pn6cX5EXEOMJ00nTi1dCDSq+RzgJ9FxNnA2xyF6YG+kPQ+YAbwqzbIciLpFfJE4EPACEnXlE0FEdEN3AUsARYDXUBP0VCHEen7EC2fiRjwxULSUFKhmBsRC0rnaZSnLZ7k4DnKEs4DZkjaBDwEXCjpgbKRkvyqlIjYRpp7n1w2EQCbgc117wrnk4pHO5kOrI6I10oHAS4CNkbE9ojYCywAPl04EwARcX9EnBsRU4E3gJdKZ2rwmqRxAPl+W6tPMKCLhSSR5pO7I+JHpfPUSBoj6YS8PQy4GHihbCqIiNsiYnxEdJCmLn4fEcVf+UkaIen42jZwCWnqoKiI2Ar8XdJpedc04PmCkXrzJdpgCip7FZgiaXj+3ZxGm3wgQNIH8/2HSdcrHiyb6CCPAtfm7WuB37T6BENaPeAx5jzgq8C6fH0A4PaI+F3BTADjgDmSBpMK+sMR0TYfU21DY4GF6f8vDAEejIjFZSO94yZgbp7ueQX4euE878iF9WLghtJZACJiuaT5wGrSJxWfo33aazwiaTSwF7ix5AcVJM0DOoGTJG0G7gRmAQ9L+gZpqYYrW35et/swM7MqA3oayszMjoyLhZmZVXKxMDOzSi4WZmZWycXCzMwquVjYMU/SznzfIenLLR779obHf2rl+K0m6TpJ95TOYf2Pi4X1Jx1AU8UiN6w7nAOKRUS0xTeKj5b83R6zg7hYWH8yi9TwrSuvizBY0g8kPStpraQbACR1Snpa0qPkb1RL+nVuQrih1ohQ0ixSB9QuSXPzvtq7GOWx1+d1NK6qG3tZ3RoWc/O3kQ+Qj7lLad2SlyRdkPcf8M5A0iJJnbVz53NukPS4pMl5nFckzagbfkLe/7KkO+vGuiafr0vSz2uFIY97t6Q1QFust2FtKCJ88+2YvgE7830nsKhu//XAHXn7/cBKUpO6TlJTv4l1x47K98NIrUJG14/dy7m+CCwlrbkwltSqYlwe+01SA8hBwJ9JTQ4bMy8D7s7blwGP5+3rgHvqjlsEdObtAKbn7YWkxnZDSWssdNX9/BZgdN2f5ROkNtu/BYbm434KfK1u3CtL/z361t63gd7uw/q3S4CPS7oiPx4JnArsAVZExMa6Y2+W9Pm8PSEf9/phxj4fmBcRPaQmbk8BnwR25LE3A+Q2Mh3AH3sZo9a4clU+psoeUtdTgHXA7ojYK2ldw88vjYjX8/kX5Kz7SIscPZvf6Azj3WZzPaRmmmaH5GJh/ZmAmyLisQN2pmmdtxseXwR8KiJ2SVoG9GU5z9112z0c+vdsdy/H7OPA6eH6HHsjotafZ3/t5yNif8O1l8YePkF6LuZExG295PhvLnpmh+RrFtafvAUcX/f4MeDbuQ09kj56iMWHRgJv5EJxOmmJ3Zq9tZ9v8DRwVb4uMoa0It6KFvwZNgGTJA2SNIH/r9X6xUprMg8jrZj2DGmpzSvquqeOknRKC/LaAOF3FtafrAV68oXa2aT1rzuA1fki83Z6X25yMfAtSd3Ai8Bf6v7bvcBaSasj4it1+xeSLgavIb1yvzUituZi0xfPABtJF967SR1Ym7WCNK00HnggIlYCSLqDtJrgIHL3VFKHUrNK7jprZmaVPA1lZmaVXCzMzKySi4WZmVVysTAzs0ouFmZmVsnFwszMKrlYmJlZpf8B/Jp9rm3/RrkAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - warm start')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"transfer_learn\"></a>\n",
+    "# Transfer learning\n",
+    "\n",
+    "<a id=\"load2\"></a>\n",
+    "# 1. Define and load model architecture with some layers frozen\n",
+    "Here we want to start with initial weights from a pre-trained model rather than training from scratch.  We also want to use a model architecture with the earlier feature layer(s) frozen to save on training time.  The example below is somewhat contrived but gives you the idea of the steps.\n",
+    "\n",
+    "First define a model architecture with the 1st hidden layer frozen:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_1\"\n",
+      "_________________________________________________________________\n",
+      "Layer (type)                 Output Shape              Param #   \n",
+      "=================================================================\n",
+      "dense_3 (Dense)              (None, 10)                50        \n",
+      "_________________________________________________________________\n",
+      "dense_4 (Dense)              (None, 10)                110       \n",
+      "_________________________________________________________________\n",
+      "dense_5 (Dense)              (None, 3)                 33        \n",
+      "=================================================================\n",
+      "Total params: 193\n",
+      "Trainable params: 143\n",
+      "Non-trainable params: 50\n",
+      "_________________________________________________________________\n"
+     ]
+    }
+   ],
+   "source": [
+    "model_transfer = Sequential()\n",
+    "model_transfer.add(Dense(10, activation='relu', input_shape=(4,), trainable=False))\n",
+    "model_transfer.add(Dense(10, activation='relu'))\n",
+    "model_transfer.add(Dense(3, activation='softmax'))\n",
+    "    \n",
+    "model_transfer.summary();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"name\": \"sequential_1\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 34,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model_transfer.to_json()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load transfer model into model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>model_arch</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Sophie</td>\n",
+       "        <td>A simple model</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': False, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
+       "        <td>Maria</td>\n",
+       "        <td>A transfer model</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1340 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Sophie', u'A simple model'),\n",
+       " (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u' ... (1341 characters truncated) ... s_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, u'Maria', u'A transfer model')]"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT madlib.load_keras_model('model_arch_library',  -- Output table,                      \n",
+    "$$\n",
+    "{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": false, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
+    "$$\n",
+    "::json,         -- JSON blob\n",
+    "                               NULL,                  -- Weights\n",
+    "                               'Maria',               -- Name\n",
+    "                               'A transfer model'     -- Descr\n",
+    ");\n",
+    "\n",
+    "SELECT model_id, model_arch, name, description FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train2\"></a>\n",
+    "# 2. Train transfer model\n",
+    "\n",
+    "Fetch the weights from a previous MADlib run.  (Normally these would be downloaded from a source that trained the same model architecture on a related dataset.)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 36,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library \n",
+    "SET model_weights = iris_model.model_weights \n",
+    "FROM iris_model \n",
+    "WHERE model_arch_library.model_id = 2;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now train the model using the transfer model and the pre-trained weights:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>madlib_keras_fit</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td></td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[('',)]"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS iris_model, iris_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('iris_train_packed',   -- source table\n",
+    "                               'iris_model',          -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                2,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] $$,  -- compile_params\n",
+    "                                $$ batch_size=5, epochs=3 $$,  -- fit_params\n",
+    "                                10,                   -- num_iterations\n",
+    "                                FALSE,                -- use GPUs\n",
+    "                                'iris_test_packed',   -- validation dataset\n",
+    "                                2                     -- metrics compute frequency\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>source_table</th>\n",
+       "        <th>model</th>\n",
+       "        <th>dependent_varname</th>\n",
+       "        <th>independent_varname</th>\n",
+       "        <th>model_arch_table</th>\n",
+       "        <th>model_id</th>\n",
+       "        <th>compile_params</th>\n",
+       "        <th>fit_params</th>\n",
+       "        <th>num_iterations</th>\n",
+       "        <th>validation_table</th>\n",
+       "        <th>object_table</th>\n",
+       "        <th>metrics_compute_frequency</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "        <th>model_type</th>\n",
+       "        <th>model_size</th>\n",
+       "        <th>start_training_time</th>\n",
+       "        <th>end_training_time</th>\n",
+       "        <th>metrics_elapsed_time</th>\n",
+       "        <th>madlib_version</th>\n",
+       "        <th>num_classes</th>\n",
+       "        <th>dependent_vartype</th>\n",
+       "        <th>normalizing_const</th>\n",
+       "        <th>metrics_type</th>\n",
+       "        <th>loss_type</th>\n",
+       "        <th>training_metrics_final</th>\n",
+       "        <th>training_loss_final</th>\n",
+       "        <th>training_metrics</th>\n",
+       "        <th>training_loss</th>\n",
+       "        <th>validation_metrics_final</th>\n",
+       "        <th>validation_loss_final</th>\n",
+       "        <th>validation_metrics</th>\n",
+       "        <th>validation_loss</th>\n",
+       "        <th>metrics_iters</th>\n",
+       "        <th>class_text_class_values</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>iris_train_packed</td>\n",
+       "        <td>iris_model</td>\n",
+       "        <td>[u'class_text']</td>\n",
+       "        <td>[u'attributes']</td>\n",
+       "        <td>model_arch_library</td>\n",
+       "        <td>2</td>\n",
+       "        <td> loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] </td>\n",
+       "        <td> batch_size=5, epochs=3 </td>\n",
+       "        <td>10</td>\n",
+       "        <td>iris_test_packed</td>\n",
+       "        <td>None</td>\n",
+       "        <td>2</td>\n",
+       "        <td>None</td>\n",
+       "        <td>None</td>\n",
+       "        <td>madlib_keras</td>\n",
+       "        <td>0.7900390625</td>\n",
+       "        <td>2021-03-06 00:30:15.327042</td>\n",
+       "        <td>2021-03-06 00:30:16.549371</td>\n",
+       "        <td>[0.64433479309082, 0.790453910827637, 0.93260383605957, 1.07773494720459, 1.22224497795105]</td>\n",
+       "        <td>1.18.0-dev</td>\n",
+       "        <td>[3]</td>\n",
+       "        <td>[u'character varying']</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>[u'accuracy']</td>\n",
+       "        <td>categorical_crossentropy</td>\n",
+       "        <td>0.991666674614</td>\n",
+       "        <td>0.101017765701</td>\n",
+       "        <td>[0.991666674613953, 0.991666674613953, 0.991666674613953, 0.991666674613953, 0.991666674613953]</td>\n",
+       "        <td>[0.127938449382782, 0.11921951174736, 0.112009204924107, 0.106061458587646, 0.101017765700817]</td>\n",
+       "        <td>0.966666638851</td>\n",
+       "        <td>0.124947711825</td>\n",
+       "        <td>[0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
+       "        <td>[0.151599556207657, 0.142985984683037, 0.135312005877495, 0.129271760582924, 0.124947711825371]</td>\n",
+       "        <td>[2, 4, 6, 8, 10]</td>\n",
+       "        <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'iris_train_packed', u'iris_model', [u'class_text'], [u'attributes'], u'model_arch_library', 2, u\" loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'] \", u' batch_size=5, epochs=3 ', 10, u'iris_test_packed', None, 2, None, None, u'madlib_keras', 0.7900390625, datetime.datetime(2021, 3, 6, 0, 30, 15, 327042), datetime.datetime(2021, 3, 6, 0, 30, 16, 549371), [0.64433479309082, 0.790453910827637, 0.93260383605957, 1.07773494720459, 1.22224497795105], u'1.18.0-dev', [3], [u'character varying'], 1.0, [u'accuracy'], u'categorical_crossentropy', 0.991666674613953, 0.101017765700817, [0.991666674613953, 0.991666674613953, 0.991666674613953, 0.991666674613953, 0.991666674613953], [0.127938449382782, 0.11921951174736, 0.112009204924107, 0.106061458587646, 0.101017765700817], 0.966666638851166, 0.124947711825371, [0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166, 0.966666638851166], [0.151599556207657, 0.142985984683037, 0.135312005877495, 0.129271760582924, 0.124947711825371], [2, 4, 6, 8, 10], [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'])]"
+      ]
+     },
+     "execution_count": 38,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM iris_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Note loss picks up from where the last training left off:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import sys\n",
+    "import os\n",
+    "from matplotlib import pyplot as plt\n",
+    "\n",
+    "# get accuracy and iteration number\n",
+    "iters_proxy = %sql SELECT metrics_iters FROM iris_model_summary;\n",
+    "train_accuracy_proxy = %sql SELECT training_metrics FROM iris_model_summary;\n",
+    "test_accuracy_proxy = %sql SELECT validation_metrics FROM iris_model_summary;\n",
+    "\n",
+    "# get number of points\n",
+    "num_points_proxy = %sql SELECT array_length(metrics_iters,1) FROM iris_model_summary;\n",
+    "num_points = num_points_proxy[0]\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "iters = np.array(iters_proxy).reshape(num_points)\n",
+    "train_accuracy = np.array(train_accuracy_proxy).reshape(num_points)\n",
+    "test_accuracy = np.array(test_accuracy_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation accuracy by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Accuracy')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_accuracy, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_accuracy, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# get loss\n",
+    "train_loss_proxy = %sql SELECT training_loss FROM iris_model_summary;\n",
+    "test_loss_proxy = %sql SELECT validation_loss FROM iris_model_summary;\n",
+    "\n",
+    "# reshape to np arrays\n",
+    "train_loss = np.array(train_loss_proxy).reshape(num_points)\n",
+    "test_loss = np.array(test_loss_proxy).reshape(num_points)\n",
+    "\n",
+    "#plot\n",
+    "plt.title('Iris validation loss by iteration - transfer learn')\n",
+    "plt.xlabel('Iteration number')\n",
+    "plt.ylabel('Loss')\n",
+    "plt.grid(True)\n",
+    "plt.plot(iters, train_loss, 'g.-', label='Train')\n",
+    "plt.plot(iters, test_loss, 'r.-', label='Test')\n",
+    "plt.legend();"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-cnn-v3.ipynb
similarity index 99%
rename from community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb
rename to community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-cnn-v3.ipynb
index 987ff4b..f7053ef 100644
--- a/community-artifacts/Deep-learning/MADlib-Keras-cifar10-cnn-v3.ipynb
+++ b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-cnn-v3.ipynb
@@ -59,46 +59,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {
     "scrolled": true
    },
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 2,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpadmin@madlib'"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
-    "#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
-    "\n",
     "# Greenplum Database 5.x on GCP - via tunnel\n",
     "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
@@ -108,7 +83,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -126,15 +101,15 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -155,32 +130,17 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 5,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "from __future__ import print_function\n",
-    "import keras\n",
-    "from keras.datasets import cifar10\n",
-    "from keras.preprocessing.image import ImageDataGenerator\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense, Dropout, Activation, Flatten\n",
-    "from keras.layers import Conv2D, MaxPooling2D\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import cifar10\n",
+    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
     "import os\n",
     "\n",
     "batch_size = 32\n",
@@ -197,7 +157,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-inference-v1.ipynb b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-inference-v1.ipynb
new file mode 100644
index 0000000..eb3daa2
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-cifar10-inference-v1.ipynb
@@ -0,0 +1,718 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Inference for CIFAR-10 dataset using predict BYOM\n",
+    "The predict BYOM function allows you to do inference using models that have not been trained with MADlib, but rather imported or created elsewhere. It was added in MADlib 1.17.\n",
+    "\n",
+    "In this workbook we train a model in Python using\n",
+    "https://keras.io/examples/cifar10_cnn/\n",
+    "and run inference on the validation set.\n",
+    "\n",
+    "## Table of contents\n",
+    "\n",
+    "<a href=\"#setup\">1. Setup</a>\n",
+    "\n",
+    "<a href=\"#train_model\">2. Train model in Python</a>\n",
+    "\n",
+    "<a href=\"#load_model\">3. Load model into table</a>\n",
+    "\n",
+    "<a href=\"#load_images\">4. Get validation data set and load into table</a>\n",
+    "\n",
+    "<a href=\"#inference\">5. Inference</a>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"setup\"></a>\n",
+    "# 1. Setup"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g9d9f756, cmake configuration time: Thu Mar  4 23:11:53 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train_model\"></a>\n",
+    "# 2. Train model in Python\n",
+    "\n",
+    "Train a model in Python using https://keras.io/examples/cifar10_cnn/\n",
+    "\n",
+    "Define model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "x_train shape: (50000, 32, 32, 3)\n",
+      "50000 train samples\n",
+      "10000 test samples\n",
+      "WARNING:tensorflow:From /Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/tensorflow/python/ops/init_ops.py:1251: calling __init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
+      "Instructions for updating:\n",
+      "Call initializer instance with the dtype argument instead of passing it to the constructor\n"
+     ]
+    }
+   ],
+   "source": [
+    "from __future__ import print_function\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import cifar10\n",
+    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
+    "import os\n",
+    "\n",
+    "batch_size = 32\n",
+    "num_classes = 10\n",
+    "epochs = 2\n",
+    "data_augmentation = True\n",
+    "num_predictions = 20\n",
+    "#save_dir = os.path.join(os.getcwd(), 'saved_models')\n",
+    "#model_name = 'keras_cifar10_trained_model.h5'\n",
+    "\n",
+    "# The data, split between train and test sets:\n",
+    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
+    "print('x_train shape:', x_train.shape)\n",
+    "print(x_train.shape[0], 'train samples')\n",
+    "print(x_test.shape[0], 'test samples')\n",
+    "\n",
+    "# Convert class vectors to binary class matrices.\n",
+    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
+    "y_test = keras.utils.to_categorical(y_test, num_classes)\n",
+    "\n",
+    "model = Sequential()\n",
+    "model.add(Conv2D(32, (3, 3), padding='same',\n",
+    "                 input_shape=x_train.shape[1:]))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Conv2D(32, (3, 3)))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
+    "model.add(Dropout(0.25))\n",
+    "\n",
+    "model.add(Conv2D(64, (3, 3), padding='same'))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Conv2D(64, (3, 3)))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
+    "model.add(Dropout(0.25))\n",
+    "\n",
+    "model.add(Flatten())\n",
+    "model.add(Dense(512))\n",
+    "model.add(Activation('relu'))\n",
+    "model.add(Dropout(0.5))\n",
+    "model.add(Dense(num_classes))\n",
+    "model.add(Activation('softmax'))\n",
+    "\n",
+    "# initiate RMSprop optimizer\n",
+    "opt = keras.optimizers.RMSprop(lr=0.0001, decay=1e-6)\n",
+    "\n",
+    "# Let's train the model using RMSprop\n",
+    "model.compile(loss='categorical_crossentropy',\n",
+    "              optimizer=opt,\n",
+    "              metrics=['accuracy']);"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.2.4-tf\", \"config\": {\"layers\": [{\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"batch_input_shape\": [null, 32, 32, 3], \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_1\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d\", \"dtype\": \"float32\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.25, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_2\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"conv2d_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_3\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_1\", \"dtype\": \"float32\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout_1\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.25, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Flatten\", \"config\": {\"dtype\": \"float32\", \"trainable\": true, \"name\": \"flatten\", \"data_format\": \"channels_last\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 512, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_4\"}}, {\"class_name\": \"Dropout\", \"config\": {\"name\": \"dropout_2\", \"dtype\": \"float32\", \"trainable\": true, \"rate\": 0.5, \"seed\": null, \"noise_shape\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"GlorotUniform\", \"config\": {\"dtype\": \"float32\", \"seed\": null}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {\"dtype\": \"float32\"}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"dtype\": \"float32\", \"activation\": \"softmax\", \"trainable\": true, \"name\": \"activation_5\"}}], \"name\": \"sequential\"}, \"backend\": \"tensorflow\"}'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model.to_json()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Using real-time data augmentation.\n",
+      "Epoch 1/2\n",
+      "1563/1563 [==============================] - 107s 69ms/step - loss: 1.8637 - acc: 0.3142 - val_loss: 1.6037 - val_acc: 0.4154\n",
+      "Epoch 2/2\n",
+      "1563/1563 [==============================] - 116s 74ms/step - loss: 1.5880 - acc: 0.4174 - val_loss: 1.4362 - val_acc: 0.4754\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<tensorflow.python.keras.callbacks.History at 0x14dfc98d0>"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "10000/10000 [==============================] - 7s 698us/sample - loss: 1.4365 - acc: 0.4754\n",
+      "Test loss: 1.4364811393737793\n",
+      "Test accuracy: 0.4754\n"
+     ]
+    }
+   ],
+   "source": [
+    "x_train = x_train.astype('float32')\n",
+    "x_test = x_test.astype('float32')\n",
+    "x_train /= 255\n",
+    "x_test /= 255\n",
+    "\n",
+    "if not data_augmentation:\n",
+    "    print('Not using data augmentation.')\n",
+    "    model.fit(x_train, y_train,\n",
+    "              batch_size=batch_size,\n",
+    "              epochs=epochs,\n",
+    "              validation_data=(x_test, y_test),\n",
+    "              shuffle=True)\n",
+    "else:\n",
+    "    print('Using real-time data augmentation.')\n",
+    "    # This will do preprocessing and realtime data augmentation:\n",
+    "    datagen = ImageDataGenerator(\n",
+    "        featurewise_center=False,  # set input mean to 0 over the dataset\n",
+    "        samplewise_center=False,  # set each sample mean to 0\n",
+    "        featurewise_std_normalization=False,  # divide inputs by std of the dataset\n",
+    "        samplewise_std_normalization=False,  # divide each input by its std\n",
+    "        zca_whitening=False,  # apply ZCA whitening\n",
+    "        zca_epsilon=1e-06,  # epsilon for ZCA whitening\n",
+    "        rotation_range=0,  # randomly rotate images in the range (degrees, 0 to 180)\n",
+    "        # randomly shift images horizontally (fraction of total width)\n",
+    "        width_shift_range=0.1,\n",
+    "        # randomly shift images vertically (fraction of total height)\n",
+    "        height_shift_range=0.1,\n",
+    "        shear_range=0.,  # set range for random shear\n",
+    "        zoom_range=0.,  # set range for random zoom\n",
+    "        channel_shift_range=0.,  # set range for random channel shifts\n",
+    "        # set mode for filling points outside the input boundaries\n",
+    "        fill_mode='nearest',\n",
+    "        cval=0.,  # value used for fill_mode = \"constant\"\n",
+    "        horizontal_flip=True,  # randomly flip images\n",
+    "        vertical_flip=False,  # randomly flip images\n",
+    "        # set rescaling factor (applied before any other transformation)\n",
+    "        rescale=None,\n",
+    "        # set function that will be applied on each input\n",
+    "        preprocessing_function=None,\n",
+    "        # image data format, either \"channels_first\" or \"channels_last\"\n",
+    "        data_format=None,\n",
+    "        # fraction of images reserved for validation (strictly between 0 and 1)\n",
+    "        validation_split=0.0)\n",
+    "\n",
+    "    # Compute quantities required for feature-wise normalization\n",
+    "    # (std, mean, and principal components if ZCA whitening is applied).\n",
+    "    datagen.fit(x_train)\n",
+    "\n",
+    "    # Fit the model on the batches generated by datagen.flow().\n",
+    "    model.fit_generator(datagen.flow(x_train, y_train,\n",
+    "                                     batch_size=batch_size),\n",
+    "                        epochs=epochs,\n",
+    "                        validation_data=(x_test, y_test),\n",
+    "                        workers=1)\n",
+    "\n",
+    "# Save model and weights\n",
+    "#if not os.path.isdir(save_dir):\n",
+    "#    os.makedirs(save_dir)\n",
+    "#model_path = os.path.join(save_dir, model_name)\n",
+    "#model.save(model_path)\n",
+    "#print('Saved trained model at %s ' % model_path)\n",
+    "\n",
+    "# Score trained model.\n",
+    "scores = model.evaluate(x_test, y_test, verbose=1)\n",
+    "print('Test loss:', scores[0])\n",
+    "print('Test accuracy:', scores[1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_model\"></a>\n",
+    "# 3.  Load model into table\n",
+    "\n",
+    "Load the model architecture and weights into the model architecture table"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>model_id</th>\n",
+       "        <th>name</th>\n",
+       "        <th>description</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>CIFAR10 model</td>\n",
+       "        <td>CNN model with weights trained on CIFAR10.</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(1, u'CIFAR10 model', u'CNN model with weights trained on CIFAR10.')]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import psycopg2 as p2\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "#conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "from keras.layers import *\n",
+    "from keras import Sequential\n",
+    "import numpy as np\n",
+    "\n",
+    "# get weights, flatten and serialize\n",
+    "weights = model.get_weights()\n",
+    "weights_flat = [w.flatten() for w in weights]\n",
+    "weights1d =  np.concatenate(weights_flat).ravel()\n",
+    "weights_bytea = p2.Binary(weights1d.tostring())\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS model_arch_library_cifar10;\n",
+    "query = \"SELECT madlib.load_keras_model('model_arch_library_cifar10', %s,%s,%s,%s)\"\n",
+    "cur.execute(query,[model.to_json(), weights_bytea, \"CIFAR10 model\", \"CNN model with weights trained on CIFAR10.\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check weights loaded OK\n",
+    "%sql SELECT model_id, name, description FROM model_arch_library_cifar10;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_images\"></a>\n",
+    "# 4. Get validation data set and load into table\n",
+    "\n",
+    "First set up image loader using the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import sys\n",
+    "import os\n",
+    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
+    "sys.path.append(madlib_site_dir)\n",
+    "\n",
+    "# Import image loader module\n",
+    "from madlib_image_loader import ImageLoader, DbCredentials\n",
+    "\n",
+    "# Specify database credentials, for connecting to db\n",
+    "#db_creds = DbCredentials(user='fmcquillan',\n",
+    "#                         host='localhost',\n",
+    "#                         port='5432',\n",
+    "#                         password='')\n",
+    "\n",
+    "# Specify database credentials, for connecting to db\n",
+    "db_creds = DbCredentials(user='gpadmin', \n",
+    "                         db_name='madlib',\n",
+    "                         host='localhost',\n",
+    "                         port='8000',\n",
+    "                         password='')\n",
+    "\n",
+    "# Initialize ImageLoader (increase num_workers to run faster)\n",
+    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Next load CIFAR-10 data from Keras consisting of 50,000 32x32 color training images, labeled over 10 categories, and 10,000 test images."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "MainProcess: Connected to madlib db.\n",
+      "Executing: CREATE TABLE cifar_10_test_data (id SERIAL, x REAL[], y TEXT)\n",
+      "CREATE TABLE\n",
+      "Created table cifar_10_test_data in madlib db\n",
+      "Spawning 5 workers...\n",
+      "Initializing PoolWorker-1 [pid 95042]\n",
+      "PoolWorker-1: Created temporary directory /tmp/madlib_dTZhEGBDFE\n",
+      "Initializing PoolWorker-2 [pid 95043]\n",
+      "PoolWorker-2: Created temporary directory /tmp/madlib_ctWjbhcjwz\n",
+      "Initializing PoolWorker-3 [pid 95044]\n",
+      "PoolWorker-3: Created temporary directory /tmp/madlib_nx9VuMScrX\n",
+      "Initializing PoolWorker-4 [pid 95045]\n",
+      "PoolWorker-4: Created temporary directory /tmp/madlib_thkphNCw4r\n",
+      "Initializing PoolWorker-5 [pid 95046]\n",
+      "PoolWorker-5: Created temporary directory /tmp/madlib_037luEXgEL\n",
+      "PoolWorker-2: Connected to madlib db.\n",
+      "PoolWorker-3: Connected to madlib db.\n",
+      "PoolWorker-1: Connected to madlib db.\n",
+      "PoolWorker-5: Connected to madlib db.\n",
+      "PoolWorker-4: Connected to madlib db.\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_nx9VuMScrX/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_dTZhEGBDFE/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_ctWjbhcjwz/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_037luEXgEL/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_thkphNCw4r/cifar_10_test_data0000.tmp\n",
+      "PoolWorker-3: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_nx9VuMScrX/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-1: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_dTZhEGBDFE/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-2: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-4: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-5: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_ctWjbhcjwz/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_thkphNCw4r/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_037luEXgEL/cifar_10_test_data0001.tmp\n",
+      "PoolWorker-3: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-2: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-4: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-5: Loaded 1000 images into cifar_10_test_data\n",
+      "PoolWorker-1: Removed temporary directory /tmp/madlib_dTZhEGBDFE\n",
+      "PoolWorker-2: Removed temporary directory /tmp/madlib_ctWjbhcjwz\n",
+      "PoolWorker-3: Removed temporary directory /tmp/madlib_nx9VuMScrX\n",
+      "PoolWorker-5: Removed temporary directory /tmp/madlib_037luEXgEL\n",
+      "PoolWorker-4: Removed temporary directory /tmp/madlib_thkphNCw4r\n",
+      "Done!  Loaded 10000 images in 108.267487049s\n",
+      "5 workers terminated.\n"
+     ]
+    }
+   ],
+   "source": [
+    "from keras.datasets import cifar10\n",
+    "\n",
+    "# Load dataset into np array\n",
+    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS cifar_10_test_data;\n",
+    "\n",
+    "# Save images to temporary directories and load into database\n",
+    "#iloader.load_dataset_from_np(x_train, y_train, 'cifar_10_train_data', append=False)\n",
+    "iloader.load_dataset_from_np(x_test, y_test, 'cifar_10_test_data', append=False)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"inference\"></a>\n",
+    "# 5. Inference"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "ename": "InternalError",
+     "evalue": "(psycopg2.errors.InternalError_) plpy.Error: Unable to get number of classes from model architecture. (plpython.c:5038)\nCONTEXT:  Traceback (most recent call last):\n  PL/Python function \"madlib_keras_predict_byom\", line 23, in <module>\n    madlib_keras_predict.PredictBYOM(**globals())\n  PL/Python function \"madlib_keras_predict_byom\", line 42, in wrapper\n  PL/Python function \"madlib_keras_predict_byom\", line 314, in __init__\n  PL/Python function \"madlib_keras_predict_byom\", line 326, in validate_and_set_defaults\n  PL/Python function \"madlib_keras_predict_byom\", line 207, in set_default_class_values\n  PL/Python function \"madlib_keras_predict_byom\", line 75, in get_num_classes\nPL/Python function \"madlib_keras_predict_byom\"\n\n[SQL: SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n                                         1,                            -- model arch id\n                                        'cifar_10_test_data',          -- test_table\n                                        'id',                          -- id column\n                                        'x',                           -- independent var\n                                        'cifar10_predict_byom',        -- output table\n                                        'response',                    -- prediction type\n                                         FALSE,                        -- use gpus\n                                         NULL,                         -- class values\n                                         255.0                         -- normalizing const\n                                   );]\n(Background on this error at: http://sqlalche.me/e/2j85)",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mInternalError\u001b[0m                             Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-11-d7da0ccca3f1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'sql'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34mu''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34mu\"DROP TABLE IF EXISTS cifar10_predict_byom;\\n\\nSELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\\n                                         1,                            -- model arch id\\n                                        'cifar_10_test_data',          -- test_table\\n                                        'id',                          -- id column\\n                                        'x',                           -- independent var\\n                                        'cifar10_predict_byom',        -- output table\\n                                        'response',                    -- prediction type\\n                                         FALSE,                        -- use gpus\\n                                         NULL,                         -- class values\\n                                         255.0                         -- normalizing const\\n                                   );\\nSELECT * FROM cifar10_predict_byom ORDER BY id LIMIT 10;\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[1;32m   2115\u001b[0m             \u001b[0mmagic_arg_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvar_expand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstack_depth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2116\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2117\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2118\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m</Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/decorator.pyc:decorator-gen-124>\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/magic.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    187\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m         \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    190\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m</Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/decorator.pyc:decorator-gen-123>\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/IPython/core/magic.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    187\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m         \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    190\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sql/magic.pyc\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n\u001b[1;32m    135\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 137\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msql\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparsed\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'sql'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muser_ns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    138\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    139\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumn_local_vars\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sql/run.pyc\u001b[0m in \u001b[0;36mrun\u001b[0;34m(conn, sql, config, user_namespace)\u001b[0m\n\u001b[1;32m    361\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    362\u001b[0m                 \u001b[0mtxt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msqlalchemy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msql\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 363\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtxt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muser_namespace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    364\u001b[0m             \u001b[0m_commit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    365\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeedback\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, object_, *multiparams, **params)\u001b[0m\n\u001b[1;32m    980\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mObjectNotExecutableError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    981\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 982\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    983\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    984\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_execute_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/sql/elements.pyc\u001b[0m in \u001b[0;36m_execute_on_connection\u001b[0;34m(self, connection, multiparams, params)\u001b[0m\n\u001b[1;32m    285\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_execute_on_connection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    286\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msupports_execution\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_execute_clauseelement\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmultiparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    288\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    289\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mObjectNotExecutableError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_clauseelement\u001b[0;34m(self, elem, multiparams, params)\u001b[0m\n\u001b[1;32m   1099\u001b[0m             \u001b[0mdistilled_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1100\u001b[0m             \u001b[0mcompiled_sql\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1101\u001b[0;31m             \u001b[0mdistilled_params\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1102\u001b[0m         )\n\u001b[1;32m   1103\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_has_events\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_has_events\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m   1248\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1249\u001b[0m             self._handle_dbapi_exception(\n\u001b[0;32m-> 1250\u001b[0;31m                 \u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1251\u001b[0m             )\n\u001b[1;32m   1252\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_handle_dbapi_exception\u001b[0;34m(self, e, statement, parameters, cursor, context)\u001b[0m\n\u001b[1;32m   1474\u001b[0m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from_cause\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnewraise\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1475\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mshould_wrap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1476\u001b[0;31m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from_cause\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msqlalchemy_exception\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1477\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1478\u001b[0m                 \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/util/compat.pyc\u001b[0m in \u001b[0;36mraise_from_cause\u001b[0;34m(exception, exc_info)\u001b[0m\n\u001b[1;32m    396\u001b[0m     \u001b[0mexc_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_tb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    397\u001b[0m     \u001b[0mcause\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexc_value\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mexc_value\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mexception\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 398\u001b[0;31m     \u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexception\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexception\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexc_tb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcause\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcause\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    399\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    400\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/base.pyc\u001b[0m in \u001b[0;36m_execute_context\u001b[0;34m(self, dialect, constructor, statement, parameters, *args)\u001b[0m\n\u001b[1;32m   1244\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mevt_handled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1245\u001b[0m                     self.dialect.do_execute(\n\u001b[0;32m-> 1246\u001b[0;31m                         \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1247\u001b[0m                     )\n\u001b[1;32m   1248\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Library/Python/2.7/lib/python/site-packages/sqlalchemy/engine/default.pyc\u001b[0m in \u001b[0;36mdo_execute\u001b[0;34m(self, cursor, statement, parameters, context)\u001b[0m\n\u001b[1;32m    579\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    580\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mdo_execute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 581\u001b[0;31m         \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparameters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    582\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    583\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mdo_execute_no_params\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatement\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mInternalError\u001b[0m: (psycopg2.errors.InternalError_) plpy.Error: Unable to get number of classes from model architecture. (plpython.c:5038)\nCONTEXT:  Traceback (most recent call last):\n  PL/Python function \"madlib_keras_predict_byom\", line 23, in <module>\n    madlib_keras_predict.PredictBYOM(**globals())\n  PL/Python function \"madlib_keras_predict_byom\", line 42, in wrapper\n  PL/Python function \"madlib_keras_predict_byom\", line 314, in __init__\n  PL/Python function \"madlib_keras_predict_byom\", line 326, in validate_and_set_defaults\n  PL/Python function \"madlib_keras_predict_byom\", line 207, in set_default_class_values\n  PL/Python function \"madlib_keras_predict_byom\", line 75, in get_num_classes\nPL/Python function \"madlib_keras_predict_byom\"\n\n[SQL: SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n                                         1,                            -- model arch id\n                                        'cifar_10_test_data',          -- test_table\n                                        'id',                          -- id column\n                                        'x',                           -- independent var\n                                        'cifar10_predict_byom',        -- output table\n                                        'response',                    -- prediction type\n                                         FALSE,                        -- use gpus\n                                         NULL,                         -- class values\n                                         255.0                         -- normalizing const\n                                   );]\n(Background on this error at: http://sqlalche.me/e/2j85)"
+     ]
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS cifar10_predict_byom;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_predict_byom('model_arch_library_cifar10',  -- model arch table\n",
+    "                                         1,                            -- model arch id\n",
+    "                                        'cifar_10_test_data',          -- test_table\n",
+    "                                        'id',                          -- id column\n",
+    "                                        'x',                           -- independent var\n",
+    "                                        'cifar10_predict_byom',        -- output table\n",
+    "                                        'response',                    -- prediction type\n",
+    "                                         FALSE,                        -- use gpus\n",
+    "                                         NULL,                         -- class values\n",
+    "                                         255.0                         -- normalizing const\n",
+    "                                   );\n",
+    "SELECT * FROM cifar10_predict_byom ORDER BY id LIMIT 10;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Number of missclassifications:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>count</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2551</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(2551L,)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT COUNT(*) FROM cifar10_predict_byom JOIN cifar_10_test_data USING (id)\n",
+    "WHERE cifar10_predict_byom.estimated_dependent_var != cifar_10_test_data.y;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Predict accuracy. From https://keras.io/examples/cifar10_cnn/ accuracy claim is 75% on validation set after 25 epochs.  From run above test accuracy: 0.7449.  MADlib predict BYOM accuracy matches:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>test_accuracy_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>74.49</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(Decimal('74.49'),)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "SELECT round(count(*)*100.0/10000.0, 2) as test_accuracy_percent from\n",
+    "    (select cifar_10_test_data.y as actual, cifar10_predict_byom.estimated_dependent_var as estimated\n",
+    "     from cifar10_predict_byom inner join cifar_10_test_data\n",
+    "     on cifar_10_test_data.id=cifar10_predict_byom.id) q\n",
+    "WHERE q.actual=q.estimated;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-imagenet-inference-v1.ipynb
old mode 100644
new mode 100755
similarity index 99%
rename from community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb
rename to community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-imagenet-inference-v1.ipynb
index 968ea88..733e442
--- a/community-artifacts/Deep-learning/MADlib-Keras-imagenet-inference-v1.ipynb
+++ b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-imagenet-inference-v1.ipynb
@@ -5179,7 +5179,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython2",
-   "version": "2.7.10"
+   "version": "2.7.16"
   }
  },
  "nbformat": 4,
diff --git a/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-transfer-learning-v3.ipynb b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-transfer-learning-v3.ipynb
new file mode 100644
index 0000000..3d17972
--- /dev/null
+++ b/community-artifacts/Deep-learning/Train-single-model/MADlib-Keras-transfer-learning-v3.ipynb
@@ -0,0 +1,829 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Transfer Learning Using Keras and MADlib\n",
+    "\n",
+    "This is a transfer learning example based on https://keras.io/examples/mnist_transfer_cnn/ \n",
+    "\n",
+    "To load images into tables we use the script called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning which uses the Python Imaging Library so supports multiple formats http://www.pythonware.com/products/pil/\n",
+    "\n",
+    "## Table of contents\n",
+    "<a href=\"#import_libraries\">1. Import libraries</a>\n",
+    "\n",
+    "<a href=\"#load_and_prepare_data\">2. Load and prepare data</a>\n",
+    "\n",
+    "<a href=\"#image_preproc\">3. Call image preprocessor</a>\n",
+    "\n",
+    "<a href=\"#define_and_load_model\">4. Define and load model architecture</a>\n",
+    "\n",
+    "<a href=\"#train\">5. Train</a>\n",
+    "\n",
+    "<a href=\"#transfer_learning\">6. Transfer learning</a>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"import_libraries\"></a>\n",
+    "# 1.  Import libraries\n",
+    "From https://keras.io/examples/mnist_transfer_cnn/ import libraries and define some params"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from __future__ import print_function\n",
+    "\n",
+    "import datetime\n",
+    "from tensorflow import keras\n",
+    "from tensorflow.keras.datasets import mnist\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
+    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
+    "from tensorflow.keras import backend as K\n",
+    "\n",
+    "now = datetime.datetime.now\n",
+    "\n",
+    "batch_size = 128\n",
+    "num_classes = 5\n",
+    "epochs = 5\n",
+    "\n",
+    "# input image dimensions\n",
+    "img_rows, img_cols = 28, 28\n",
+    "# number of convolutional filters to use\n",
+    "filters = 32\n",
+    "# size of pooling area for max pooling\n",
+    "pool_size = 2\n",
+    "# convolution kernel size\n",
+    "kernel_size = 3\n",
+    "\n",
+    "if K.image_data_format() == 'channels_first':\n",
+    "    input_shape = (1, img_rows, img_cols)\n",
+    "else:\n",
+    "    input_shape = (img_rows, img_cols, 1)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Others needed in this workbook"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"load_and_prepare_data\"></a>\n",
+    "# 2.  Load and prepare data\n",
+    "\n",
+    "First load MNIST data from Keras, consisting of 60,000 28x28 grayscale images of the 10 digits, along with a test set of 10,000 images."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(4861, 28, 28)\n",
+      "(4861, 28, 28, 1)\n"
+     ]
+    }
+   ],
+   "source": [
+    "# the data, split between train and test sets\n",
+    "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
+    "\n",
+    "# create two datasets one with digits below 5 and one with 5 and above\n",
+    "x_train_lt5 = x_train[y_train < 5]\n",
+    "y_train_lt5 = y_train[y_train < 5]\n",
+    "x_test_lt5 = x_test[y_test < 5]\n",
+    "y_test_lt5 = y_test[y_test < 5]\n",
+    "\n",
+    "x_train_gte5 = x_train[y_train >= 5]\n",
+    "y_train_gte5 = y_train[y_train >= 5] - 5\n",
+    "x_test_gte5 = x_test[y_test >= 5]\n",
+    "y_test_gte5 = y_test[y_test >= 5] - 5\n",
+    "\n",
+    "# reshape to match model architecture\n",
+    "print(x_test_gte5.shape)\n",
+    "x_train_lt5=x_train_lt5.reshape(len(x_train_lt5), *input_shape)\n",
+    "x_test_lt5 = x_test_lt5.reshape(len(x_test_lt5), *input_shape)\n",
+    "x_train_gte5=x_train_gte5.reshape(len(x_train_gte5), *input_shape)\n",
+    "x_test_gte5 = x_test_gte5.reshape(len(x_test_gte5), *input_shape)\n",
+    "print(x_test_gte5.shape)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load datasets into tables using image loader scripts called <em>madlib_image_loader.py</em> located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# MADlib tools directory\n",
+    "import sys\n",
+    "import os\n",
+    "madlib_site_dir = '/Users/fmcquillan/Documents/Product/MADlib/Demos/data'\n",
+    "sys.path.append(madlib_site_dir)\n",
+    "\n",
+    "# Import image loader module\n",
+    "from madlib_image_loader import ImageLoader, DbCredentials"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Specify database credentials, for connecting to db\n",
+    "#db_creds = DbCredentials(user='gpadmin',\n",
+    "#                         host='35.239.240.26',\n",
+    "#                         port='5432',\n",
+    "#                         password='')\n",
+    "\n",
+    "db_creds = DbCredentials(user='gpadmin',\n",
+    "                         host='localhost',\n",
+    "                         port='8000',\n",
+    "                         password='')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Initialize ImageLoader (increase num_workers to run faster)\n",
+    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "MainProcess: Connected to madlib db.\n",
+      "Executing: CREATE TABLE train_lt5 (id SERIAL, x REAL[], y TEXT[])\n",
+      "CREATE TABLE\n",
+      "Created table train_lt5 in madlib db\n",
+      "Spawning 5 workers...\n",
+      "Initializing PoolWorker-1 [pid 84275]\n",
+      "PoolWorker-1: Created temporary directory /tmp/madlib_5TU8FybuWQ\n",
+      "Initializing PoolWorker-2 [pid 84276]\n",
+      "PoolWorker-2: Created temporary directory /tmp/madlib_LjDRu2RVLy\n",
+      "Initializing PoolWorker-3 [pid 84277]\n",
+      "PoolWorker-3: Created temporary directory /tmp/madlib_ksuUrx0mOn\n",
+      "Initializing PoolWorker-4 [pid 84278]\n",
+      "PoolWorker-4: Created temporary directory /tmp/madlib_f2SlPjS13H\n",
+      "PoolWorker-5: Created temporary directory /tmp/madlib_8GA0SlnXzj\n",
+      "Initializing PoolWorker-5 [pid 84279]\n",
+      "PoolWorker-4: Connected to madlib db.\n",
+      "PoolWorker-5: Connected to madlib db.\n",
+      "PoolWorker-2: Connected to madlib db.\n",
+      "PoolWorker-1: Connected to madlib db.\n",
+      "PoolWorker-3: Connected to madlib db.\n",
+      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_8GA0SlnXzj/train_lt50000.tmp\n",
+      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_LjDRu2RVLy/train_lt50000.tmp\n",
+      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_f2SlPjS13H/train_lt50000.tmp\n",
+      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_5TU8FybuWQ/train_lt50000.tmp\n",
+      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_ksuUrx0mOn/train_lt50000.tmp\n",
+      "PoolWorker-5: Removed temporary directory /tmp/madlib_8GA0SlnXzj\n",
+      "\n",
+      "Error in PoolWorker-5 while loading images\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18042)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Removed temporary directory /tmp/madlib_LjDRu2RVLy\n",
+      "PoolWorker-1: Removed temporary directory /tmp/madlib_5TU8FybuWQ\n",
+      "\n",
+      "Error in PoolWorker-1 while loading images\n",
+      "Error in PoolWorker-2 while loading images\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18054)\n",
+      "CONTEXT:  COPY train_lt5, line 2, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18046)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Removed temporary directory /tmp/madlib_f2SlPjS13H\n",
+      "PoolWorker-3: Removed temporary directory /tmp/madlib_ksuUrx0mOn\n",
+      "\n",
+      "Error in PoolWorker-4 while loading images\n",
+      "Error in PoolWorker-3 while loading images\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18050)\n",
+      "CONTEXT:  COPY train_lt5, line 2, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 184, in _call_np_worker\n",
+      "    iloader._write_tmp_file_and_load(data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 396, in _write_tmp_file_and_load\n",
+      "    self._copy_into_db(f, data)\n",
+      "  File \"/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.py\", line 362, in _copy_into_db\n",
+      "    self.db_cur.copy_from(f, table_name, sep='|', columns=['x','y'])\n",
+      "BadCopyFileFormat: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18058)\n",
+      "CONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+      "\n",
+      "\n",
+      "\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "PoolWorker-5: Can't find temporary directory... exiting.\n",
+      "PoolWorker-1: Can't find temporary directory... exiting.\n",
+      "PoolWorker-2: Can't find temporary directory... exiting.\n",
+      "PoolWorker-4: Can't find temporary directory... exiting.\n",
+      "PoolWorker-3: Can't find temporary directory... exiting.\n",
+      "5 workers terminated.\n"
+     ]
+    },
+    {
+     "ename": "BadCopyFileFormat",
+     "evalue": "array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18042)\nCONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mBadCopyFileFormat\u001b[0m                         Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-10-3c25ba51b8fc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;31m# Save images to temporary directories and load into database\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'train_lt5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test_lt5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'test_lt5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_gte5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_gte5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'train_gte5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/Documents/Product/MADlib/Demos/data/madlib_image_loader.pyc\u001b[0m in \u001b[0;36mload_dataset_from_np\u001b[0;34m(self, data_x, data_y, table_name, append, label_datatype)\u001b[0m\n\u001b[1;32m    523\u001b[0m         \u001b[0;32mexcept\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mException\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    524\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mterminate_workers\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 525\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    527\u001b[0m         \u001b[0mend_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mBadCopyFileFormat\u001b[0m: array value must start with \"{\" or dimension information  (seg0 10.128.0.41:40000 pid=18042)\nCONTEXT:  COPY train_lt5, line 1, column {{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}...\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Drop tables\n",
+    "%sql DROP TABLE IF EXISTS train_lt5, test_lt5, train_gte5, test_gte5\n",
+    "\n",
+    "# Save images to temporary directories and load into database\n",
+    "iloader.load_dataset_from_np(x_train_lt5, y_train_lt5, 'train_lt5', append=False)\n",
+    "iloader.load_dataset_from_np(x_test_lt5, y_test_lt5, 'test_lt5', append=False)\n",
+    "iloader.load_dataset_from_np(x_train_gte5, y_train_gte5, 'train_gte5', append=False)\n",
+    "iloader.load_dataset_from_np(x_test_gte5, y_test_gte5, 'test_gte5', append=False)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"image_preproc\"></a>\n",
+    "# 3. Call image preprocessor\n",
+    "\n",
+    "Transforms from one image per row to multiple images per row for batch optimization.  Also normalizes and one-hot encodes.\n",
+    "\n",
+    "Training dataset < 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS train_lt5_packed, train_lt5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('train_lt5',               -- Source table\n",
+    "                                       'train_lt5_packed',        -- Output table\n",
+    "                                       'y',                       -- Dependent variable\n",
+    "                                       'x',                       -- Independent variable\n",
+    "                                        1000,                     -- Buffer size\n",
+    "                                        255                       -- Normalizing constant\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM train_lt5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Test dataset < 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS test_lt5_packed, test_lt5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('test_lt5',                -- Source table\n",
+    "                                         'test_lt5_packed',         -- Output table\n",
+    "                                         'y',                       -- Dependent variable\n",
+    "                                         'x',                       -- Independent variable\n",
+    "                                         'train_lt5_packed'         -- Training preproc table\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM test_lt5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Training dataset >= 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS train_gte5_packed, train_gte5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.training_preprocessor_dl('train_gte5',              -- Source table\n",
+    "                                       'train_gte5_packed',       -- Output table\n",
+    "                                       'y',                       -- Dependent variable\n",
+    "                                       'x',                       -- Independent variable\n",
+    "                                        1000,                     -- Buffer size\n",
+    "                                        255                       -- Normalizing constant\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM train_gte5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Test dataset >= 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS test_gte5_packed, test_gte5_packed_summary;\n",
+    "\n",
+    "SELECT madlib.validation_preprocessor_dl('test_gte5',             -- Source table\n",
+    "                                         'test_gte5_packed',      -- Output table\n",
+    "                                         'y',                     -- Dependent variable\n",
+    "                                         'x',                     -- Independent variable\n",
+    "                                         'train_gte5_packed'      -- Training preproc table\n",
+    "                                        );\n",
+    "\n",
+    "SELECT * FROM test_gte5_packed_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"define_and_load_model\"></a>\n",
+    "# 4. Define and load model architecture\n",
+    "\n",
+    "Model with feature and classification layers trainable"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# define two groups of layers: feature (convolutions) and classification (dense)\n",
+    "feature_layers = [\n",
+    "    Conv2D(filters, kernel_size,\n",
+    "           padding='valid',\n",
+    "           input_shape=input_shape),\n",
+    "    Activation('relu'),\n",
+    "    Conv2D(filters, kernel_size),\n",
+    "    Activation('relu'),\n",
+    "    MaxPooling2D(pool_size=pool_size),\n",
+    "    Dropout(0.25),\n",
+    "    Flatten(),\n",
+    "]\n",
+    "\n",
+    "classification_layers = [\n",
+    "    Dense(128),\n",
+    "    Activation('relu'),\n",
+    "    Dropout(0.5),\n",
+    "    Dense(num_classes),\n",
+    "    Activation('softmax')\n",
+    "]\n",
+    "\n",
+    "# create complete model\n",
+    "model = Sequential(feature_layers + classification_layers)\n",
+    "\n",
+    "model.summary()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into model architecture table using psycopg2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import psycopg2 as p2\n",
+    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
+    "conn = p2.connect('postgresql://gpadmin@localhost:8000/madlib')\n",
+    "cur = conn.cursor()\n",
+    "\n",
+    "%sql DROP TABLE IF EXISTS model_arch_library;\n",
+    "query = \"SELECT madlib.load_keras_model('model_arch_library', %s, NULL, %s)\"\n",
+    "cur.execute(query,[model.to_json(), \"feature + classification layers trainable\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check model loaded OK\n",
+    "%sql SELECT model_id, name FROM model_arch_library;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Model with feature layers frozen"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# freeze feature layers\n",
+    "for l in feature_layers:\n",
+    "    l.trainable = False\n",
+    "\n",
+    "model.summary()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Load into transfer model architecture table using psycopg2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cur.execute(query,[model.to_json(), \"only classification layers trainable\"])\n",
+    "conn.commit()\n",
+    "\n",
+    "# check model loaded OK\n",
+    "%sql SELECT model_id, name FROM model_arch_library ORDER BY model_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"train\"></a>\n",
+    "# 5.  Train\n",
+    "Train the model for 5-digit classification [0..4]  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_model, mnist_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('train_lt5_packed',    -- source table\n",
+    "                               'mnist_model',         -- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                1,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
+    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
+    "                                5                     -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mnist_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Evaluate using test data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('mnist_model',      -- model\n",
+    "                                   'test_lt5_packed',   -- test table\n",
+    "                                   'mnist_validate'     -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM mnist_validate;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<a id=\"transfer_learning\"></a>\n",
+    "# 6. Transfer learning"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Use UPDATE to load trained weights from previous run into the model library table:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "UPDATE model_arch_library\n",
+    "SET model_weights = mnist_model.model_weights\n",
+    "FROM mnist_model\n",
+    "WHERE model_arch_library.model_id = 2;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Transfer: train dense layers for new classification task [5..9]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_transfer_model, mnist_transfer_model_summary;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_fit('train_gte5_packed',   -- source table\n",
+    "                               'mnist_transfer_model',-- model output table\n",
+    "                               'model_arch_library',  -- model arch table\n",
+    "                                2,                    -- model arch id\n",
+    "                                $$ loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']$$,  -- compile_params\n",
+    "                                $$ batch_size=128, epochs=1 $$,  -- fit_params\n",
+    "                                5                     -- num_iterations\n",
+    "                              );"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "View the model summary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "SELECT * FROM mnist_transfer_model_summary;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Evaluate using test data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS mnist_transfer_validate;\n",
+    "\n",
+    "SELECT madlib.madlib_keras_evaluate('mnist_transfer_model',      -- model\n",
+    "                                   'test_gte5_packed',           -- test table\n",
+    "                                   'mnist_transfer_validate'     -- output table\n",
+    "                                   );\n",
+    "\n",
+    "SELECT * FROM mnist_transfer_validate;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "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.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/community-artifacts/Deep-learning/Load-images-v1.ipynb b/community-artifacts/Deep-learning/Utilities/.ipynb_checkpoints/Load-images-v1-checkpoint.ipynb
similarity index 96%
rename from community-artifacts/Deep-learning/Load-images-v1.ipynb
rename to community-artifacts/Deep-learning/Utilities/.ipynb_checkpoints/Load-images-v1-checkpoint.ipynb
index 61929e9..d158888 100644
--- a/community-artifacts/Deep-learning/Load-images-v1.ipynb
+++ b/community-artifacts/Deep-learning/Utilities/.ipynb_checkpoints/Load-images-v1-checkpoint.ipynb
@@ -25,44 +25,22 @@
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: fmcquillan@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP for deep learning (PM demo machine)\n",
-    "#%sql postgresql://gpadmin@35.239.240.26:5432/madlib\n",
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
     "# PostgreSQL local\n",
-    "%sql postgresql://fmcquillan@localhost:5432/madlib"
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
    ]
   },
   {
@@ -832,13 +810,7 @@
       "PoolWorker-12: Wrote 1000 images to /tmp/madlib_QOyefNO7bi/cifar_10_train_data_int0009.tmp\n",
       "PoolWorker-14: Loaded 1000 images into cifar_10_train_data_int\n",
       "PoolWorker-11: Loaded 1000 images into cifar_10_train_data_int\n",
-      "PoolWorker-12: Loaded 1000 images into cifar_10_train_data_int\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
+      "PoolWorker-12: Loaded 1000 images into cifar_10_train_data_int\n",
       "PoolWorker-11: Wrote 1000 images to /tmp/madlib_8Pc3rPCJJL/cifar_10_train_data_int0010.tmp\n",
       "PoolWorker-12: Wrote 1000 images to /tmp/madlib_QOyefNO7bi/cifar_10_train_data_int0010.tmp\n",
       "PoolWorker-11: Loaded 1000 images into cifar_10_train_data_int\n",
diff --git a/community-artifacts/Deep-learning/Load-images-v1.ipynb b/community-artifacts/Deep-learning/Utilities/Load-images-v1.ipynb
similarity index 72%
copy from community-artifacts/Deep-learning/Load-images-v1.ipynb
copy to community-artifacts/Deep-learning/Utilities/Load-images-v1.ipynb
index 61929e9..9d39228 100644
--- a/community-artifacts/Deep-learning/Load-images-v1.ipynb
+++ b/community-artifacts/Deep-learning/Utilities/Load-images-v1.ipynb
@@ -25,18 +25,7 @@
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
-      "  \"You should import from traitlets.config instead.\", ShimWarning)\n",
-      "/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
-      "  warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "%load_ext sql"
    ]
@@ -45,24 +34,13 @@
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: fmcquillan@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "# Greenplum Database 5.x on GCP for deep learning (PM demo machine)\n",
-    "#%sql postgresql://gpadmin@35.239.240.26:5432/madlib\n",
+    "# Greenplum Database 5.x on GCP - via tunnel\n",
+    "%sql postgresql://gpadmin@localhost:8000/madlib\n",
     "        \n",
     "# PostgreSQL local\n",
-    "%sql postgresql://fmcquillan@localhost:5432/madlib"
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib"
    ]
   },
   {
@@ -85,12 +63,12 @@
        "        <th>version</th>\n",
        "    </tr>\n",
        "    <tr>\n",
-       "        <td>MADlib version: 1.16, git revision: rc/1.16-rc1, cmake configuration time: Mon Jul  1 17:45:09 UTC 2019, build type: Release, build system: Darwin-16.7.0, C compiler: Clang, C++ compiler: Clang</td>\n",
+       "        <td>MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
        "    </tr>\n",
        "</table>"
       ],
       "text/plain": [
-       "[(u'MADlib version: 1.16, git revision: rc/1.16-rc1, cmake configuration time: Mon Jul  1 17:45:09 UTC 2019, build type: Release, build system: Darwin-16.7.0, C compiler: Clang, C++ compiler: Clang',)]"
+       "[(u'MADlib version: 1.18.0-dev, git revision: rel/v1.17.0-89-g14a91ce, cmake configuration time: Fri Mar  5 23:08:38 UTC 2021, build type: release, build system: Linux-3.10.0-1160.11.1.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
       ]
      },
      "execution_count": 3,
@@ -124,13 +102,6 @@
      "text": [
       "Using TensorFlow backend.\n"
      ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Couldn't import dot_parser, loading of dot files will not be possible.\n"
-     ]
     }
    ],
    "source": [
@@ -197,187 +168,38 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Done.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE cifar_10_train_data (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table cifar_10_train_data in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-1 [pid 82412]\n",
-      "PoolWorker-1: Created temporary directory /tmp/madlib_Bt85aChbv0\n",
-      "Initializing PoolWorker-2 [pid 82413]\n",
-      "PoolWorker-2: Created temporary directory /tmp/madlib_cSyCSiEhHT\n",
-      "Initializing PoolWorker-3 [pid 82414]\n",
-      "PoolWorker-3: Created temporary directory /tmp/madlib_uvtHjGCU5S\n",
-      "PoolWorker-1: Connected to madlib db.\n",
-      "Initializing PoolWorker-4 [pid 82415]\n",
-      "PoolWorker-4: Created temporary directory /tmp/madlib_eJmkoDZTr8\n",
-      "PoolWorker-2: Connected to madlib db.\n",
-      "Initializing PoolWorker-5 [pid 82417]\n",
-      "PoolWorker-5: Created temporary directory /tmp/madlib_websbk05x2\n",
-      "PoolWorker-3: Connected to madlib db.\n",
-      "PoolWorker-4: Connected to madlib db.\n",
-      "PoolWorker-5: Connected to madlib db.\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0000.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0000.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0000.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0000.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0000.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0001.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0001.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0001.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0001.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0001.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0002.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0002.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0002.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0002.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0002.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0003.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0003.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0003.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0003.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0003.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0004.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0004.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0004.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0004.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0004.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0005.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0005.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0005.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0005.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0005.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0006.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0006.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0006.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0006.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0006.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0007.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0007.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0007.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0007.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0007.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0008.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0008.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_uvtHjGCU5S/cifar_10_train_data0008.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_eJmkoDZTr8/cifar_10_train_data0008.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_websbk05x2/cifar_10_train_data0008.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-3: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-4: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-5: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0009.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0009.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0010.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_cSyCSiEhHT/cifar_10_train_data0010.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_Bt85aChbv0/cifar_10_train_data0011.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar_10_train_data\n",
-      "PoolWorker-2: Removed temporary directory /tmp/madlib_cSyCSiEhHT\n",
-      "PoolWorker-3: Removed temporary directory /tmp/madlib_uvtHjGCU5S\n"
+      "Done.\n"
      ]
     },
     {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "PoolWorker-5: Removed temporary directory /tmp/madlib_websbk05x2\n",
-      "PoolWorker-4: Removed temporary directory /tmp/madlib_eJmkoDZTr8\n",
-      "PoolWorker-1: Removed temporary directory /tmp/madlib_Bt85aChbv0\n",
-      "Done!  Loaded 50000 images in 24.2222080231s\n",
-      "5 workers terminated.\n",
       "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE cifar_10_test_data (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table cifar_10_test_data in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-6 [pid 82423]\n",
-      "PoolWorker-6: Created temporary directory /tmp/madlib_e615zVgkaE\n",
-      "Initializing PoolWorker-7 [pid 82424]\n",
-      "PoolWorker-7: Created temporary directory /tmp/madlib_iRi2oMNIFA\n",
-      "Initializing PoolWorker-8 [pid 82425]\n",
-      "PoolWorker-8: Created temporary directory /tmp/madlib_kkSktVCq3n\n",
-      "PoolWorker-6: Connected to madlib db.\n",
-      "Initializing PoolWorker-9 [pid 82426]\n",
-      "PoolWorker-7: Connected to madlib db.\n",
-      "PoolWorker-9: Created temporary directory /tmp/madlib_0To3XX96yI\n",
-      "Initializing PoolWorker-10 [pid 82428]\n",
-      "PoolWorker-8: Connected to madlib db.\n",
-      "PoolWorker-10: Created temporary directory /tmp/madlib_8zwK04IJsc\n",
-      "PoolWorker-9: Connected to madlib db.\n",
-      "PoolWorker-10: Connected to madlib db.\n",
-      "PoolWorker-6: Wrote 1000 images to /tmp/madlib_e615zVgkaE/cifar_10_test_data0000.tmp\n",
-      "PoolWorker-7: Wrote 1000 images to /tmp/madlib_iRi2oMNIFA/cifar_10_test_data0000.tmp\n",
-      "PoolWorker-8: Wrote 1000 images to /tmp/madlib_kkSktVCq3n/cifar_10_test_data0000.tmp\n",
-      "PoolWorker-9: Wrote 1000 images to /tmp/madlib_0To3XX96yI/cifar_10_test_data0000.tmp\n",
-      "PoolWorker-10: Wrote 1000 images to /tmp/madlib_8zwK04IJsc/cifar_10_test_data0000.tmp\n",
-      "PoolWorker-6: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-7: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-8: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-10: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-9: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-6: Wrote 1000 images to /tmp/madlib_e615zVgkaE/cifar_10_test_data0001.tmp\n",
-      "PoolWorker-7: Wrote 1000 images to /tmp/madlib_iRi2oMNIFA/cifar_10_test_data0001.tmp\n",
-      "PoolWorker-8: Wrote 1000 images to /tmp/madlib_kkSktVCq3n/cifar_10_test_data0001.tmp\n",
-      "PoolWorker-9: Wrote 1000 images to /tmp/madlib_0To3XX96yI/cifar_10_test_data0001.tmp\n",
-      "PoolWorker-10: Wrote 1000 images to /tmp/madlib_8zwK04IJsc/cifar_10_test_data0001.tmp\n",
-      "PoolWorker-6: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-7: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-8: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-9: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-10: Loaded 1000 images into cifar_10_test_data\n",
-      "PoolWorker-10: Removed temporary directory /tmp/madlib_8zwK04IJsc\n",
-      "PoolWorker-8: Removed temporary directory /tmp/madlib_kkSktVCq3n\n",
-      "PoolWorker-7: Removed temporary directory /tmp/madlib_iRi2oMNIFA\n",
-      "PoolWorker-6: Removed temporary directory /tmp/madlib_e615zVgkaE\n",
-      "PoolWorker-9: Removed temporary directory /tmp/madlib_0To3XX96yI\n",
-      "Done!  Loaded 10000 images in 4.6932258606s\n",
-      "5 workers terminated.\n"
+      "Executing: CREATE TABLE cifar_10_train_data (id SERIAL, x REAL[], y TEXT)\n"
+     ]
+    },
+    {
+     "ename": "RuntimeError",
+     "evalue": "relation \"cifar_10_train_data\" already exists while creating cifar_10_train_data in db madlib.\nIf the table already exists, you can use append=True to append more images to it.",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-6-046119109a65>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;31m# Save images to temporary directories and load into database\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'cifar_10_train_data'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      5\u001b[0m \u001b[0miloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dataset_from_np\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'cifar_10_test_data'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mappend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/workspace/madlib-site/community-artifacts/Deep-learning/utilities/madlib_image_loader.pyc\u001b[0m in \u001b[0;36mload_dataset_from_np\u001b[0;34m(self, data_x, data_y, table_name, append, label_datatype)\u001b[0m\n\u001b[1;32m    485\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    486\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 487\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_input_and_create_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_x\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata_y\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    488\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    489\u001b[0m         \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_x\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata_y\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/Users/fmcquillan/workspace/madlib-site/community-artifacts/Deep-learning/utilities/madlib_image_loader.pyc\u001b[0m in \u001b[0;36m_validate_input_and_create_table\u001b[0;34m(self, data_x, data_y)\u001b[0m\n\u001b[1;32m    438\u001b[0m                                    \u001b[0;34m\"append=True to append more images to it.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    439\u001b[0m                                 .format(e.message.strip(), self.table_name,\n\u001b[0;32m--> 440\u001b[0;31m                                         self.db_creds.db_name))\n\u001b[0m\u001b[1;32m    441\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    442\u001b[0m             print \"Created table {0} in {1} db\".format(self.table_name,\n",
+      "\u001b[0;31mRuntimeError\u001b[0m: relation \"cifar_10_train_data\" already exists while creating cifar_10_train_data in db madlib.\nIf the table already exists, you can use append=True to append more images to it."
      ]
     }
    ],
@@ -832,13 +654,7 @@
       "PoolWorker-12: Wrote 1000 images to /tmp/madlib_QOyefNO7bi/cifar_10_train_data_int0009.tmp\n",
       "PoolWorker-14: Loaded 1000 images into cifar_10_train_data_int\n",
       "PoolWorker-11: Loaded 1000 images into cifar_10_train_data_int\n",
-      "PoolWorker-12: Loaded 1000 images into cifar_10_train_data_int\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
+      "PoolWorker-12: Loaded 1000 images into cifar_10_train_data_int\n",
       "PoolWorker-11: Wrote 1000 images to /tmp/madlib_8Pc3rPCJJL/cifar_10_train_data_int0010.tmp\n",
       "PoolWorker-12: Wrote 1000 images to /tmp/madlib_QOyefNO7bi/cifar_10_train_data_int0010.tmp\n",
       "PoolWorker-11: Loaded 1000 images into cifar_10_train_data_int\n",
diff --git a/community-artifacts/Deep-learning/madlib_image_loader.py b/community-artifacts/Deep-learning/Utilities/madlib_image_loader.py
similarity index 100%
rename from community-artifacts/Deep-learning/madlib_image_loader.py
rename to community-artifacts/Deep-learning/Utilities/madlib_image_loader.py
diff --git a/community-artifacts/Deep-learning/automl/hyperband-diag-cifar10-v1.ipynb b/community-artifacts/Deep-learning/automl/hyperband-diag-cifar10-v1.ipynb
deleted file mode 100644
index 05a7143..0000000
--- a/community-artifacts/Deep-learning/automl/hyperband-diag-cifar10-v1.ipynb
+++ /dev/null
@@ -1,5288 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Hyperband diagonal using CIFAR-10\n",
-    "\n",
-    "Implemention of Hyperband https://arxiv.org/pdf/1603.06560.pdf for MPP with a synchronous barrier. Uses the Hyperband schedule but runs it on a diagonal across brackets, instead of one bracket at a time, to be more efficient with cluster resources.\n",
-    "\n",
-    "The CIFAR-10 dataset consists of 60,000 32x32 colour images in 10 classes, with 6,000 images per class. There are 50,000 training images and 10,000 test images.\n",
-    "https://www.cs.toronto.edu/~kriz/cifar.html\n",
-    "\n",
-    "\n",
-    "## Table of contents \n",
-    "\n",
-    "<a href=\"#setup\">0. Setup</a>\n",
-    "\n",
-    "<a href=\"#load_dataset\">1. Load dataset into table</a>\n",
-    "\n",
-    "<a href=\"#distr\">2. Setup distribution rules and call preprocessor</a>\n",
-    "\n",
-    "<a href=\"#arch\">3. Define and load model architectures</a>\n",
-    "\n",
-    "<a href=\"#hyperband\">4. Hyperband diagonal</a>\n",
-    "\n",
-    "<a href=\"#plot\">5. Plot results</a>\n",
-    "\n",
-    "<a href=\"#print\">6. Pretty print schedules</a>\n",
-    "\n",
-    "<a href=\"#predict\">7. Inference</a>"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"setup\"></a>\n",
-    "# 0. Setup"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: fmcquillan@madlib'"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Greenplum Database 5.x on GCP - via tunnel\n",
-    "#%sql postgresql://gpadmin@localhost:8000/madlib\n",
-    "#%sql postgresql://gpadmin@35.230.53.21:5432/cifar_demo\n",
-    "\n",
-    "# PostgreSQL local\n",
-    "%sql postgresql://fmcquillan@localhost:5432/madlib"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      " * postgresql://fmcquillan@localhost:5432/madlib\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.16, git revision: rc/1.16-rc1, cmake configuration time: Mon Jul  1 17:45:09 UTC 2019, build type: Release, build system: Darwin-16.7.0, C compiler: Clang, C++ compiler: Clang</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.16, git revision: rc/1.16-rc1, cmake configuration time: Mon Jul  1 17:45:09 UTC 2019, build type: Release, build system: Darwin-16.7.0, C compiler: Clang, C++ compiler: Clang',)]"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Import libraries and define some params"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Using TensorFlow backend.\n"
-     ]
-    }
-   ],
-   "source": [
-    "from __future__ import print_function\n",
-    "import keras\n",
-    "from keras.datasets import cifar10\n",
-    "from keras.preprocessing.image import ImageDataGenerator\n",
-    "from keras.models import Sequential\n",
-    "from keras.layers import Dense, Dropout, Activation, Flatten, BatchNormalization\n",
-    "from keras.layers import Conv2D, MaxPooling2D\n",
-    "import os"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Others needed in this workbook"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import pandas as pd\n",
-    "import numpy as np\n",
-    "import sys\n",
-    "import os\n",
-    "from matplotlib import pyplot as plt"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"load_dataset\"></a>\n",
-    "# 1.  Load dataset into table"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "PXF can be used to load image data.  \n",
-    "\n",
-    "For this demo, we will get the dataset from Keras and use the script called madlib_image_loader.py located at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts/Deep-learning .\n",
-    "\n",
-    "If the script is not in the same folder as the notebook, you can use the following lines to import it."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import sys\n",
-    "sys.path.insert(1, '/Users/fmcquillan/workspace/madlib-site/community-artifacts/Deep-learning')\n",
-    "from madlib_image_loader import ImageLoader, DbCredentials\n",
-    "\n",
-    "# Specify database credentials, for connecting to db\n",
-    "db_creds = DbCredentials(user='gpadmin',\n",
-    "                         host='localhost',\n",
-    "                         port='8000',\n",
-    "                         password='')\n",
-    "\n",
-    "#db_creds = DbCredentials(user='fmcquillan',\n",
-    "#                         host='localhost',\n",
-    "#                         port='5432',\n",
-    "#                         password='')\n",
-    "\n",
-    "# Initialize ImageLoader (increase num_workers to run faster)\n",
-    "iloader = ImageLoader(num_workers=5, db_creds=db_creds)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load the training and test data"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      " * postgresql://fmcquillan@localhost:5432/madlib\n",
-      "Done.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE cifar10_train (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table cifar10_train in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-1 [pid 10828]\n",
-      "Initializing PoolWorker-2 [pid 10829]\n",
-      "PoolWorker-1: Created temporary directory /tmp/madlib_DaP40IOgzi\n",
-      "Initializing PoolWorker-3 [pid 10830]\n",
-      "PoolWorker-2: Created temporary directory /tmp/madlib_n5XjJvXs5s\n",
-      "PoolWorker-3: Created temporary directory /tmp/madlib_99mTsCxOFF\n",
-      "Initializing PoolWorker-4 [pid 10831]\n",
-      "PoolWorker-5: Connected to madlib db.\n",
-      "PoolWorker-4: Created temporary directory /tmp/madlib_zGujxaoQIb\n",
-      "Initializing PoolWorker-5 [pid 10832]\n",
-      "PoolWorker-1: Connected to madlib db.\n",
-      "PoolWorker-5: Created temporary directory /tmp/madlib_D6q8olnown\n",
-      "PoolWorker-2: Connected to madlib db.\n",
-      "PoolWorker-3: Connected to madlib db.\n",
-      "PoolWorker-4: Connected to madlib db.\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0000.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0000.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0000.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0000.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0000.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0001.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0001.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0001.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0001.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0001.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0002.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0002.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0002.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0002.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0002.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0003.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0003.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0003.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0003.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0003.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0004.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0004.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0004.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0004.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0004.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0005.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0005.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0005.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0005.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0005.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0006.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0006.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0006.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0006.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0006.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0007.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0007.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0007.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0007.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0007.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0008.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0008.tmp\n",
-      "PoolWorker-2: Wrote 1000 images to /tmp/madlib_n5XjJvXs5s/cifar10_train0008.tmp\n",
-      "PoolWorker-4: Wrote 1000 images to /tmp/madlib_zGujxaoQIb/cifar10_train0008.tmp\n",
-      "PoolWorker-5: Wrote 1000 images to /tmp/madlib_D6q8olnown/cifar10_train0008.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-2: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-5: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0009.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0009.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0010.tmp\n",
-      "PoolWorker-3: Wrote 1000 images to /tmp/madlib_99mTsCxOFF/cifar10_train0010.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-3: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-1: Wrote 1000 images to /tmp/madlib_DaP40IOgzi/cifar10_train0011.tmp\n",
-      "PoolWorker-1: Loaded 1000 images into cifar10_train\n",
-      "PoolWorker-4: Removed temporary directory /tmp/madlib_zGujxaoQIb\n",
-      "PoolWorker-5: Removed temporary directory /tmp/madlib_D6q8olnown\n",
-      "PoolWorker-2: Removed temporary directory /tmp/madlib_n5XjJvXs5s\n",
-      "PoolWorker-1: Removed temporary directory /tmp/madlib_DaP40IOgzi\n",
-      "PoolWorker-3: Removed temporary directory /tmp/madlib_99mTsCxOFF\n",
-      "Done!  Loaded 50000 images in 19.7727279663s\n",
-      "5 workers terminated.\n",
-      "MainProcess: Connected to madlib db.\n",
-      "Executing: CREATE TABLE cifar10_val (id SERIAL, x REAL[], y TEXT)\n",
-      "CREATE TABLE\n",
-      "Created table cifar10_val in madlib db\n",
-      "Spawning 5 workers...\n",
-      "Initializing PoolWorker-6 [pid 10850]\n",
-      "PoolWorker-6: Created temporary directory /tmp/madlib_OqFarH4eVS\n",
-      "Initializing PoolWorker-7 [pid 10851]\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "PoolWorker-7: Created temporary directory /tmp/madlib_BHhah9z53T\n",
-      "Initializing PoolWorker-8 [pid 10852]\n",
-      "PoolWorker-8: Created temporary directory /tmp/madlib_G5oLCmXwQN\n",
-      "Initializing PoolWorker-9 [pid 10853]\n",
-      "PoolWorker-6: Connected to madlib db.\n",
-      "PoolWorker-9: Created temporary directory /tmp/madlib_THDiiymnsM\n",
-      "Initializing PoolWorker-10 [pid 10854]\n",
-      "PoolWorker-7: Connected to madlib db.\n",
-      "PoolWorker-10: Created temporary directory /tmp/madlib_DLO1TEiyo6\n",
-      "PoolWorker-8: Connected to madlib db.\n",
-      "PoolWorker-9: Connected to madlib db.\n",
-      "PoolWorker-10: Connected to madlib db.\n",
-      "PoolWorker-6: Wrote 1000 images to /tmp/madlib_OqFarH4eVS/cifar10_val0000.tmp\n",
-      "PoolWorker-7: Wrote 1000 images to /tmp/madlib_BHhah9z53T/cifar10_val0000.tmp\n",
-      "PoolWorker-8: Wrote 1000 images to /tmp/madlib_G5oLCmXwQN/cifar10_val0000.tmp\n",
-      "PoolWorker-9: Wrote 1000 images to /tmp/madlib_THDiiymnsM/cifar10_val0000.tmp\n",
-      "PoolWorker-10: Wrote 1000 images to /tmp/madlib_DLO1TEiyo6/cifar10_val0000.tmp\n",
-      "PoolWorker-6: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-7: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-8: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-9: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-10: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-6: Wrote 1000 images to /tmp/madlib_OqFarH4eVS/cifar10_val0001.tmp\n",
-      "PoolWorker-7: Wrote 1000 images to /tmp/madlib_BHhah9z53T/cifar10_val0001.tmp\n",
-      "PoolWorker-8: Wrote 1000 images to /tmp/madlib_G5oLCmXwQN/cifar10_val0001.tmp\n",
-      "PoolWorker-9: Wrote 1000 images to /tmp/madlib_THDiiymnsM/cifar10_val0001.tmp\n",
-      "PoolWorker-10: Wrote 1000 images to /tmp/madlib_DLO1TEiyo6/cifar10_val0001.tmp\n",
-      "PoolWorker-6: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-7: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-8: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-9: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-10: Loaded 1000 images into cifar10_val\n",
-      "PoolWorker-8: Removed temporary directory /tmp/madlib_G5oLCmXwQN\n",
-      "PoolWorker-7: Removed temporary directory /tmp/madlib_BHhah9z53T\n",
-      "PoolWorker-10: Removed temporary directory /tmp/madlib_DLO1TEiyo6\n",
-      "PoolWorker-6: Removed temporary directory /tmp/madlib_OqFarH4eVS\n",
-      "PoolWorker-9: Removed temporary directory /tmp/madlib_THDiiymnsM\n",
-      "Done!  Loaded 10000 images in 4.03977298737s\n",
-      "5 workers terminated.\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Load dataset into np array\n",
-    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n",
-    "\n",
-    "%sql DROP TABLE IF EXISTS cifar10_train, cifar10_val;\n",
-    "\n",
-    "# Save images to temporary directories and load into database\n",
-    "iloader.load_dataset_from_np(x_train, y_train, 'cifar10_train', append=False)\n",
-    "iloader.load_dataset_from_np(x_test, y_test, 'cifar10_val', append=False)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      " * postgresql://gpadmin@localhost:8000/madlib\n",
-      "(psycopg2.errors.UndefinedTable) relation \"cifar_10_train_data\" does not exist\n",
-      "LINE 1: SELECT COUNT(*) FROM cifar_10_train_data;\n",
-      "                             ^\n",
-      "\n",
-      "[SQL: SELECT COUNT(*) FROM cifar_10_train_data;]\n",
-      "(Background on this error at: http://sqlalche.me/e/f405)\n"
-     ]
-    }
-   ],
-   "source": [
-    "%sql SELECT COUNT(*) FROM cifar10_train;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>10000</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(10000L,)]"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql SELECT COUNT(*) FROM cifar10_val;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"distr\"></a>\n",
-    "# 2.  Setup distribution rules and call preprocessor\n",
-    "\n",
-    "Get cluster configuration\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "20 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>hostname</th>\n",
-       "        <th>gpu_descr</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix1</td>\n",
-       "        <td>device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix1</td>\n",
-       "        <td>device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix1</td>\n",
-       "        <td>device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix1</td>\n",
-       "        <td>device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix2</td>\n",
-       "        <td>device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix2</td>\n",
-       "        <td>device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix2</td>\n",
-       "        <td>device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix2</td>\n",
-       "        <td>device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix3</td>\n",
-       "        <td>device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix3</td>\n",
-       "        <td>device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix3</td>\n",
-       "        <td>device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix3</td>\n",
-       "        <td>device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix4</td>\n",
-       "        <td>device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix4</td>\n",
-       "        <td>device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix4</td>\n",
-       "        <td>device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>phoenix4</td>\n",
-       "        <td>device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'phoenix0', u'device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0'),\n",
-       " (u'phoenix0', u'device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0'),\n",
-       " (u'phoenix0', u'device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0'),\n",
-       " (u'phoenix0', u'device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0'),\n",
-       " (u'phoenix1', u'device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0'),\n",
-       " (u'phoenix1', u'device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0'),\n",
-       " (u'phoenix1', u'device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0'),\n",
-       " (u'phoenix1', u'device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0'),\n",
-       " (u'phoenix2', u'device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0'),\n",
-       " (u'phoenix2', u'device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0'),\n",
-       " (u'phoenix2', u'device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0'),\n",
-       " (u'phoenix2', u'device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0'),\n",
-       " (u'phoenix3', u'device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0'),\n",
-       " (u'phoenix3', u'device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0'),\n",
-       " (u'phoenix3', u'device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0'),\n",
-       " (u'phoenix3', u'device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0'),\n",
-       " (u'phoenix4', u'device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0'),\n",
-       " (u'phoenix4', u'device: 1, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:05.0, compute capability: 6.0'),\n",
-       " (u'phoenix4', u'device: 2, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:06.0, compute capability: 6.0'),\n",
-       " (u'phoenix4', u'device: 3, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:07.0, compute capability: 6.0')]"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS host_gpu_mapping_tf;\n",
-    "SELECT * FROM madlib.gpu_configuration('host_gpu_mapping_tf');\n",
-    "SELECT * FROM host_gpu_mapping_tf ORDER BY hostname, gpu_descr;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Below are examples of setting up different distribution rules tables.  You can customize this to your needs.\n",
-    "\n",
-    "Build distribution rules table for 4 VMs"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS segments_to_use_4VMs;\n",
-    "CREATE TABLE segments_to_use_4VMs AS\n",
-    "  SELECT DISTINCT dbid, hostname FROM gp_segment_configuration JOIN host_gpu_mapping_tf USING (hostname)\n",
-    "  WHERE role='p' AND content>=0 AND hostname!='phoenix4';\n",
-    "SELECT * FROM segments_to_use_4VMs ORDER BY hostname, dbid;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Build distribution rules table for 2 VMs"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS segments_to_use_2VMs;\n",
-    "CREATE TABLE segments_to_use_2VMs AS\n",
-    "  SELECT DISTINCT dbid, hostname FROM gp_segment_configuration JOIN host_gpu_mapping_tf USING (hostname)\n",
-    "  WHERE role='p' AND content>=0 AND (hostname='phoenix0' OR hostname='phoenix1');\n",
-    "SELECT * FROM segments_to_use_2VMs ORDER BY hostname, dbid;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Build distribution rules table for 1 VMs"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS segments_to_use_1VM;\n",
-    "CREATE TABLE segments_to_use_1VM AS\n",
-    "  SELECT DISTINCT dbid, hostname FROM gp_segment_configuration JOIN host_gpu_mapping_tf USING (hostname)\n",
-    "  WHERE role='p' AND content>=0 AND hostname='phoenix0';\n",
-    "SELECT * FROM segments_to_use_1VM ORDER BY hostname, dbid;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Build distribution rules table for 1 segment"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "5 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>dbid</th>\n",
-       "        <th>content</th>\n",
-       "        <th>role</th>\n",
-       "        <th>preferred_role</th>\n",
-       "        <th>mode</th>\n",
-       "        <th>status</th>\n",
-       "        <th>port</th>\n",
-       "        <th>hostname</th>\n",
-       "        <th>address</th>\n",
-       "        <th>replication_port</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>-1</td>\n",
-       "        <td>p</td>\n",
-       "        <td>p</td>\n",
-       "        <td>s</td>\n",
-       "        <td>u</td>\n",
-       "        <td>5432</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>None</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>0</td>\n",
-       "        <td>p</td>\n",
-       "        <td>p</td>\n",
-       "        <td>c</td>\n",
-       "        <td>u</td>\n",
-       "        <td>40000</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>70000</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>1</td>\n",
-       "        <td>p</td>\n",
-       "        <td>p</td>\n",
-       "        <td>c</td>\n",
-       "        <td>u</td>\n",
-       "        <td>40001</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>70001</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>2</td>\n",
-       "        <td>p</td>\n",
-       "        <td>p</td>\n",
-       "        <td>c</td>\n",
-       "        <td>u</td>\n",
-       "        <td>40002</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>70002</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>3</td>\n",
-       "        <td>p</td>\n",
-       "        <td>p</td>\n",
-       "        <td>c</td>\n",
-       "        <td>u</td>\n",
-       "        <td>40003</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>phoenix0</td>\n",
-       "        <td>70003</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, -1, u'p', u'p', u's', u'u', 5432, u'phoenix0', u'phoenix0', None),\n",
-       " (2, 0, u'p', u'p', u'c', u'u', 40000, u'phoenix0', u'phoenix0', 70000),\n",
-       " (3, 1, u'p', u'p', u'c', u'u', 40001, u'phoenix0', u'phoenix0', 70001),\n",
-       " (4, 2, u'p', u'p', u'c', u'u', 40002, u'phoenix0', u'phoenix0', 70002),\n",
-       " (5, 3, u'p', u'p', u'c', u'u', 40003, u'phoenix0', u'phoenix0', 70003)]"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM gp_segment_configuration WHERE role='p' AND hostname='phoenix0' ORDER BY dbid;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>dbid</th>\n",
-       "        <th>hostname</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>phoenix0</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(2, u'phoenix0')]"
-      ]
-     },
-     "execution_count": 27,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS segments_to_use_1seg;\n",
-    "CREATE TABLE segments_to_use_1seg AS\n",
-    "  SELECT DISTINCT dbid, hostname FROM gp_segment_configuration JOIN host_gpu_mapping_tf USING (hostname)\n",
-    "  WHERE dbid=2;\n",
-    "SELECT * FROM segments_to_use_1seg ORDER BY hostname, dbid;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Training dataset (uses training preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "16 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>4</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>6</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>7</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>8</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>9</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>10</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>11</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>14</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[3125, 32, 32, 3]</td>\n",
-       "        <td>[3125, 10]</td>\n",
-       "        <td>15</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([3125, 32, 32, 3], [3125, 10], 0),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 1),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 2),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 3),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 4),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 5),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 6),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 7),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 8),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 9),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 10),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 11),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 12),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 13),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 14),\n",
-       " ([3125, 32, 32, 3], [3125, 10], 15)]"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS cifar10_train_packed, cifar10_train_packed_summary;\n",
-    "\n",
-    "SELECT madlib.training_preprocessor_dl('cifar10_train',        -- Source table\n",
-    "                                       'cifar10_train_packed', -- Output table\n",
-    "                                       'y',                    -- Dependent variable\n",
-    "                                       'x',                    -- Independent variable\n",
-    "                                        NULL,                  -- Buffer size\n",
-    "                                        256.0,                 -- Normalizing constant\n",
-    "                                        NULL,                  -- Number of classes\n",
-    "                                       'gpu_segments'          -- Distribution rules\n",
-    "                                        );\n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM cifar10_train_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>cifar10_train</td>\n",
-       "        <td>cifar10_train_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>smallint</td>\n",
-       "        <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
-       "        <td>3125</td>\n",
-       "        <td>256.0</td>\n",
-       "        <td>10</td>\n",
-       "        <td>[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]</td>\n",
-       "        <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'cifar10_train', u'cifar10_train_packed', u'y', u'x', u'smallint', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3125, 256.0, 10, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])]"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM cifar10_train_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Validation dataset (uses validation preprocessor):"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "16 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>independent_var_shape</th>\n",
-       "        <th>dependent_var_shape</th>\n",
-       "        <th>buffer_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>4</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>6</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>7</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>8</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>9</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>10</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>11</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>12</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>13</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>14</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[625, 32, 32, 3]</td>\n",
-       "        <td>[625, 10]</td>\n",
-       "        <td>15</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([625, 32, 32, 3], [625, 10], 0),\n",
-       " ([625, 32, 32, 3], [625, 10], 1),\n",
-       " ([625, 32, 32, 3], [625, 10], 2),\n",
-       " ([625, 32, 32, 3], [625, 10], 3),\n",
-       " ([625, 32, 32, 3], [625, 10], 4),\n",
-       " ([625, 32, 32, 3], [625, 10], 5),\n",
-       " ([625, 32, 32, 3], [625, 10], 6),\n",
-       " ([625, 32, 32, 3], [625, 10], 7),\n",
-       " ([625, 32, 32, 3], [625, 10], 8),\n",
-       " ([625, 32, 32, 3], [625, 10], 9),\n",
-       " ([625, 32, 32, 3], [625, 10], 10),\n",
-       " ([625, 32, 32, 3], [625, 10], 11),\n",
-       " ([625, 32, 32, 3], [625, 10], 12),\n",
-       " ([625, 32, 32, 3], [625, 10], 13),\n",
-       " ([625, 32, 32, 3], [625, 10], 14),\n",
-       " ([625, 32, 32, 3], [625, 10], 15)]"
-      ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS cifar10_val_packed, cifar10_val_packed_summary;\n",
-    "\n",
-    "SELECT madlib.validation_preprocessor_dl('cifar10_val',          -- Source table\n",
-    "                                         'cifar10_val_packed',   -- Output table\n",
-    "                                         'y',                    -- Dependent variable\n",
-    "                                         'x',                    -- Independent variable\n",
-    "                                         'cifar10_train_packed', -- From training preprocessor step\n",
-    "                                         NULL,                   -- Buffer size\n",
-    "                                         'gpu_segments'          -- Distribution rules\n",
-    "                                          ); \n",
-    "\n",
-    "SELECT independent_var_shape, dependent_var_shape, buffer_id FROM cifar10_val_packed ORDER BY buffer_id;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>source_table</th>\n",
-       "        <th>output_table</th>\n",
-       "        <th>dependent_varname</th>\n",
-       "        <th>independent_varname</th>\n",
-       "        <th>dependent_vartype</th>\n",
-       "        <th>class_values</th>\n",
-       "        <th>buffer_size</th>\n",
-       "        <th>normalizing_const</th>\n",
-       "        <th>num_classes</th>\n",
-       "        <th>distribution_rules</th>\n",
-       "        <th>__internal_gpu_config__</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>cifar10_val</td>\n",
-       "        <td>cifar10_val_packed</td>\n",
-       "        <td>y</td>\n",
-       "        <td>x</td>\n",
-       "        <td>smallint</td>\n",
-       "        <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
-       "        <td>625</td>\n",
-       "        <td>256.0</td>\n",
-       "        <td>10</td>\n",
-       "        <td>[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]</td>\n",
-       "        <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'cifar10_val', u'cifar10_val_packed', u'y', u'x', u'smallint', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 625, 256.0, 10, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])]"
-      ]
-     },
-     "execution_count": 10,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT * FROM cifar10_val_packed_summary;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"arch\"></a>\n",
-    "# 3. Define and load model architectures\n",
-    "\n",
-    "Here we load some example model architectures from published sources.\n",
-    "\n",
-    "a. Model architecture from https://keras.io/examples/cifar10_cnn/"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "num_classes = 10\n",
-    "\n",
-    "#to be removed\n",
-    "#do this just to get shape for model architecture \n",
-    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "conv2d_1 (Conv2D)            (None, 32, 32, 32)        896       \n",
-      "_________________________________________________________________\n",
-      "activation_1 (Activation)    (None, 32, 32, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_2 (Conv2D)            (None, 30, 30, 32)        9248      \n",
-      "_________________________________________________________________\n",
-      "activation_2 (Activation)    (None, 30, 30, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_1 (MaxPooling2 (None, 15, 15, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "dropout_1 (Dropout)          (None, 15, 15, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_3 (Conv2D)            (None, 15, 15, 64)        18496     \n",
-      "_________________________________________________________________\n",
-      "activation_3 (Activation)    (None, 15, 15, 64)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_4 (Conv2D)            (None, 13, 13, 64)        36928     \n",
-      "_________________________________________________________________\n",
-      "activation_4 (Activation)    (None, 13, 13, 64)        0         \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_2 (MaxPooling2 (None, 6, 6, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "dropout_2 (Dropout)          (None, 6, 6, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "flatten_1 (Flatten)          (None, 2304)              0         \n",
-      "_________________________________________________________________\n",
-      "dense_1 (Dense)              (None, 512)               1180160   \n",
-      "_________________________________________________________________\n",
-      "activation_5 (Activation)    (None, 512)               0         \n",
-      "_________________________________________________________________\n",
-      "dropout_3 (Dropout)          (None, 512)               0         \n",
-      "_________________________________________________________________\n",
-      "dense_2 (Dense)              (None, 10)                5130      \n",
-      "_________________________________________________________________\n",
-      "activation_6 (Activation)    (None, 10)                0         \n",
-      "=================================================================\n",
-      "Total params: 1,250,858\n",
-      "Trainable params: 1,250,858\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model1 = Sequential()\n",
-    "\n",
-    "model1.add(Conv2D(32, (3, 3), padding='same',\n",
-    "                 input_shape=x_train.shape[1:]))\n",
-    "model1.add(Activation('relu'))\n",
-    "model1.add(Conv2D(32, (3, 3)))\n",
-    "model1.add(Activation('relu'))\n",
-    "model1.add(MaxPooling2D(pool_size=(2, 2)))\n",
-    "model1.add(Dropout(0.25))\n",
-    "\n",
-    "model1.add(Conv2D(64, (3, 3), padding='same'))\n",
-    "model1.add(Activation('relu'))\n",
-    "model1.add(Conv2D(64, (3, 3)))\n",
-    "model1.add(Activation('relu'))\n",
-    "model1.add(MaxPooling2D(pool_size=(2, 2)))\n",
-    "model1.add(Dropout(0.25))\n",
-    "\n",
-    "model1.add(Flatten())\n",
-    "model1.add(Dense(512))\n",
-    "model1.add(Activation('relu'))\n",
-    "model1.add(Dropout(0.5))\n",
-    "model1.add(Dense(num_classes))\n",
-    "model1.add(Activation('softmax'))\n",
-    "\n",
-    "model1.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"conv2d_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"filters\": 32, \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"batch_input_shape\": [null, 32, 32, 3], \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_1\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"conv2d_2\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_2\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_1\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.25, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_1\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"conv2d_3\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_3\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"conv2d_4\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"valid\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_4\"}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_2\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.25, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_2\"}}, {\"class_name\": \"Flatten\", \"config\": {\"trainable\": true, \"name\": \"flatten_1\", \"data_format\": \"channels_last\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 512, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"relu\", \"trainable\": true, \"name\": \"activation_5\"}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.5, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_3\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"linear\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Activation\", \"config\": {\"activation\": \"softmax\", \"trainable\": true, \"name\": \"activation_6\"}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model1.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "b. Model architecture from https://machinelearningmastery.com/how-to-develop-a-cnn-from-scratch-for-cifar-10-photo-classification/"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "conv2d_5 (Conv2D)            (None, 32, 32, 32)        896       \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_1 (Batch (None, 32, 32, 32)        128       \n",
-      "_________________________________________________________________\n",
-      "conv2d_6 (Conv2D)            (None, 32, 32, 32)        9248      \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_2 (Batch (None, 32, 32, 32)        128       \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_3 (MaxPooling2 (None, 16, 16, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "dropout_4 (Dropout)          (None, 16, 16, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_7 (Conv2D)            (None, 16, 16, 64)        18496     \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_3 (Batch (None, 16, 16, 64)        256       \n",
-      "_________________________________________________________________\n",
-      "conv2d_8 (Conv2D)            (None, 16, 16, 64)        36928     \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_4 (Batch (None, 16, 16, 64)        256       \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_4 (MaxPooling2 (None, 8, 8, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "dropout_5 (Dropout)          (None, 8, 8, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_9 (Conv2D)            (None, 8, 8, 128)         73856     \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_5 (Batch (None, 8, 8, 128)         512       \n",
-      "_________________________________________________________________\n",
-      "conv2d_10 (Conv2D)           (None, 8, 8, 128)         147584    \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_6 (Batch (None, 8, 8, 128)         512       \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_5 (MaxPooling2 (None, 4, 4, 128)         0         \n",
-      "_________________________________________________________________\n",
-      "dropout_6 (Dropout)          (None, 4, 4, 128)         0         \n",
-      "_________________________________________________________________\n",
-      "flatten_2 (Flatten)          (None, 2048)              0         \n",
-      "_________________________________________________________________\n",
-      "dense_3 (Dense)              (None, 128)               262272    \n",
-      "_________________________________________________________________\n",
-      "batch_normalization_7 (Batch (None, 128)               512       \n",
-      "_________________________________________________________________\n",
-      "dropout_7 (Dropout)          (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dense_4 (Dense)              (None, 10)                1290      \n",
-      "=================================================================\n",
-      "Total params: 552,874\n",
-      "Trainable params: 551,722\n",
-      "Non-trainable params: 1,152\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model2 = Sequential()\n",
-    "\n",
-    "model2.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same', input_shape=(32, 32, 3)))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(MaxPooling2D((2, 2)))\n",
-    "model2.add(Dropout(0.2))\n",
-    "\n",
-    "model2.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(MaxPooling2D((2, 2)))\n",
-    "model2.add(Dropout(0.3))\n",
-    "\n",
-    "model2.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(MaxPooling2D((2, 2)))\n",
-    "model2.add(Dropout(0.4))\n",
-    "\n",
-    "model2.add(Flatten())\n",
-    "model2.add(Dense(128, activation='relu', kernel_initializer='he_uniform'))\n",
-    "model2.add(BatchNormalization())\n",
-    "model2.add(Dropout(0.5))\n",
-    "model2.add(Dense(10, activation='softmax'))\n",
-    "\n",
-    "model2.summary()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Conv2D\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"filters\": 32, \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"batch_input_shape\": [null, 32, 32, 3], \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_1\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_6\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 32, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_2\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_3\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.2, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_4\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_7\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_3\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_8\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 64, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_4\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_4\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.3, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_5\"}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_9\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 128, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_5\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"Conv2D\", \"config\": {\"kernel_constraint\": null, \"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"conv2d_10\", \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"data_format\": \"channels_last\", \"padding\": \"same\", \"strides\": [1, 1], \"dilation_rate\": [1, 1], \"kernel_regularizer\": null, \"filters\": 128, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"use_bias\": true, \"activity_regularizer\": null, \"kernel_size\": [3, 3]}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_6\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"MaxPooling2D\", \"config\": {\"name\": \"max_pooling2d_5\", \"trainable\": true, \"data_format\": \"channels_last\", \"pool_size\": [2, 2], \"padding\": \"valid\", \"strides\": [2, 2]}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.4, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_6\"}}, {\"class_name\": \"Flatten\", \"config\": {\"trainable\": true, \"name\": \"flatten_2\", \"data_format\": \"channels_last\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 2.0, \"seed\": null, \"mode\": \"fan_in\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 128, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"BatchNormalization\", \"config\": {\"beta_constraint\": null, \"gamma_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"moving_mean_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"name\": \"batch_normalization_7\", \"epsilon\": 0.001, \"trainable\": true, \"moving_variance_initializer\": {\"class_name\": \"Ones\", \"config\": {}}, \"beta_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"scale\": true, \"axis\": -1, \"gamma_constraint\": null, \"gamma_regularizer\": null, \"beta_regularizer\": null, \"momentum\": 0.99, \"center\": true}}, {\"class_name\": \"Dropout\", \"config\": {\"rate\": 0.5, \"noise_shape\": null, \"trainable\": true, \"seed\": null, \"name\": \"dropout_7\"}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
-      ]
-     },
-     "execution_count": 10,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "model2.to_json()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "c. Another model architecture from https://machinelearningmastery.com/how-to-develop-a-cnn-from-scratch-for-cifar-10-photo-classification/"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "_________________________________________________________________\n",
-      "Layer (type)                 Output Shape              Param #   \n",
-      "=================================================================\n",
-      "conv2d_11 (Conv2D)           (None, 32, 32, 32)        896       \n",
-      "_________________________________________________________________\n",
-      "conv2d_12 (Conv2D)           (None, 32, 32, 32)        9248      \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_6 (MaxPooling2 (None, 16, 16, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "dropout_8 (Dropout)          (None, 16, 16, 32)        0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_13 (Conv2D)           (None, 16, 16, 64)        18496     \n",
-      "_________________________________________________________________\n",
-      "conv2d_14 (Conv2D)           (None, 16, 16, 64)        36928     \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_7 (MaxPooling2 (None, 8, 8, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "dropout_9 (Dropout)          (None, 8, 8, 64)          0         \n",
-      "_________________________________________________________________\n",
-      "conv2d_15 (Conv2D)           (None, 8, 8, 128)         73856     \n",
-      "_________________________________________________________________\n",
-      "conv2d_16 (Conv2D)           (None, 8, 8, 128)         147584    \n",
-      "_________________________________________________________________\n",
-      "max_pooling2d_8 (MaxPooling2 (None, 4, 4, 128)         0         \n",
-      "_________________________________________________________________\n",
-      "dropout_10 (Dropout)         (None, 4, 4, 128)         0         \n",
-      "_________________________________________________________________\n",
-      "flatten_3 (Flatten)          (None, 2048)              0         \n",
-      "_________________________________________________________________\n",
-      "dense_5 (Dense)              (None, 128)               262272    \n",
-      "_________________________________________________________________\n",
-      "dropout_11 (Dropout)         (None, 128)               0         \n",
-      "_________________________________________________________________\n",
-      "dense_6 (Dense)              (None, 10)                1290      \n",
-      "=================================================================\n",
-      "Total params: 550,570\n",
-      "Trainable params: 550,570\n",
-      "Non-trainable params: 0\n",
-      "_________________________________________________________________\n"
-     ]
-    }
-   ],
-   "source": [
-    "model3 = Sequential()\n",
-    "\n",
-    "model3.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same', input_shape=(32, 32, 3)))\n",
-    "model3.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model3.add(MaxPooling2D((2, 2)))\n",
-    "model3.add(Dropout(0.2))\n",
-    "model3.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model3.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model3.add(MaxPooling2D((2, 2)))\n",
-    "model3.add(Dropout(0.3))\n",
-    "model3.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model3.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))\n",
-    "model3.add(MaxPooling2D((2, 2)))\n",
-    "model3.add(Dropout(0.4))\n",
-    "model3.add(Flatten())\n",
-    "model3.add(Dense(128, activation='relu', kernel_initializer='he_uniform'))\n",
-    "model3.add(Dropout(0.5))\n",
-    "model3.add(Dense(10, activation='softmax'))\n",
-    "\n",
-    "model3.summary()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Load into model architecture table using psycopg2"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "3 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>model_id</th>\n",
-       "        <th>name</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>CNN from Keras docs for CIFAR-10</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>CNN from Jason Brownlee blog post</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>CNN from Jason Brownlee blog post - no batch normalization</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, u'CNN from Keras docs for CIFAR-10'),\n",
-       " (2, u'CNN from Jason Brownlee blog post'),\n",
-       " (3, u'CNN from Jason Brownlee blog post - no batch normalization')]"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "import psycopg2 as p2\n",
-    "#conn = p2.connect('postgresql://gpadmin@35.239.240.26:5432/madlib')\n",
-    "#conn = p2.connect('postgresql://fmcquillan@localhost:5432/madlib')\n",
-    "conn = p2.connect('postgresql://gpadmin@localhost:8000/cifar_demo')\n",
-    "cur = conn.cursor()\n",
-    "\n",
-    "%sql DROP TABLE IF EXISTS model_arch_table_cifar10;\n",
-    "query = \"SELECT madlib.load_keras_model('model_arch_table_cifar10', %s, NULL, %s)\"\n",
-    "cur.execute(query,[model1.to_json(), \"CNN from Keras docs for CIFAR-10\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "query = \"SELECT madlib.load_keras_model('model_arch_table_cifar10', %s, NULL, %s)\"\n",
-    "cur.execute(query,[model2.to_json(), \"CNN from Jason Brownlee blog post\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "query = \"SELECT madlib.load_keras_model('model_arch_table_cifar10', %s, NULL, %s)\"\n",
-    "cur.execute(query,[model3.to_json(), \"CNN from Jason Brownlee blog post - no batch normalization\"])\n",
-    "conn.commit()\n",
-    "\n",
-    "# check model loaded OK\n",
-    "%sql SELECT model_id, name FROM model_arch_table_cifar10 ORDER BY model_id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"hyperband\"></a>\n",
-    "# 4.  Hyperband diagonal\n",
-    "\n",
-    "Create tables for intermediate and overall results from Hyperband, which is running on top of MADlib model selection methods."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "-- overall results table\n",
-    "DROP TABLE IF EXISTS results_cifar10;\n",
-    "CREATE TABLE results_cifar10 ( \n",
-    "                      mst_key INTEGER,  -- note not SERIAL\n",
-    "                      model_id INTEGER, \n",
-    "                      compile_params TEXT,\n",
-    "                      fit_params TEXT, \n",
-    "                      model_type TEXT, \n",
-    "                      model_size DOUBLE PRECISION, \n",
-    "                      metrics_elapsed_time DOUBLE PRECISION[], \n",
-    "                      metrics_type TEXT[], \n",
-    "                      training_metrics_final DOUBLE PRECISION, \n",
-    "                      training_loss_final DOUBLE PRECISION, \n",
-    "                      training_metrics DOUBLE PRECISION[], \n",
-    "                      training_loss DOUBLE PRECISION[], \n",
-    "                      validation_metrics_final DOUBLE PRECISION, \n",
-    "                      validation_loss_final DOUBLE PRECISION, \n",
-    "                      validation_metrics DOUBLE PRECISION[], \n",
-    "                      validation_loss DOUBLE PRECISION[], \n",
-    "                      model_arch_table TEXT, \n",
-    "                      num_iterations INTEGER, \n",
-    "                      start_training_time TIMESTAMP, \n",
-    "                      end_training_time TIMESTAMP,\n",
-    "                      s INTEGER,            -- bracket number from Hyperband\n",
-    "                      i INTEGER,            -- iteration corresponding to successive having within a bracket\n",
-    "                      run_id SERIAL         -- global counter for the training runs\n",
-    "                     );\n",
-    "\n",
-    "-- all model selections:\n",
-    "-- model selection table containing all model configs (all brackets)\n",
-    "DROP TABLE IF EXISTS mst_table_hb_cifar10;\n",
-    "CREATE TABLE mst_table_hb_cifar10 (\n",
-    "                           mst_key SERIAL, \n",
-    "                           s INTEGER,        -- bracket\n",
-    "                           model_id INTEGER, \n",
-    "                           compile_params VARCHAR, \n",
-    "                           fit_params VARCHAR\n",
-    "                          );\n",
-    "\n",
-    "-- model selection summary table\n",
-    "DROP TABLE IF EXISTS mst_table_hb_cifar10_summary;\n",
-    "CREATE TABLE mst_table_hb_cifar10_summary (model_arch_table VARCHAR);\n",
-    "INSERT INTO mst_table_hb_cifar10_summary VALUES ('model_arch_table_cifar10');\n",
-    "\n",
-    "-- diagonal model selections:\n",
-    "-- model selection table for diagonal: fit() will be called on a per diagonal basis\n",
-    "DROP TABLE IF EXISTS mst_diag_table_hb_cifar10;\n",
-    "CREATE TABLE mst_diag_table_hb_cifar10 (\n",
-    "                           mst_key INTEGER, -- note not SERIAL since this table derived from main model selection table\n",
-    "                           s INTEGER,          -- bracket\n",
-    "                           model_id INTEGER, \n",
-    "                           compile_params VARCHAR, \n",
-    "                           fit_params VARCHAR\n",
-    "                          );\n",
-    "\n",
-    "-- model selection summary table for diagonal table\n",
-    "DROP TABLE IF EXISTS mst_diag_table_hb_cifar10_summary;\n",
-    "CREATE TABLE mst_diag_table_hb_cifar10_summary (model_arch_table VARCHAR);\n",
-    "INSERT INTO mst_diag_table_hb_cifar10_summary VALUES ('model_arch_table_cifar10');"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Generalize table names"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "results_table = 'results_cifar10'\n",
-    "\n",
-    "output_table = 'cifar10_multi_model'\n",
-    "output_table_info = '_'.join([output_table, 'info'])\n",
-    "output_table_summary = '_'.join([output_table, 'summary'])\n",
-    "\n",
-    "best_model = 'cifar10_best_model'\n",
-    "best_model_info = '_'.join([best_model, 'info'])\n",
-    "best_model_summary = '_'.join([best_model, 'summary'])\n",
-    "\n",
-    "\n",
-    "mst_table = 'mst_table_hb_cifar10'\n",
-    "mst_table_summary = '_'.join([mst_table, 'summary'])\n",
-    "\n",
-    "mst_diag_table = 'mst_diag_table_hb_cifar10'\n",
-    "mst_diag_table_summary = '_'.join([mst_diag_table, 'summary'])\n",
-    "\n",
-    "model_arch_table = 'model_arch_table_cifar10'"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Hyperband diagonal logic"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Define variables for Hyperband"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "max_iter = 27   # maximum iterations per configuration\n",
-    "eta = 3        # defines downsampling rate (default = 3)\n",
-    "skip_last = 0  # 1 means skip last run in each bracket, 0 means run full bracket"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import numpy as np\n",
-    "from random import random\n",
-    "from math import log, ceil\n",
-    "from time import time, ctime\n",
-    "\n",
-    "class Hyperband_diagonal:\n",
-    "    \n",
-    "    def __init__( self, get_params_function, try_params_function ):\n",
-    "        self.get_params = get_params_function #\n",
-    "        self.try_params = try_params_function\n",
-    "\n",
-    "        self.max_iter = max_iter \n",
-    "        self.eta = eta \n",
-    "        self.skip_last = skip_last  \n",
-    "\n",
-    "        self.logeta = lambda x: log( x ) / log( self.eta )\n",
-    "        self.s_max = int( self.logeta( self.max_iter ))\n",
-    "        self.B = ( self.s_max + 1 ) * self.max_iter\n",
-    "        \n",
-    "        #echo output\n",
-    "        print (\"max_iter = \" + str(self.max_iter))\n",
-    "        print (\"eta = \" + str(self.eta))\n",
-    "        print (\"B = \" + str(self.s_max+1) + \"*max_iter = \" + str(self.B))\n",
-    "        print (\"skip_last = \" + str(self.skip_last))\n",
-    "        \n",
-    "        self.setup_full_schedule()\n",
-    "        self.create_mst_superset()\n",
-    "        \n",
-    "        self.best_loss = np.inf\n",
-    "        self.best_accuracy = 0.0\n",
-    "\n",
-    "    # create full Hyperband schedule for all brackets ahead of time\n",
-    "    def setup_full_schedule(self):\n",
-    "        self.n_vals = np.zeros((self.s_max+1, self.s_max+1), dtype=int)\n",
-    "        self.r_vals = np.zeros((self.s_max+1, self.s_max+1), dtype=int)\n",
-    "        \n",
-    "        print (\" \")\n",
-    "        print (\"Hyperband brackets\")\n",
-    "\n",
-    "        # loop through each bracket in reverse order\n",
-    "        for s in reversed(range(self.s_max+1)):\n",
-    "            \n",
-    "            print (\" \")\n",
-    "            print (\"s=\" + str(s))\n",
-    "            print (\"n_i      r_i\")\n",
-    "            print (\"------------\")\n",
-    "\n",
-    "            for i in range(s+1):\n",
-    "                # n_i configs for r_i iterations\n",
-    "                n_i = n*self.eta**(-i)\n",
-    "                r_i = r*self.eta**(i)\n",
-    "\n",
-    "                self.n_vals[s][i] = n_i\n",
-    "                self.r_vals[s][i] = r_i\n",
-    "\n",
-    "                print (str(n_i) + \"     \" + str (r_i))\n",
-    "           \n",
-    "        \n",
-    "    # generate model selection tuples for all brackets\n",
-    "    def create_mst_superset(self):\n",
-    "        \n",
-    "        print (\" \")\n",
-    "        print (\"Create superset of MSTs for each bracket s\")\n",
-    "        \n",
-    "        # get hyper parameter configs for each bracket s\n",
-    "        for s in reversed(range(self.s_max+1)):\n",
-    "            n = int(ceil(int(self.B/self.max_iter/(s+1))*self.eta**s)) # initial number of configurations\n",
-    "            r = self.max_iter*self.eta**(-s) # initial number of iterations to run configurations for\n",
-    "\n",
-    "            print (\" \")\n",
-    "            print (\"s=\" + str(s))\n",
-    "            print (\"n=\" + str(n))\n",
-    "            print (\"r=\" + str(r))\n",
-    "            print (\" \")\n",
-    "            \n",
-    "            # n random configurations for each bracket s\n",
-    "            self.get_params(n, s)\n",
-    "            \n",
-    "            \n",
-    "    # Hyperband diagonal logic\n",
-    "    def run(self):   \n",
-    "        \n",
-    "        print (\" \")\n",
-    "        print (\"Hyperband diagonal\")\n",
-    "        print (\"Outer loop on diagonal:\")\n",
-    "        \n",
-    "        # outer loop on diagonal\n",
-    "        #for i in range(self.s_max+1):\n",
-    "        for i in range((self.s_max+1) - int(self.skip_last)):\n",
-    "            print (\" \")\n",
-    "            print (\"i=\" + str(i))\n",
-    "    \n",
-    "            # zero out diagonal table\n",
-    "            %sql TRUNCATE TABLE $mst_diag_table\n",
-    "            \n",
-    "            # loop on brackets s desc to create diagonal table\n",
-    "            print (\"Loop on s desc to create diagonal table:\")\n",
-    "            for s in range(self.s_max, self.s_max-i-1, -1):\n",
-    "\n",
-    "                # build up mst table for diagonal\n",
-    "                %sql INSERT INTO $mst_diag_table (SELECT * FROM $mst_table WHERE s=$s);\n",
-    "            \n",
-    "            # first pass\n",
-    "            if i == 0:\n",
-    "                first_pass = True\n",
-    "            else:\n",
-    "                first_pass = False\n",
-    "                \n",
-    "            # multi-model training\n",
-    "            print (\" \")\n",
-    "            print (\"Try params for i = \" + str(i))\n",
-    "            U = self.try_params(i, self.r_vals[self.s_max][i], first_pass) # r_i is the same for all diagonal elements\n",
-    "            \n",
-    "            # loop on brackets s desc to prune model selection table\n",
-    "            # don't need to prune if finished last diagonal\n",
-    "            #if i < (self.s_max):\n",
-    "            if i < (self.s_max - int(self.skip_last)):\n",
-    "                print (\"Loop on s desc to prune mst table:\")\n",
-    "                for s in range(self.s_max, self.s_max-i-1, -1):\n",
-    "                    \n",
-    "                    # compute number of configs to keep\n",
-    "                    # remember i value is different for each bracket s on the diagonal\n",
-    "                    k = int( self.n_vals[s][s-self.s_max+i] / self.eta)\n",
-    "                    print (\"Pruning s = {} with k = {}\".format(s, k))\n",
-    "\n",
-    "                    # temporarily re-define table names due to weird Python scope issues\n",
-    "                    results_table = 'results_cifar10'\n",
-    "\n",
-    "                    output_table = 'cifar10_multi_model'\n",
-    "                    output_table_info = '_'.join([output_table, 'info'])\n",
-    "                    output_table_summary = '_'.join([output_table, 'summary'])\n",
-    "\n",
-    "                    mst_table = 'mst_table_hb_cifar10'\n",
-    "                    mst_table_summary = '_'.join([mst_table, 'summary'])\n",
-    "\n",
-    "                    mst_diag_table = 'mst_diag_table_hb_cifar10'\n",
-    "                    mst_diag_table_summary = '_'.join([mst_diag_table, 'summary'])\n",
-    "\n",
-    "                    model_arch_table = 'model_arch_table_cifar10'\n",
-    "            \n",
-    "                    query = \"\"\"\n",
-    "                    DELETE FROM {mst_table} WHERE s={s} AND mst_key NOT IN (SELECT {output_table_info}.mst_key FROM {output_table_info} JOIN {mst_table} ON {output_table_info}.mst_key={mst_table}.mst_key WHERE s={s} ORDER BY validation_loss_final ASC LIMIT {k}::INT);\n",
-    "                    \"\"\".format(**locals())\n",
-    "                    cur.execute(query)\n",
-    "                    conn.commit()\n",
-    "                    \n",
-    "                    # these were not working so used cursor instead\n",
-    "                    #%sql DELETE FROM $mst_table WHERE s=$s AND mst_key NOT IN (SELECT $output_table_info.mst_key FROM $output_table_info JOIN $mst_table ON $output_table_info.mst_key=$mst_table.mst_key WHERE s=$s ORDER BY validation_loss_final ASC LIMIT $k::INT);\n",
-    "                    #%sql DELETE FROM mst_table_hb_cifar10 WHERE s=1 AND mst_key NOT IN (SELECT cifar10_multi_model_info.mst_key FROM cifar10_multi_model_info JOIN mst_table_hb_cifar10 ON cifar10_multi_model_info.mst_key=mst_table_hb_cifar10.mst_key WHERE s=1 ORDER BY validation_loss_final ASC LIMIT 1);\n",
-    "        \n",
-    "            # keep track of best loss so far and save the model for inference\n",
-    "            # get best loss and accuracy from this diagonal run\n",
-    "            # (need to check if this will work OK if don't evaluate metrics every iteration)\n",
-    "            loss = %sql SELECT validation_loss_final FROM $output_table_info ORDER BY validation_loss_final ASC LIMIT 1;\n",
-    "            accuracy = %sql SELECT validation_metrics_final FROM $output_table_info ORDER BY validation_metrics_final DESC LIMIT 1;\n",
-    "                    \n",
-    "            # save best model based on accuracy (could do loss if you wanted)\n",
-    "            if accuracy > self.best_accuracy:\n",
-    "                \n",
-    "                self.best_accuracy = accuracy\n",
-    "                \n",
-    "                # get best mst_key\n",
-    "                best_mst_key = %sql SELECT mst_key FROM $output_table_info ORDER BY validation_metrics_final DESC LIMIT 1; \n",
-    "                best_mst_key = best_mst_key.DataFrame().to_numpy()[0][0]\n",
-    "\n",
-    "                # save model table (1 row for best model)\n",
-    "                %sql DROP TABLE IF EXISTS $best_model;\n",
-    "                %sql CREATE TABLE $best_model AS SELECT * FROM $output_table WHERE mst_key = $best_mst_key;\n",
-    "\n",
-    "                # save info table (1 row for best model)\n",
-    "                %sql DROP TABLE IF EXISTS $best_model_info;\n",
-    "                %sql CREATE TABLE $best_model_info AS SELECT * FROM $output_table_info WHERE mst_key = $best_mst_key;\n",
-    " \n",
-    "                # save summary table\n",
-    "                %sql DROP TABLE IF EXISTS $best_model_summary;\n",
-    "                %sql CREATE TABLE $best_model_summary AS SELECT * FROM $output_table_summary;\n",
-    "            \n",
-    "            if loss < self.best_loss:\n",
-    "                self.best_loss = loss\n",
-    "                \n",
-    "            print (\" \")\n",
-    "            print (\"Best validation loss so far = \")\n",
-    "            print (str(loss))\n",
-    "            print (\"Best validation accuracy so far = \")\n",
-    "            print (str(accuracy))\n",
-    "            \n",
-    "\n",
-    "            \n",
-    "        return"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Generate params and insert into MST table.  This version of get_params uses the same compile parameters for all optimizers, and the same compile/fit parameters for all model architectures.  (This may be too restrictive in some cases.) -- Note 3/13: check SIGMOID paper runs which I think I may have addressed this to some extent"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def get_params(n, s):\n",
-    "    \n",
-    "    from sklearn.model_selection import ParameterSampler\n",
-    "    from scipy.stats.distributions import uniform\n",
-    "    import numpy as np\n",
-    "    \n",
-    "    # model architecture\n",
-    "    model_id = [1,2]\n",
-    "\n",
-    "    # compile params\n",
-    "    # loss function\n",
-    "    loss = ['categorical_crossentropy']\n",
-    "    # optimizer\n",
-    "    optimizer = ['sgd', 'adam', 'rmsprop']\n",
-    "    # learning rate (sample on log scale here not in ParameterSampler)\n",
-    "    lr_range = [0.0001, 0.01]\n",
-    "    lr = 10**np.random.uniform(np.log10(lr_range[0]), np.log10(lr_range[1]), n)\n",
-    "    # metrics\n",
-    "    metrics = ['accuracy']\n",
-    "\n",
-    "    # fit params\n",
-    "    # batch size\n",
-    "    batch_size = [32, 64, 128, 256]\n",
-    "    # epochs\n",
-    "    epochs = [5]\n",
-    "\n",
-    "    # create random param list\n",
-    "    param_grid = {\n",
-    "        'model_id': model_id,\n",
-    "        'loss': loss,\n",
-    "        'optimizer': optimizer,\n",
-    "        'lr': lr,\n",
-    "        'metrics': metrics,\n",
-    "        'batch_size': batch_size,\n",
-    "        'epochs': epochs\n",
-    "    }\n",
-    "    param_list = list(ParameterSampler(param_grid, n_iter=n))\n",
-    "    \n",
-    "    for params in param_list:\n",
-    "\n",
-    "        model_id = str(params.get(\"model_id\"))\n",
-    "        compile_params = \"$$loss='\" + str(params.get(\"loss\")) + \"',optimizer='\" + str(params.get(\"optimizer\")) + \"(lr=\" + str(params.get(\"lr\")) + \")',metrics=['\" + str(params.get(\"metrics\")) + \"']$$\" \n",
-    "        fit_params = \"$$batch_size=\" + str(params.get(\"batch_size\")) + \",epochs=\" + str(params.get(\"epochs\")) + \"$$\"  \n",
-    "        row_content = \"(\" + str(s) + \", \" + model_id + \", \" + compile_params + \", \" + fit_params + \");\"\n",
-    "        \n",
-    "        %sql INSERT INTO $mst_table (s, model_id, compile_params, fit_params) VALUES $row_content\n",
-    "    \n",
-    "    return"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Generate params and insert into MST table.  This version of get_params allows for more customization by optimizer and model architecture.  This is sort of brute force and can be improved."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def get_params(n, s):\n",
-    "    \n",
-    "    from sklearn.model_selection import ParameterSampler\n",
-    "    from scipy.stats.distributions import uniform\n",
-    "    import numpy as np\n",
-    "    \n",
-    "    # number of samples by optimizer\n",
-    "    #n_adam = int(n/3)\n",
-    "    n_adam = int(n/2)\n",
-    "    #n_rmsprop = int(n/3)\n",
-    "    n_rmsprop = 0\n",
-    "    n_sgd = int(n - n_adam - n_rmsprop)\n",
-    "\n",
-    "    # 1) adam\n",
-    "    \n",
-    "    # model architecture\n",
-    "    model_id = [2,3]\n",
-    "\n",
-    "    # compile params\n",
-    "    # loss function\n",
-    "    loss = ['categorical_crossentropy']\n",
-    "    # optimizer\n",
-    "    optimizer = ['adam']\n",
-    "    # learning rate (sample on log scale here not in ParameterSampler)\n",
-    "    lr_range = [0.0001, 0.001]\n",
-    "    lr = 10**np.random.uniform(np.log10(lr_range[0]), np.log10(lr_range[1]), n_adam)\n",
-    "    # metrics\n",
-    "    metrics = ['accuracy']\n",
-    "\n",
-    "    # fit params\n",
-    "    # batch size\n",
-    "    batch_size = [128, 256]\n",
-    "    # epochs\n",
-    "    epochs = [5]\n",
-    "\n",
-    "    # create random param list\n",
-    "    param_grid = {\n",
-    "        'model_id': model_id,\n",
-    "        'loss': loss,\n",
-    "        'optimizer': optimizer,\n",
-    "        'lr': lr,\n",
-    "        'metrics': metrics,\n",
-    "        'batch_size': batch_size,\n",
-    "        'epochs': epochs\n",
-    "    }\n",
-    "    param_list_adam = list(ParameterSampler(param_grid, n_iter=n_adam))\n",
-    "\n",
-    "    # iterate over params\n",
-    "    for params in param_list_adam:\n",
-    "\n",
-    "        model_id = str(params.get(\"model_id\"))\n",
-    "        compile_params = \"$$loss='\" + str(params.get(\"loss\")) + \"',optimizer='\" + str(params.get(\"optimizer\")) + \"(lr=\" + str(params.get(\"lr\")) + \")',metrics=['\" + str(params.get(\"metrics\")) + \"']$$\" \n",
-    "        fit_params = \"$$batch_size=\" + str(params.get(\"batch_size\")) + \",epochs=\" + str(params.get(\"epochs\")) + \"$$\"  \n",
-    "        row_content = \"(\" + str(s) + \", \" + model_id + \", \" + compile_params + \", \" + fit_params + \");\"\n",
-    "    \n",
-    "        # populate mst table\n",
-    "        %sql INSERT INTO $mst_table (s, model_id, compile_params, fit_params) VALUES $row_content\n",
-    "    \n",
-    "    \n",
-    "    # 2) rmsprop\n",
-    "    \n",
-    "    # model architecture\n",
-    "    model_id = [1,2,3]\n",
-    "\n",
-    "    # compile params\n",
-    "    # loss function\n",
-    "    loss = ['categorical_crossentropy']\n",
-    "    # optimizer\n",
-    "    optimizer = ['rmsprop']\n",
-    "    # learning rate (sample on log scale here not in ParameterSampler)\n",
-    "    lr_range = [0.0001, 0.001]\n",
-    "    lr = 10**np.random.uniform(np.log10(lr_range[0]), np.log10(lr_range[1]), n_rmsprop)\n",
-    "    # decay (sample on log scale here not in ParameterSampler if want multiple values)\n",
-    "    decay = [1e-6]\n",
-    "\n",
-    "    # metrics\n",
-    "    metrics = ['accuracy']\n",
-    "\n",
-    "    # fit params\n",
-    "    # batch size\n",
-    "    batch_size = [32, 64, 128, 256]\n",
-    "    # epochs\n",
-    "    epochs = [5]\n",
-    "\n",
-    "    # create random param list\n",
-    "    param_grid = {\n",
-    "        'model_id': model_id,\n",
-    "        'loss': loss,\n",
-    "        'optimizer': optimizer,\n",
-    "        'lr': lr,\n",
-    "        'decay': decay,\n",
-    "        'metrics': metrics,\n",
-    "        'batch_size': batch_size,\n",
-    "        'epochs': epochs\n",
-    "    }\n",
-    "    param_list_rmsprop = list(ParameterSampler(param_grid, n_iter=n_rmsprop))\n",
-    "\n",
-    "    # iterate over params\n",
-    "    for params in param_list_rmsprop:\n",
-    "\n",
-    "        model_id = str(params.get(\"model_id\"))\n",
-    "        compile_params = \"$$loss='\" + str(params.get(\"loss\")) + \"',optimizer='\" + str(params.get(\"optimizer\")) + \"(lr=\" + str(params.get(\"lr\")) + \",decay=\" + str(params.get(\"decay\")) + \")',metrics=['\" + str(params.get(\"metrics\")) + \"']$$\" \n",
-    "        fit_params = \"$$batch_size=\" + str(params.get(\"batch_size\")) + \",epochs=\" + str(params.get(\"epochs\")) + \"$$\"  \n",
-    "        row_content = \"(\" + str(s) + \", \" + model_id + \", \" + compile_params + \", \" + fit_params + \");\"\n",
-    "    \n",
-    "        # populate mst table\n",
-    "        %sql INSERT INTO $mst_table (s, model_id, compile_params, fit_params) VALUES $row_content\n",
-    "\n",
-    "\n",
-    "    # 3) sgd\n",
-    "    \n",
-    "    # model architecture\n",
-    "    model_id = [2,3]\n",
-    "\n",
-    "    # compile params\n",
-    "    # loss function\n",
-    "    loss = ['categorical_crossentropy']\n",
-    "    # optimizer\n",
-    "    optimizer = ['sgd']\n",
-    "    # learning rate (sample on log scale here not in ParameterSampler)\n",
-    "    lr_range = [0.001, 0.005]\n",
-    "    lr = 10**np.random.uniform(np.log10(lr_range[0]), np.log10(lr_range[1]), n_sgd)\n",
-    "    # momentum (sample on log scale here not in ParameterSampler)\n",
-    "    # recall momentum is an exponentially weighted array\n",
-    "    beta_range = [0.9, 0.95]\n",
-    "    beta = 1.0 - 10**np.random.uniform(np.log10(1.0-beta_range[0]), np.log10(1.0-beta_range[1]), n_sgd)\n",
-    "    # metrics\n",
-    "    metrics = ['accuracy']\n",
-    "\n",
-    "    # fit params\n",
-    "    # batch size\n",
-    "    batch_size = [128, 256]\n",
-    "    # epochs\n",
-    "    epochs = [5]\n",
-    "\n",
-    "    # create random param list\n",
-    "    param_grid = {\n",
-    "        'model_id': model_id,\n",
-    "        'loss': loss,\n",
-    "        'optimizer': optimizer,\n",
-    "        'lr': lr,\n",
-    "        'beta': beta,\n",
-    "        'metrics': metrics,\n",
-    "        'batch_size': batch_size,\n",
-    "        'epochs': epochs\n",
-    "    }\n",
-    "    param_list_sgd = list(ParameterSampler(param_grid, n_iter=n_sgd))\n",
-    "\n",
-    "    # iterate over params\n",
-    "    for params in param_list_sgd:\n",
-    "\n",
-    "        model_id = str(params.get(\"model_id\"))\n",
-    "        compile_params = \"$$loss='\" + str(params.get(\"loss\")) + \"',optimizer='\" + str(params.get(\"optimizer\")) + \"(lr=\" + str(params.get(\"lr\")) + \",momentum=\" + str(params.get(\"beta\")) + \")',metrics=['\" + str(params.get(\"metrics\")) + \"']$$\" \n",
-    "        fit_params = \"$$batch_size=\" + str(params.get(\"batch_size\")) + \",epochs=\" + str(params.get(\"epochs\")) + \"$$\"  \n",
-    "        row_content = \"(\" + str(s) + \", \" + model_id + \", \" + compile_params + \", \" + fit_params + \");\"\n",
-    "    \n",
-    "        # populate mst table\n",
-    "        %sql INSERT INTO $mst_table (s, model_id, compile_params, fit_params) VALUES $row_content\n",
-    "\n",
-    "    \n",
-    "    #4) organize mst table\n",
-    "\n",
-    "    #down sample\n",
-    "    #%sql DELETE from $mst_table WHERE mst_key NOT IN (SELECT mst_key FROM $mst_table ORDER BY random() LIMIT $n);\n",
-    "\n",
-    "    # make mst_keys contiguous\n",
-    "    #%sql ALTER TABLE $mst_table DROP COLUMN mst_key;\n",
-    "    #%sql ALTER TABLE $mst_table ADD COLUMN mst_key SERIAL;\n",
-    "    \n",
-    "    return"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Run model hopper for candidates in MST table"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def try_params(i, r, first_pass):\n",
-    "    \n",
-    "    # multi-model fit\n",
-    "    if first_pass:\n",
-    "        # cold start\n",
-    "        %sql DROP TABLE IF EXISTS $output_table, $output_table_summary, $output_table_info;\n",
-    "        # passing vars as madlib args does not seem to work\n",
-    "        #%sql SELECT madlib.madlib_keras_fit_multiple_model('cifar10_train_packed', $output_table, $mst_diag_table, $r_i::INT, 0);\n",
-    "        %sql SELECT madlib.madlib_keras_fit_multiple_model('cifar10_train_packed', 'cifar10_multi_model', 'mst_diag_table_hb_cifar10', $r::INT, True, 'cifar10_val_packed',1);\n",
-    "\n",
-    "    else:\n",
-    "        # warm start to continue from previous run\n",
-    "        %sql SELECT madlib.madlib_keras_fit_multiple_model('cifar10_train_packed', 'cifar10_multi_model', 'mst_diag_table_hb_cifar10', $r::INT, True, 'cifar10_val_packed', 1, True);\n",
-    "\n",
-    "    # save results via temp table\n",
-    "    # add everything from info table\n",
-    "    %sql DROP TABLE IF EXISTS temp_results;\n",
-    "    %sql CREATE TABLE temp_results AS (SELECT * FROM $output_table_info);\n",
-    "    \n",
-    "    # add summary table info and i value (same for each row)\n",
-    "    %sql ALTER TABLE temp_results ADD COLUMN model_arch_table TEXT, ADD COLUMN num_iterations INTEGER, ADD COLUMN start_training_time TIMESTAMP, ADD COLUMN end_training_time TIMESTAMP, ADD COLUMN s INTEGER, ADD COLUMN i INTEGER;\n",
-    "    %sql UPDATE temp_results SET model_arch_table = (SELECT model_arch_table FROM $output_table_summary), num_iterations = (SELECT num_iterations FROM $output_table_summary), start_training_time = (SELECT start_training_time FROM $output_table_summary), end_training_time = (SELECT end_training_time FROM $output_table_summary), i = $i;\n",
-    "    \n",
-    "    # get the s value for each run (not the same for each row since diagonal table crosses multiple brackets)\n",
-    "    %sql UPDATE temp_results SET s = m.s FROM mst_diag_table_hb_cifar10 AS m WHERE m.mst_key = temp_results.mst_key;\n",
-    "    \n",
-    "    # copy temp table into results table\n",
-    "    %sql INSERT INTO $results_table (SELECT * FROM temp_results);\n",
-    "\n",
-    "    return"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Call Hyperband diagonal"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "max_iter = 27\n",
-      "eta = 3\n",
-      "B = 4*max_iter = 108\n",
-      "skip_last = 0\n",
-      " \n",
-      "Hyperband brackets\n",
-      " \n",
-      "s=3\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "27     1.0\n",
-      "9.0     3.0\n",
-      "3.0     9.0\n",
-      "1.0     27.0\n",
-      " \n",
-      "s=2\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "9     3.0\n",
-      "3.0     9.0\n",
-      "1.0     27.0\n",
-      " \n",
-      "s=1\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "6     9.0\n",
-      "2.0     27.0\n",
-      " \n",
-      "s=0\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "4     27\n",
-      " \n",
-      "Create superset of MSTs for each bracket s\n",
-      " \n",
-      "s=3\n",
-      "n=27\n",
-      "r=1.0\n",
-      " \n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      " \n",
-      "s=2\n",
-      "n=9\n",
-      "r=3.0\n",
-      " \n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      " \n",
-      "s=1\n",
-      "n=6\n",
-      "r=9.0\n",
-      " \n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      " \n",
-      "s=0\n",
-      "n=4\n",
-      "r=27\n",
-      " \n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      " \n",
-      "Hyperband diagonal\n",
-      "Outer loop on diagonal:\n",
-      " \n",
-      "i=0\n",
-      "Done.\n",
-      "Loop on s desc to create diagonal table:\n",
-      "27 rows affected.\n",
-      " \n",
-      "Try params for i = 0\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "27 rows affected.\n",
-      "Done.\n",
-      "27 rows affected.\n",
-      "27 rows affected.\n",
-      "27 rows affected.\n",
-      "Loop on s desc to prune mst table:\n",
-      "Pruning s = 3 with k = 9\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      " \n",
-      "Best validation loss so far = \n",
-      "+-----------------------+\n",
-      "| validation_loss_final |\n",
-      "+-----------------------+\n",
-      "|     0.782763898373    |\n",
-      "+-----------------------+\n",
-      "Best validation accuracy so far = \n",
-      "+--------------------------+\n",
-      "| validation_metrics_final |\n",
-      "+--------------------------+\n",
-      "|      0.72729998827       |\n",
-      "+--------------------------+\n",
-      " \n",
-      "i=1\n",
-      "Done.\n",
-      "Loop on s desc to create diagonal table:\n",
-      "9 rows affected.\n",
-      "9 rows affected.\n",
-      " \n",
-      "Try params for i = 1\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "18 rows affected.\n",
-      "Done.\n",
-      "18 rows affected.\n",
-      "18 rows affected.\n",
-      "18 rows affected.\n",
-      "Loop on s desc to prune mst table:\n",
-      "Pruning s = 3 with k = 3\n",
-      "Pruning s = 2 with k = 3\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      " \n",
-      "Best validation loss so far = \n",
-      "+-----------------------+\n",
-      "| validation_loss_final |\n",
-      "+-----------------------+\n",
-      "|     0.602479159832    |\n",
-      "+-----------------------+\n",
-      "Best validation accuracy so far = \n",
-      "+--------------------------+\n",
-      "| validation_metrics_final |\n",
-      "+--------------------------+\n",
-      "|      0.805599987507      |\n",
-      "+--------------------------+\n",
-      " \n",
-      "i=2\n",
-      "Done.\n",
-      "Loop on s desc to create diagonal table:\n",
-      "3 rows affected.\n",
-      "3 rows affected.\n",
-      "6 rows affected.\n",
-      " \n",
-      "Try params for i = 2\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "12 rows affected.\n",
-      "Done.\n",
-      "12 rows affected.\n",
-      "12 rows affected.\n",
-      "12 rows affected.\n",
-      "Loop on s desc to prune mst table:\n",
-      "Pruning s = 3 with k = 1\n",
-      "Pruning s = 2 with k = 1\n",
-      "Pruning s = 1 with k = 2\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      " \n",
-      "Best validation loss so far = \n",
-      "+-----------------------+\n",
-      "| validation_loss_final |\n",
-      "+-----------------------+\n",
-      "|     0.595765888691    |\n",
-      "+-----------------------+\n",
-      "Best validation accuracy so far = \n",
-      "+--------------------------+\n",
-      "| validation_metrics_final |\n",
-      "+--------------------------+\n",
-      "|      0.824999988079      |\n",
-      "+--------------------------+\n",
-      " \n",
-      "i=3\n",
-      "Done.\n",
-      "Loop on s desc to create diagonal table:\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "2 rows affected.\n",
-      "4 rows affected.\n",
-      " \n",
-      "Try params for i = 3\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "8 rows affected.\n",
-      "Done.\n",
-      "8 rows affected.\n",
-      "8 rows affected.\n",
-      "8 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      "Done.\n",
-      "1 rows affected.\n",
-      " \n",
-      "Best validation loss so far = \n",
-      "+-----------------------+\n",
-      "| validation_loss_final |\n",
-      "+-----------------------+\n",
-      "|     0.580716967583    |\n",
-      "+-----------------------+\n",
-      "Best validation accuracy so far = \n",
-      "+--------------------------+\n",
-      "| validation_metrics_final |\n",
-      "+--------------------------+\n",
-      "|      0.834100008011      |\n",
-      "+--------------------------+\n"
-     ]
-    }
-   ],
-   "source": [
-    "hp = Hyperband_diagonal(get_params, try_params )\n",
-    "results = hp.run()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"plot\"></a>\n",
-    "# 5. Review and plot results"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "        <th>model_arch_table</th>\n",
-       "        <th>num_iterations</th>\n",
-       "        <th>start_training_time</th>\n",
-       "        <th>end_training_time</th>\n",
-       "        <th>s</th>\n",
-       "        <th>i</th>\n",
-       "        <th>run_id</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>45</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='sgd(lr=0.004501919010538727,momentum=0.9002808952996391)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=256,epochs=5</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>2159.70019531</td>\n",
-       "        <td>[121.955986022949, 245.619317054749, 368.365077972412, 490.415205955505, 614.768485069275, 737.048167943954, 860.508330106735, 984.307431936264, 1106.31793498993, 1229.54079914093, 1352.66811394691, 1477.57317709923, 1599.99458003044, 1723.35215711594, 1847.86346912384, 1971.57312297821, 2096.37913298607, 2221.54790210724, 2346.08665895462, 2470.83494997025, 2595.6411960125, 2722.25887513161, 2846.48335313797, 2971.13271403313, 3097.49445009232, 3222.44972395897, 3348.5662779808]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.941940009594</td>\n",
-       "        <td>0.169452220201</td>\n",
-       "        <td>[0.574479997158051, 0.658760011196136, 0.695840001106262, 0.72733998298645, 0.733219981193542, 0.771200001239777, 0.778680026531219, 0.808700025081635, 0.809000015258789, 0.818579971790314, 0.835739970207214, 0.84799998998642, 0.853200018405914, 0.858900010585785, 0.872919976711273, 0.878780007362366, 0.88808000087738, 0.880240023136139, 0.894320011138916, 0.903779983520508, 0.912299990653992, 0.908439993858337, 0.919539988040924, 0.924639999866486, 0.929180026054382, 0.9375, 0.941940009593964]</td>\n",
-       "        <td>[1.19219434261322, 0.959131419658661, 0.861107409000397, 0.770956337451935, 0.747268915176392, 0.64410811662674, 0.628470838069916, 0.539423823356628, 0.541868448257446, 0.514527797698975, 0.469026476144791, 0.432008743286133, 0.416983753442764, 0.402583330869675, 0.363078087568283, 0.346161216497421, 0.317243546247482, 0.340911239385605, 0.304346263408661, 0.274338334798813, 0.253901869058609, 0.262585163116455, 0.231020957231522, 0.218931555747986, 0.206650838255882, 0.184870630502701, 0.169452220201492]</td>\n",
-       "        <td>0.816399991512</td>\n",
-       "        <td>0.580716967583</td>\n",
-       "        <td>[0.565699994564056, 0.641200006008148, 0.674899995326996, 0.704500019550323, 0.708000004291534, 0.740499973297119, 0.739799976348877, 0.766499996185303, 0.762099981307983, 0.76690000295639, 0.780900001525879, 0.785000026226044, 0.785300016403198, 0.79009997844696, 0.79449999332428, 0.795799970626831, 0.802600026130676, 0.792599976062775, 0.798399984836578, 0.807299971580505, 0.810500025749207, 0.801699995994568, 0.805400013923645, 0.811600029468536, 0.810100018978119, 0.813899993896484, 0.816399991512299]</td>\n",
-       "        <td>[1.20952260494232, 1.00138294696808, 0.919946014881134, 0.846988558769226, 0.835236310958862, 0.748137712478638, 0.745132148265839, 0.670836567878723, 0.688502311706543, 0.673530399799347, 0.646275579929352, 0.626095473766327, 0.629233837127686, 0.623023450374603, 0.601795375347137, 0.603216171264648, 0.587353229522705, 0.635767936706543, 0.61867493391037, 0.594616591930389, 0.586753845214844, 0.60888147354126, 0.601007521152496, 0.593143999576569, 0.601291477680206, 0.583372294902802, 0.580716967582703]</td>\n",
-       "        <td>model_arch_table_cifar10</td>\n",
-       "        <td>27</td>\n",
-       "        <td>2020-01-23 21:12:04.749779</td>\n",
-       "        <td>2020-01-23 22:07:53.819497</td>\n",
-       "        <td>0</td>\n",
-       "        <td>3</td>\n",
-       "        <td>65</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(45, 2, u\"loss='categorical_crossentropy',optimizer='sgd(lr=0.004501919010538727,momentum=0.9002808952996391)',metrics=['accuracy']\", u'batch_size=256,epochs=5', u'madlib_keras', 2159.70019531, [121.955986022949, 245.619317054749, 368.365077972412, 490.415205955505, 614.768485069275, 737.048167943954, 860.508330106735, 984.307431936264, 1106.31793498993, 1229.54079914093, 1352.66811394691, 1477.57317709923, 1599.99458003044, 1723.35215711594, 1847.86346912384, 1971.57312297821, 2096.37913298607, 2221.54790210724, 2346.08665895462, 2470.83494997025, 2595.6411960125, 2722.25887513161, 2846.48335313797, 2971.13271403313, 3097.49445009232, 3222.44972395897, 3348.5662779808], [u'accuracy'], 0.941940009594, 0.169452220201, [0.574479997158051, 0.658760011196136, 0.695840001106262, 0.72733998298645, 0.733219981193542, 0.771200001239777, 0.778680026531219, 0.808700025081635, 0.809000015258789, 0.818579971790314, 0.835739970207214, 0.84799998998642, 0.853200018405914, 0.858900010585785, 0.872919976711273, 0.878780007362366, 0.88808000087738, 0.880240023136139, 0.894320011138916, 0.903779983520508, 0.912299990653992, 0.908439993858337, 0.919539988040924, 0.924639999866486, 0.929180026054382, 0.9375, 0.941940009593964], [1.19219434261322, 0.959131419658661, 0.861107409000397, 0.770956337451935, 0.747268915176392, 0.64410811662674, 0.628470838069916, 0.539423823356628, 0.541868448257446, 0.514527797698975, 0.469026476144791, 0.432008743286133, 0.416983753442764, 0.402583330869675, 0.363078087568283, 0.346161216497421, 0.317243546247482, 0.340911239385605, 0.304346263408661, 0.274338334798813, 0.253901869058609, 0.262585163116455, 0.231020957231522, 0.218931555747986, 0.206650838255882, 0.184870630502701, 0.169452220201492], 0.816399991512, 0.580716967583, [0.565699994564056, 0.641200006008148, 0.674899995326996, 0.704500019550323, 0.708000004291534, 0.740499973297119, 0.739799976348877, 0.766499996185303, 0.762099981307983, 0.76690000295639, 0.780900001525879, 0.785000026226044, 0.785300016403198, 0.79009997844696, 0.79449999332428, 0.795799970626831, 0.802600026130676, 0.792599976062775, 0.798399984836578, 0.807299971580505, 0.810500025749207, 0.801699995994568, 0.805400013923645, 0.811600029468536, 0.810100018978119, 0.813899993896484, 0.816399991512299], [1.20952260494232, 1.00138294696808, 0.919946014881134, 0.846988558769226, 0.835236310958862, 0.748137712478638, 0.745132148265839, 0.670836567878723, 0.688502311706543, 0.673530399799347, 0.646275579929352, 0.626095473766327, 0.629233837127686, 0.623023450374603, 0.601795375347137, 0.603216171264648, 0.587353229522705, 0.635767936706543, 0.61867493391037, 0.594616591930389, 0.586753845214844, 0.60888147354126, 0.601007521152496, 0.593143999576569, 0.601291477680206, 0.583372294902802, 0.580716967582703], u'model_arch_table_cifar10', 27, datetime.datetime(2020, 1, 23, 21, 12, 4, 749779), datetime.datetime(2020, 1, 23, 22, 7, 53, 819497), 0, 3, 65)]"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql SELECT * FROM $results_table ORDER BY validation_loss_final ASC LIMIT 1;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 24,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "%matplotlib notebook\n",
-    "import matplotlib.pyplot as plt\n",
-    "from matplotlib.ticker import MaxNLocator\n",
-    "from collections import defaultdict\n",
-    "import pandas as pd\n",
-    "import seaborn as sns\n",
-    "sns.set_palette(sns.color_palette(\"hls\", 20))\n",
-    "plt.rcParams.update({'font.size': 12})\n",
-    "pd.set_option('display.max_colwidth', -1)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Training dataset"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "65 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "\n",
-       "mpl.get_websocket_type = function() {\n",
-       "    if (typeof(WebSocket) !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert('Your browser does not have WebSocket support.' +\n",
-       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "              'Firefox 4 and 5 are also supported but you ' +\n",
-       "              'have to enable WebSockets in about:config.');\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent = (\n",
-       "                \"This browser does not support binary websocket messages. \" +\n",
-       "                    \"Performance may be slow.\");\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = $('<div/>');\n",
-       "    this._root_extra_style(this.root)\n",
-       "    this.root.attr('style', 'display: inline-block');\n",
-       "\n",
-       "    $(parent_element).append(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen =  function () {\n",
-       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
-       "            fig.send_message(\"send_image_mode\", {});\n",
-       "            if (mpl.ratio != 1) {\n",
-       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
-       "            }\n",
-       "            fig.send_message(\"refresh\", {});\n",
-       "        }\n",
-       "\n",
-       "    this.imageObj.onload = function() {\n",
-       "            if (fig.image_mode == 'full') {\n",
-       "                // Full images could contain transparency (where diff images\n",
-       "                // almost always do), so we need to clear the canvas so that\n",
-       "                // there is no ghosting.\n",
-       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "            }\n",
-       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "        };\n",
-       "\n",
-       "    this.imageObj.onunload = function() {\n",
-       "        fig.ws.close();\n",
-       "    }\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function() {\n",
-       "    var titlebar = $(\n",
-       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
-       "        'ui-helper-clearfix\"/>');\n",
-       "    var titletext = $(\n",
-       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
-       "        'text-align: center; padding: 3px;\"/>');\n",
-       "    titlebar.append(titletext)\n",
-       "    this.root.append(titlebar);\n",
-       "    this.header = titletext[0];\n",
-       "}\n",
-       "\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = $('<div/>');\n",
-       "\n",
-       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
-       "\n",
-       "    function canvas_keyboard_event(event) {\n",
-       "        return fig.key_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
-       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
-       "    this.canvas_div = canvas_div\n",
-       "    this._canvas_extra_style(canvas_div)\n",
-       "    this.root.append(canvas_div);\n",
-       "\n",
-       "    var canvas = $('<canvas/>');\n",
-       "    canvas.addClass('mpl-canvas');\n",
-       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
-       "\n",
-       "    this.canvas = canvas[0];\n",
-       "    this.context = canvas[0].getContext(\"2d\");\n",
-       "\n",
-       "    var backingStore = this.context.backingStorePixelRatio ||\n",
-       "\tthis.context.webkitBackingStorePixelRatio ||\n",
-       "\tthis.context.mozBackingStorePixelRatio ||\n",
-       "\tthis.context.msBackingStorePixelRatio ||\n",
-       "\tthis.context.oBackingStorePixelRatio ||\n",
-       "\tthis.context.backingStorePixelRatio || 1;\n",
-       "\n",
-       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband = $('<canvas/>');\n",
-       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
-       "\n",
-       "    var pass_mouse_events = true;\n",
-       "\n",
-       "    canvas_div.resizable({\n",
-       "        start: function(event, ui) {\n",
-       "            pass_mouse_events = false;\n",
-       "        },\n",
-       "        resize: function(event, ui) {\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "        stop: function(event, ui) {\n",
-       "            pass_mouse_events = true;\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "    });\n",
-       "\n",
-       "    function mouse_event_fn(event) {\n",
-       "        if (pass_mouse_events)\n",
-       "            return fig.mouse_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
-       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
-       "\n",
-       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
-       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
-       "\n",
-       "    canvas_div.on(\"wheel\", function (event) {\n",
-       "        event = event.originalEvent;\n",
-       "        event['data'] = 'scroll'\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        mouse_event_fn(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.append(canvas);\n",
-       "    canvas_div.append(rubberband);\n",
-       "\n",
-       "    this.rubberband = rubberband;\n",
-       "    this.rubberband_canvas = rubberband[0];\n",
-       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
-       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
-       "\n",
-       "    this._resize_canvas = function(width, height) {\n",
-       "        // Keep the size of the canvas, canvas container, and rubber band\n",
-       "        // canvas in synch.\n",
-       "        canvas_div.css('width', width)\n",
-       "        canvas_div.css('height', height)\n",
-       "\n",
-       "        canvas.attr('width', width * mpl.ratio);\n",
-       "        canvas.attr('height', height * mpl.ratio);\n",
-       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
-       "\n",
-       "        rubberband.attr('width', width);\n",
-       "        rubberband.attr('height', height);\n",
-       "    }\n",
-       "\n",
-       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
-       "    // upon first draw.\n",
-       "    this._resize_canvas(600, 600);\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus () {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            // put a spacer in here.\n",
-       "            continue;\n",
-       "        }\n",
-       "        var button = $('<button/>');\n",
-       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
-       "                        'ui-button-icon-only');\n",
-       "        button.attr('role', 'button');\n",
-       "        button.attr('aria-disabled', 'false');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "\n",
-       "        var icon_img = $('<span/>');\n",
-       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
-       "        icon_img.addClass(image);\n",
-       "        icon_img.addClass('ui-corner-all');\n",
-       "\n",
-       "        var tooltip_span = $('<span/>');\n",
-       "        tooltip_span.addClass('ui-button-text');\n",
-       "        tooltip_span.html(tooltip);\n",
-       "\n",
-       "        button.append(icon_img);\n",
-       "        button.append(tooltip_span);\n",
-       "\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker_span = $('<span/>');\n",
-       "\n",
-       "    var fmt_picker = $('<select/>');\n",
-       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
-       "    fmt_picker_span.append(fmt_picker);\n",
-       "    nav_element.append(fmt_picker_span);\n",
-       "    this.format_dropdown = fmt_picker[0];\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = $(\n",
-       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
-       "        fmt_picker.append(option)\n",
-       "    }\n",
-       "\n",
-       "    // Add hover states to the ui-buttons\n",
-       "    $( \".ui-button\" ).hover(\n",
-       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
-       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
-       "    );\n",
-       "\n",
-       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function(type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function() {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1]);\n",
-       "        fig.send_message(\"refresh\", {});\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
-       "    var x0 = msg['x0'] / mpl.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
-       "    var x1 = msg['x1'] / mpl.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch(cursor)\n",
-       "    {\n",
-       "    case 0:\n",
-       "        cursor = 'pointer';\n",
-       "        break;\n",
-       "    case 1:\n",
-       "        cursor = 'default';\n",
-       "        break;\n",
-       "    case 2:\n",
-       "        cursor = 'crosshair';\n",
-       "        break;\n",
-       "    case 3:\n",
-       "        cursor = 'move';\n",
-       "        break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message(\"ack\", {});\n",
-       "}\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = \"image/png\";\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src);\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data);\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig[\"handle_\" + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function(e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e)\n",
-       "        e = window.event;\n",
-       "    if (e.target)\n",
-       "        targ = e.target;\n",
-       "    else if (e.srcElement)\n",
-       "        targ = e.srcElement;\n",
-       "    if (targ.nodeType == 3) // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "\n",
-       "    // jQuery normalizes the pageX and pageY\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    // offset() returns the position of the element relative to the document\n",
-       "    var x = e.pageX - $(targ).offset().left;\n",
-       "    var y = e.pageY - $(targ).offset().top;\n",
-       "\n",
-       "    return {\"x\": x, \"y\": y};\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys (original) {\n",
-       "  return Object.keys(original).reduce(function (obj, key) {\n",
-       "    if (typeof original[key] !== 'object')\n",
-       "        obj[key] = original[key]\n",
-       "    return obj;\n",
-       "  }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event)\n",
-       "\n",
-       "    if (name === 'button_press')\n",
-       "    {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * mpl.ratio;\n",
-       "    var y = canvas_pos.y * mpl.ratio;\n",
-       "\n",
-       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
-       "                             step: event.step,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function(event, name) {\n",
-       "\n",
-       "    // Prevent repeat events\n",
-       "    if (name == 'key_press')\n",
-       "    {\n",
-       "        if (event.which === this._key)\n",
-       "            return;\n",
-       "        else\n",
-       "            this._key = event.which;\n",
-       "    }\n",
-       "    if (name == 'key_release')\n",
-       "        this._key = null;\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which != 17)\n",
-       "        value += \"ctrl+\";\n",
-       "    if (event.altKey && event.which != 18)\n",
-       "        value += \"alt+\";\n",
-       "    if (event.shiftKey && event.which != 16)\n",
-       "        value += \"shift+\";\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, {key: value,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
-       "    if (name == 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message(\"toolbar_button\", {name: name});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function() {\n",
-       "        comm.close()\n",
-       "    };\n",
-       "    ws.send = function(m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function(msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data'])\n",
-       "    });\n",
-       "    return ws;\n",
-       "}\n",
-       "\n",
-       "mpl.mpl_figure_comm = function(comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = $(\"#\" + id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm)\n",
-       "\n",
-       "    function ondownload(figure, format) {\n",
-       "        window.open(figure.imageObj.src);\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy,\n",
-       "                           ondownload,\n",
-       "                           element.get(0));\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element.get(0);\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "\n",
-       "    var output_index = fig.cell_info[2]\n",
-       "    var cell = fig.cell_info[0];\n",
-       "\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
-       "    var width = fig.canvas.width/mpl.ratio\n",
-       "    fig.root.unbind('remove')\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable()\n",
-       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
-       "    fig.close_ws(fig, msg);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width/mpl.ratio\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message(\"ack\", {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items){\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) { continue; };\n",
-       "\n",
-       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
-       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
-       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
-       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
-       "    buttongrp.append(button);\n",
-       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
-       "    titlebar.prepend(buttongrp);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(el){\n",
-       "    var fig = this\n",
-       "    el.on(\"remove\", function(){\n",
-       "\tfig.close_ws(fig, {});\n",
-       "    });\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.attr('tabindex', 0)\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "    else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager)\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which == 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        event.shiftKey = false;\n",
-       "        // Send a \"J\" for go to next cell\n",
-       "        event.which = 74;\n",
-       "        event.keyCode = 74;\n",
-       "        manager.command_mode();\n",
-       "        manager.handle_keydown(event);\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.find_output_cell = function(html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i=0; i<ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code'){\n",
-       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] == html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel != null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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\" width=\"1000\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    }
-   ],
-   "source": [
-    "#df_results = %sql SELECT * FROM $results_table ORDER BY run_id;\n",
-    "df_results = %sql SELECT * FROM $results_table ORDER BY training_loss_final ASC LIMIT 100;\n",
-    "df_results = df_results.DataFrame()\n",
-    "\n",
-    "#set up plots\n",
-    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
-    "fig.legend(ncol=4)\n",
-    "fig.tight_layout()\n",
-    "\n",
-    "ax_metric = axs[0]\n",
-    "ax_loss = axs[1]\n",
-    "\n",
-    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_metric.set_xlabel('Iteration')\n",
-    "ax_metric.set_ylabel('Metric')\n",
-    "ax_metric.set_title('Training metric curve')\n",
-    "\n",
-    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_loss.set_xlabel('Iteration')\n",
-    "ax_loss.set_ylabel('Loss')\n",
-    "ax_loss.set_title('Training loss curve')\n",
-    "\n",
-    "for run_id in df_results['run_id']:\n",
-    "    df_output_info = %sql SELECT training_metrics,training_loss FROM $results_table WHERE run_id = $run_id\n",
-    "    df_output_info = df_output_info.DataFrame()\n",
-    "    training_metrics = df_output_info['training_metrics'][0]\n",
-    "    training_loss = df_output_info['training_loss'][0]\n",
-    "    X = range(len(training_metrics))\n",
-    "    \n",
-    "    ax_metric.plot(X, training_metrics, label=run_id, marker='o')\n",
-    "    ax_loss.plot(X, training_loss, label=run_id, marker='o')\n",
-    "\n",
-    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Validation dataset"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 27,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "65 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "\n",
-       "mpl.get_websocket_type = function() {\n",
-       "    if (typeof(WebSocket) !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert('Your browser does not have WebSocket support.' +\n",
-       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "              'Firefox 4 and 5 are also supported but you ' +\n",
-       "              'have to enable WebSockets in about:config.');\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent = (\n",
-       "                \"This browser does not support binary websocket messages. \" +\n",
-       "                    \"Performance may be slow.\");\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = $('<div/>');\n",
-       "    this._root_extra_style(this.root)\n",
-       "    this.root.attr('style', 'display: inline-block');\n",
-       "\n",
-       "    $(parent_element).append(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen =  function () {\n",
-       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
-       "            fig.send_message(\"send_image_mode\", {});\n",
-       "            if (mpl.ratio != 1) {\n",
-       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
-       "            }\n",
-       "            fig.send_message(\"refresh\", {});\n",
-       "        }\n",
-       "\n",
-       "    this.imageObj.onload = function() {\n",
-       "            if (fig.image_mode == 'full') {\n",
-       "                // Full images could contain transparency (where diff images\n",
-       "                // almost always do), so we need to clear the canvas so that\n",
-       "                // there is no ghosting.\n",
-       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "            }\n",
-       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "        };\n",
-       "\n",
-       "    this.imageObj.onunload = function() {\n",
-       "        fig.ws.close();\n",
-       "    }\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function() {\n",
-       "    var titlebar = $(\n",
-       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
-       "        'ui-helper-clearfix\"/>');\n",
-       "    var titletext = $(\n",
-       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
-       "        'text-align: center; padding: 3px;\"/>');\n",
-       "    titlebar.append(titletext)\n",
-       "    this.root.append(titlebar);\n",
-       "    this.header = titletext[0];\n",
-       "}\n",
-       "\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = $('<div/>');\n",
-       "\n",
-       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
-       "\n",
-       "    function canvas_keyboard_event(event) {\n",
-       "        return fig.key_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
-       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
-       "    this.canvas_div = canvas_div\n",
-       "    this._canvas_extra_style(canvas_div)\n",
-       "    this.root.append(canvas_div);\n",
-       "\n",
-       "    var canvas = $('<canvas/>');\n",
-       "    canvas.addClass('mpl-canvas');\n",
-       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
-       "\n",
-       "    this.canvas = canvas[0];\n",
-       "    this.context = canvas[0].getContext(\"2d\");\n",
-       "\n",
-       "    var backingStore = this.context.backingStorePixelRatio ||\n",
-       "\tthis.context.webkitBackingStorePixelRatio ||\n",
-       "\tthis.context.mozBackingStorePixelRatio ||\n",
-       "\tthis.context.msBackingStorePixelRatio ||\n",
-       "\tthis.context.oBackingStorePixelRatio ||\n",
-       "\tthis.context.backingStorePixelRatio || 1;\n",
-       "\n",
-       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband = $('<canvas/>');\n",
-       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
-       "\n",
-       "    var pass_mouse_events = true;\n",
-       "\n",
-       "    canvas_div.resizable({\n",
-       "        start: function(event, ui) {\n",
-       "            pass_mouse_events = false;\n",
-       "        },\n",
-       "        resize: function(event, ui) {\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "        stop: function(event, ui) {\n",
-       "            pass_mouse_events = true;\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "    });\n",
-       "\n",
-       "    function mouse_event_fn(event) {\n",
-       "        if (pass_mouse_events)\n",
-       "            return fig.mouse_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
-       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
-       "\n",
-       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
-       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
-       "\n",
-       "    canvas_div.on(\"wheel\", function (event) {\n",
-       "        event = event.originalEvent;\n",
-       "        event['data'] = 'scroll'\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        mouse_event_fn(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.append(canvas);\n",
-       "    canvas_div.append(rubberband);\n",
-       "\n",
-       "    this.rubberband = rubberband;\n",
-       "    this.rubberband_canvas = rubberband[0];\n",
-       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
-       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
-       "\n",
-       "    this._resize_canvas = function(width, height) {\n",
-       "        // Keep the size of the canvas, canvas container, and rubber band\n",
-       "        // canvas in synch.\n",
-       "        canvas_div.css('width', width)\n",
-       "        canvas_div.css('height', height)\n",
-       "\n",
-       "        canvas.attr('width', width * mpl.ratio);\n",
-       "        canvas.attr('height', height * mpl.ratio);\n",
-       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
-       "\n",
-       "        rubberband.attr('width', width);\n",
-       "        rubberband.attr('height', height);\n",
-       "    }\n",
-       "\n",
-       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
-       "    // upon first draw.\n",
-       "    this._resize_canvas(600, 600);\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus () {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            // put a spacer in here.\n",
-       "            continue;\n",
-       "        }\n",
-       "        var button = $('<button/>');\n",
-       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
-       "                        'ui-button-icon-only');\n",
-       "        button.attr('role', 'button');\n",
-       "        button.attr('aria-disabled', 'false');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "\n",
-       "        var icon_img = $('<span/>');\n",
-       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
-       "        icon_img.addClass(image);\n",
-       "        icon_img.addClass('ui-corner-all');\n",
-       "\n",
-       "        var tooltip_span = $('<span/>');\n",
-       "        tooltip_span.addClass('ui-button-text');\n",
-       "        tooltip_span.html(tooltip);\n",
-       "\n",
-       "        button.append(icon_img);\n",
-       "        button.append(tooltip_span);\n",
-       "\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker_span = $('<span/>');\n",
-       "\n",
-       "    var fmt_picker = $('<select/>');\n",
-       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
-       "    fmt_picker_span.append(fmt_picker);\n",
-       "    nav_element.append(fmt_picker_span);\n",
-       "    this.format_dropdown = fmt_picker[0];\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = $(\n",
-       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
-       "        fmt_picker.append(option)\n",
-       "    }\n",
-       "\n",
-       "    // Add hover states to the ui-buttons\n",
-       "    $( \".ui-button\" ).hover(\n",
-       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
-       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
-       "    );\n",
-       "\n",
-       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function(type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function() {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1]);\n",
-       "        fig.send_message(\"refresh\", {});\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
-       "    var x0 = msg['x0'] / mpl.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
-       "    var x1 = msg['x1'] / mpl.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch(cursor)\n",
-       "    {\n",
-       "    case 0:\n",
-       "        cursor = 'pointer';\n",
-       "        break;\n",
-       "    case 1:\n",
-       "        cursor = 'default';\n",
-       "        break;\n",
-       "    case 2:\n",
-       "        cursor = 'crosshair';\n",
-       "        break;\n",
-       "    case 3:\n",
-       "        cursor = 'move';\n",
-       "        break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message(\"ack\", {});\n",
-       "}\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = \"image/png\";\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src);\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data);\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig[\"handle_\" + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function(e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e)\n",
-       "        e = window.event;\n",
-       "    if (e.target)\n",
-       "        targ = e.target;\n",
-       "    else if (e.srcElement)\n",
-       "        targ = e.srcElement;\n",
-       "    if (targ.nodeType == 3) // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "\n",
-       "    // jQuery normalizes the pageX and pageY\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    // offset() returns the position of the element relative to the document\n",
-       "    var x = e.pageX - $(targ).offset().left;\n",
-       "    var y = e.pageY - $(targ).offset().top;\n",
-       "\n",
-       "    return {\"x\": x, \"y\": y};\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys (original) {\n",
-       "  return Object.keys(original).reduce(function (obj, key) {\n",
-       "    if (typeof original[key] !== 'object')\n",
-       "        obj[key] = original[key]\n",
-       "    return obj;\n",
-       "  }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event)\n",
-       "\n",
-       "    if (name === 'button_press')\n",
-       "    {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * mpl.ratio;\n",
-       "    var y = canvas_pos.y * mpl.ratio;\n",
-       "\n",
-       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
-       "                             step: event.step,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function(event, name) {\n",
-       "\n",
-       "    // Prevent repeat events\n",
-       "    if (name == 'key_press')\n",
-       "    {\n",
-       "        if (event.which === this._key)\n",
-       "            return;\n",
-       "        else\n",
-       "            this._key = event.which;\n",
-       "    }\n",
-       "    if (name == 'key_release')\n",
-       "        this._key = null;\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which != 17)\n",
-       "        value += \"ctrl+\";\n",
-       "    if (event.altKey && event.which != 18)\n",
-       "        value += \"alt+\";\n",
-       "    if (event.shiftKey && event.which != 16)\n",
-       "        value += \"shift+\";\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, {key: value,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
-       "    if (name == 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message(\"toolbar_button\", {name: name});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function() {\n",
-       "        comm.close()\n",
-       "    };\n",
-       "    ws.send = function(m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function(msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data'])\n",
-       "    });\n",
-       "    return ws;\n",
-       "}\n",
-       "\n",
-       "mpl.mpl_figure_comm = function(comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = $(\"#\" + id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm)\n",
-       "\n",
-       "    function ondownload(figure, format) {\n",
-       "        window.open(figure.imageObj.src);\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy,\n",
-       "                           ondownload,\n",
-       "                           element.get(0));\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element.get(0);\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "\n",
-       "    var output_index = fig.cell_info[2]\n",
-       "    var cell = fig.cell_info[0];\n",
-       "\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
-       "    var width = fig.canvas.width/mpl.ratio\n",
-       "    fig.root.unbind('remove')\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable()\n",
-       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
-       "    fig.close_ws(fig, msg);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width/mpl.ratio\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message(\"ack\", {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>')\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items){\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) { continue; };\n",
-       "\n",
-       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
-       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
-       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
-       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
-       "    buttongrp.append(button);\n",
-       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
-       "    titlebar.prepend(buttongrp);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(el){\n",
-       "    var fig = this\n",
-       "    el.on(\"remove\", function(){\n",
-       "\tfig.close_ws(fig, {});\n",
-       "    });\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.attr('tabindex', 0)\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "    else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager)\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which == 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        event.shiftKey = false;\n",
-       "        // Send a \"J\" for go to next cell\n",
-       "        event.which = 74;\n",
-       "        event.keyCode = 74;\n",
-       "        manager.command_mode();\n",
-       "        manager.handle_keydown(event);\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.find_output_cell = function(html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i=0; i<ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code'){\n",
-       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] == html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel != null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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\" width=\"1000\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    }
-   ],
-   "source": [
-    "#df_results = %sql SELECT * FROM $results_table ORDER BY run_id;\n",
-    "df_results = %sql SELECT * FROM $results_table ORDER BY validation_metrics_final DESC LIMIT 100;\n",
-    "df_results = df_results.DataFrame()\n",
-    "\n",
-    "#set up plots\n",
-    "fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
-    "fig.legend(ncol=4)\n",
-    "fig.tight_layout()\n",
-    "\n",
-    "ax_metric = axs[0]\n",
-    "ax_loss = axs[1]\n",
-    "\n",
-    "ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_metric.set_xlabel('Iteration')\n",
-    "ax_metric.set_ylabel('Metric')\n",
-    "ax_metric.set_title('Validation metric curve')\n",
-    "\n",
-    "ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
-    "ax_loss.set_xlabel('Iteration')\n",
-    "ax_loss.set_ylabel('Loss')\n",
-    "ax_loss.set_title('Validation loss curve')\n",
-    "\n",
-    "for run_id in df_results['run_id']:\n",
-    "    df_output_info = %sql SELECT validation_metrics,validation_loss FROM $results_table WHERE run_id = $run_id\n",
-    "    df_output_info = df_output_info.DataFrame()\n",
-    "    validation_metrics = df_output_info['validation_metrics'][0]\n",
-    "    validation_loss = df_output_info['validation_loss'][0]\n",
-    "    X = range(len(validation_metrics))\n",
-    "    \n",
-    "    ax_metric.plot(X, validation_metrics, label=run_id, marker='o')\n",
-    "    ax_loss.plot(X, validation_loss, label=run_id, marker='o')\n",
-    "\n",
-    "# fig.savefig('./lc_keras_fit.png', dpi = 300)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"print\"></a>\n",
-    "# 6. Print run schedules (display only)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Pretty print reg Hyperband run schedule"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 31,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "max_iter = 27\n",
-      "eta = 3\n",
-      "B = 4*max_iter = 108\n",
-      "skip_last = 0\n",
-      " \n",
-      "s=3\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "27     1.0\n",
-      "9.0     3.0\n",
-      "3.0     9.0\n",
-      "1.0     27.0\n",
-      " \n",
-      "s=2\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "9     3.0\n",
-      "3.0     9.0\n",
-      "1.0     27.0\n",
-      " \n",
-      "s=1\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "6     9.0\n",
-      "2.0     27.0\n",
-      " \n",
-      "s=0\n",
-      "n_i      r_i\n",
-      "------------\n",
-      "4     27\n",
-      " \n",
-      "sum of configurations at leaf nodes across all s = 8.0\n",
-      "(if have more workers than this, they may not be 100% busy)\n"
-     ]
-    }
-   ],
-   "source": [
-    "import numpy as np\n",
-    "from math import log, ceil\n",
-    "\n",
-    "#input\n",
-    "max_iter = 27  # maximum iterations/epochs per configuration\n",
-    "eta = 3  # defines downsampling rate (default=3)\n",
-    "skip_last = 0 # 1 means skip last run in each bracket, 0 means run full bracket\n",
-    "\n",
-    "logeta = lambda x: log(x)/log(eta)\n",
-    "s_max = int(logeta(max_iter))  # number of unique executions of Successive Halving (minus one)\n",
-    "B = (s_max+1)*max_iter  # total number of iterations (without reuse) per execution of Succesive Halving (n,r)\n",
-    "\n",
-    "#echo output\n",
-    "print (\"max_iter = \" + str(max_iter))\n",
-    "print (\"eta = \" + str(eta))\n",
-    "print (\"B = \" + str(s_max+1) + \"*max_iter = \" + str(B))\n",
-    "print (\"skip_last = \" + str(skip_last))\n",
-    "\n",
-    "sum_leaf_n_i = 0 # count configurations at leaf nodes across all s\n",
-    "\n",
-    "#### Begin Finite Horizon Hyperband outlerloop. Repeat indefinitely.\n",
-    "for s in reversed(range(s_max+1)):\n",
-    "    \n",
-    "    print (\" \")\n",
-    "    print (\"s=\" + str(s))\n",
-    "    print (\"n_i      r_i\")\n",
-    "    print (\"------------\")\n",
-    "    counter = 0\n",
-    "    \n",
-    "    n = int(ceil(int(B/max_iter/(s+1))*eta**s)) # initial number of configurations\n",
-    "    r = max_iter*eta**(-s) # initial number of iterations to run configurations for\n",
-    "\n",
-    "    #### Begin Finite Horizon Successive Halving with (n,r)\n",
-    "    #T = [ get_random_hyperparameter_configuration() for i in range(n) ] \n",
-    "    for i in range((s+1) - int(skip_last)):\n",
-    "        # Run each of the n_i configs for r_i iterations and keep best n_i/eta\n",
-    "        n_i = n*eta**(-i)\n",
-    "        r_i = r*eta**(i)\n",
-    "        \n",
-    "        print (str(n_i) + \"     \" + str (r_i))\n",
-    "        \n",
-    "        # check if leaf node for this s\n",
-    "        if counter == (s-skip_last):\n",
-    "            sum_leaf_n_i += n_i\n",
-    "        counter += 1\n",
-    "        \n",
-    "        #val_losses = [ run_then_return_val_loss(num_iters=r_i,hyperparameters=t) for t in T ]\n",
-    "        #T = [ T[i] for i in argsort(val_losses)[0:int( n_i/eta )] ]\n",
-    "    #### End Finite Horizon Successive Halving with (n,r)\n",
-    "\n",
-    "print (\" \")\n",
-    "print (\"sum of configurations at leaf nodes across all s = \" + str(sum_leaf_n_i))\n",
-    "print (\"(if have more workers than this, they may not be 100% busy)\")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Pretty print Hyperband diagonal run schedule"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import numpy as np\n",
-    "from math import log, ceil\n",
-    "\n",
-    "#input\n",
-    "max_iter = 27  # maximum iterations/epochs per configuration\n",
-    "eta = 3  # defines downsampling rate (default=3)\n",
-    "skip_last = 1 # 1 means skip last run in each bracket, 0 means run full bracket\n",
-    "\n",
-    "logeta = lambda x: log(x)/log(eta)\n",
-    "s_max = int(logeta(max_iter))  # number of unique executions of Successive Halving (minus one)\n",
-    "B = (s_max+1)*max_iter  # total number of iterations (without reuse) per execution of Succesive Halving (n,r)\n",
-    "\n",
-    "#echo output\n",
-    "print (\"echo input:\")\n",
-    "print (\"max_iter = \" + str(max_iter))\n",
-    "print (\"eta = \" + str(eta))\n",
-    "print (\"s_max = \" + str(s_max))\n",
-    "print (\"B = \" + str(s_max+1) + \"*max_iter = \" + str(B))\n",
-    "\n",
-    "print (\" \")\n",
-    "print (\"initial n, r values for each s:\")\n",
-    "initial_n_vals = {}\n",
-    "initial_r_vals = {}\n",
-    "# get hyper parameter configs for each s\n",
-    "for s in reversed(range(s_max+1)):\n",
-    "    \n",
-    "    n = int(ceil(int(B/max_iter/(s+1))*eta**s)) # initial number of configurations\n",
-    "    r = max_iter*eta**(-s) # initial number of iterations to run configurations for\n",
-    "    \n",
-    "    initial_n_vals[s] = n \n",
-    "    initial_r_vals[s] = r \n",
-    "    \n",
-    "    print (\"s=\" + str(s))\n",
-    "    print (\"n=\" + str(n))\n",
-    "    print (\"r=\" + str(r))\n",
-    "    print (\" \")\n",
-    "    \n",
-    "print (\"outer loop on diagonal:\")\n",
-    "# outer loop on diagonal\n",
-    "for i in range((s_max+1) - int(skip_last)):\n",
-    "    print (\" \")\n",
-    "    print (\"i=\" + str(i))\n",
-    "    \n",
-    "    print (\"inner loop on s desc:\")\n",
-    "    # inner loop on s desc\n",
-    "    for s in range(s_max, s_max-i-1, -1):\n",
-    "        n_i = initial_n_vals[s]*eta**(-i+s_max-s)\n",
-    "        r_i = initial_r_vals[s]*eta**(i-s_max+s)\n",
-    "        \n",
-    "        print (\"s=\" + str(s))\n",
-    "        print (\"n_i=\" + str(n_i))\n",
-    "        print (\"r_i=\" + str(r_i))"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "<a id=\"predict\"></a>\n",
-    "# 7. Inference\n",
-    "\n",
-    "Use the best model from the last run.\n",
-    "\n",
-    "## 7a. Run predict on the whole validation dataset"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 93,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>mst_key</th>\n",
-       "        <th>model_id</th>\n",
-       "        <th>compile_params</th>\n",
-       "        <th>fit_params</th>\n",
-       "        <th>model_type</th>\n",
-       "        <th>model_size</th>\n",
-       "        <th>metrics_elapsed_time</th>\n",
-       "        <th>metrics_type</th>\n",
-       "        <th>training_metrics_final</th>\n",
-       "        <th>training_loss_final</th>\n",
-       "        <th>training_metrics</th>\n",
-       "        <th>training_loss</th>\n",
-       "        <th>validation_metrics_final</th>\n",
-       "        <th>validation_loss_final</th>\n",
-       "        <th>validation_metrics</th>\n",
-       "        <th>validation_loss</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>2</td>\n",
-       "        <td>loss='categorical_crossentropy',optimizer='adam(lr=0.002826545217978097)',metrics=['accuracy']</td>\n",
-       "        <td>batch_size=128,epochs=5</td>\n",
-       "        <td>madlib_keras</td>\n",
-       "        <td>2159.70019531</td>\n",
-       "        <td>[156.498700857162, 314.38369679451, 471.076618909836]</td>\n",
-       "        <td>[u'accuracy']</td>\n",
-       "        <td>0.89631998539</td>\n",
-       "        <td>0.301868826151</td>\n",
-       "        <td>[0.817480027675629, 0.862479984760284, 0.896319985389709]</td>\n",
-       "        <td>[0.536632478237152, 0.400230169296265, 0.301868826150894]</td>\n",
-       "        <td>0.805899977684</td>\n",
-       "        <td>0.613121390343</td>\n",
-       "        <td>[0.764500021934509, 0.788500010967255, 0.805899977684021]</td>\n",
-       "        <td>[0.717438697814941, 0.662977695465088, 0.613121390342712]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(6, 2, u\"loss='categorical_crossentropy',optimizer='adam(lr=0.002826545217978097)',metrics=['accuracy']\", u'batch_size=128,epochs=5', u'madlib_keras', 2159.70019531, [156.498700857162, 314.38369679451, 471.076618909836], [u'accuracy'], 0.89631998539, 0.301868826151, [0.817480027675629, 0.862479984760284, 0.896319985389709], [0.536632478237152, 0.400230169296265, 0.301868826150894], 0.805899977684, 0.613121390343, [0.764500021934509, 0.788500010967255, 0.805899977684021], [0.717438697814941, 0.662977695465088, 0.613121390342712])]"
-      ]
-     },
-     "execution_count": 93,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql SELECT * FROM $best_model_info;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 94,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    }
-   ],
-   "source": [
-    "best_mst_key = %sql SELECT mst_key FROM $best_model_info; \n",
-    "best_mst_key = best_mst_key.DataFrame().to_numpy()[0][0]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 95,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "5 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>estimated_y</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]"
-      ]
-     },
-     "execution_count": 95,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql DROP TABLE IF EXISTS cifar10_val_predict;\n",
-    "%sql SELECT madlib.madlib_keras_predict('cifar10_best_model', 'cifar10_val', 'id', 'x', 'cifar10_val_predict', 'response', True, $best_mst_key);\n",
-    "%sql SELECT * FROM cifar10_val_predict ORDER BY id LIMIT 5;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Count missclassifications"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 96,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>count</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1941</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(1941L,)]"
-      ]
-     },
-     "execution_count": 96,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT COUNT(*) FROM cifar10_val_predict JOIN cifar10_val USING (id) \n",
-    "WHERE cifar10_val_predict.estimated_y != cifar10_val.y;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Accuracy"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 97,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>test_accuracy_percent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>80.59</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(Decimal('80.59'),)]"
-      ]
-     },
-     "execution_count": 97,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT round(count(*)*100.0/10000.0,2) as test_accuracy_percent from\n",
-    "    (select cifar10_val.y as actual, cifar10_val_predict.estimated_y as predicted\n",
-    "     from cifar10_val_predict inner join cifar10_val\n",
-    "     on cifar10_val.id=cifar10_val_predict.id) q\n",
-    "WHERE q.actual=q.predicted;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## 7b. Select a random image from the validation dataset and run predict\n",
-    "\n",
-    "Label map"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 98,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "label_names = {\n",
-    "    0 :\"airplane\",\n",
-    "    1 :\"automobile\",\n",
-    "    2 :\"bird\",\n",
-    "    3:\"cat\",\n",
-    "    4 :\"deer\",\n",
-    "    5 :\"dog\",\n",
-    "    6 :\"frog\",\n",
-    "    7 :\"horse\",\n",
-    "    8 :\"ship\",\n",
-    "    9 :\"truck\"\n",
-    "}"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Pick a random image"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 99,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 99,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS cifar10_val_random;\n",
-    "CREATE TABLE cifar10_val_random AS\n",
-    "    SELECT * FROM cifar10_val ORDER BY random() LIMIT 1;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Predict"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 100,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>prob_0</th>\n",
-       "        <th>prob_1</th>\n",
-       "        <th>prob_2</th>\n",
-       "        <th>prob_3</th>\n",
-       "        <th>prob_4</th>\n",
-       "        <th>prob_5</th>\n",
-       "        <th>prob_6</th>\n",
-       "        <th>prob_7</th>\n",
-       "        <th>prob_8</th>\n",
-       "        <th>prob_9</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>9813</td>\n",
-       "        <td>7.9166554e-08</td>\n",
-       "        <td>0.00038159246</td>\n",
-       "        <td>8.776156e-11</td>\n",
-       "        <td>1.7702625e-08</td>\n",
-       "        <td>1.2219187e-10</td>\n",
-       "        <td>8.096258e-10</td>\n",
-       "        <td>5.192042e-10</td>\n",
-       "        <td>1.5758073e-09</td>\n",
-       "        <td>4.106987e-07</td>\n",
-       "        <td>0.99961793</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(9813, 7.9166554e-08, 0.00038159246, 8.776156e-11, 1.7702625e-08, 1.2219187e-10, 8.096258e-10, 5.192042e-10, 1.5758073e-09, 4.106987e-07, 0.99961793)]"
-      ]
-     },
-     "execution_count": 100,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql DROP TABLE IF EXISTS cifar10_val_random_predict;\n",
-    "%sql SELECT madlib.madlib_keras_predict('cifar10_best_model', 'cifar10_val_random', 'id', 'x', 'cifar10_val_random_predict', 'prob', True, $best_mst_key);\n",
-    "%sql SELECT * FROM cifar10_val_random_predict ;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "Format output and display"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 101,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>feature_vector</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[7.9166554e-08, 0.00038159246, 8.776156e-11, 1.7702625e-08, 1.2219187e-10, 8.096258e-10, 5.192042e-10, 1.5758073e-09, 4.106987e-07, 0.99961793]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([7.9166554e-08, 0.00038159246, 8.776156e-11, 1.7702625e-08, 1.2219187e-10, 8.096258e-10, 5.192042e-10, 1.5758073e-09, 4.106987e-07, 0.99961793],)]"
-      ]
-     },
-     "execution_count": 101,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS cifar10_val_random_predict_array, cifar10_val_random_predict_array_summary;\n",
-    "SELECT madlib.cols2vec(\n",
-    "    'cifar10_val_random_predict',\n",
-    "    'cifar10_val_random_predict_array',\n",
-    "    '*',\n",
-    "    'id'\n",
-    ");\n",
-    "select * from cifar10_val_random_predict_array;"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 102,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n",
-      "1 rows affected.\n",
-      " \n",
-      "truck 0.99961793\n",
-      "automobile 0.00038159246\n",
-      "ship 4.106987e-07\n"
-     ]
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "x = %sql SELECT x FROM cifar10_val_random;\n",
-    "x = x.DataFrame().to_numpy()\n",
-    "import numpy as np\n",
-    "from matplotlib.pyplot import imshow\n",
-    "%matplotlib inline\n",
-    "x_np = np.array(x[0][0], dtype=np.uint8)\n",
-    "imshow(x_np)\n",
-    "\n",
-    "x = %sql SELECT * FROM cifar10_val_random_predict_array;\n",
-    "x = x.DataFrame().to_numpy()\n",
-    "x = np.array(x[0][0])\n",
-    "top_3_prob_label_indices = x.argsort()[-3:][::-1]\n",
-    "print (\" \");\n",
-    "for index in top_3_prob_label_indices:\n",
-    "    print (label_names[index], x[index])"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "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.16"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}