{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Structured data prediction using Cloud ML Engine" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook illustrates:\n", "\n", "1. Exploring a BigQuery dataset using JupyterLab\n", "2. Creating datasets for Machine Learning using Dataflow\n", "3. Creating a model using the feature columns and Keras API\n", "4. Training on Cloud AI Platform\n", "5. Deploying model\n", "6. Predicting with model\n", "\n", "Before starting the lab, upgrade packages that are required for this notebook." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!pip install tensorflow==2.2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Now you have to restart the kernel by selecting the \"Kernel\" -> \"Restart Kernel\" from the menu bar** to reflect the newly installed modules.\n", "\n", "After restarting the kernel, you can resume the code execution from the next cell." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# change these to try this notebook out\n", "BUCKET = 'babyweight-keras-ml'\n", "PROJECT = 'babyweight-keras'\n", "REGION = 'us-central1'\n", "NOTEBOOK_DIR = '/home/jupyter/training-data-analyst/blogs/babyweight_keras'" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.environ['BUCKET'] = BUCKET\n", "os.environ['PROJECT'] = PROJECT\n", "os.environ['REGION'] = REGION\n", "os.environ['NOTEBOOK_DIR'] = NOTEBOOK_DIR" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Updated property [core/project].\n", "Updated property [compute/region].\n" ] } ], "source": [ "%%bash\n", "gcloud config set project $PROJECT\n", "gcloud config set compute/region $REGION" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Creating gs://babyweight-keras-ml/...\n" ] } ], "source": [ "%%bash\n", "if ! gsutil ls | grep -q gs://${BUCKET}/; then\n", " gsutil mb -l ${REGION} gs://${BUCKET}\n", "fi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 1: Data Analysis and Preparation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploring data\n", "\n", "The data is natality data (record of births in the US). My goal is to predict the baby's weight given a number of factors about the pregnancy and the baby's mother. Later, we will want to split the data into training and eval datasets. The hash of the year-month will be used for that." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "query=\"\"\"\n", "SELECT\n", " weight_pounds,\n", " is_male,\n", " mother_age,\n", " plurality,\n", " gestation_weeks,\n", " FARM_FINGERPRINT(CONCAT(CAST(YEAR AS STRING), CAST(month AS STRING))) AS hashmonth\n", "FROM\n", " publicdata.samples.natality\n", "WHERE year > 2000\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
weight_poundsis_malemother_agepluralitygestation_weekshashmonth
07.063611True32137.07108882242435606404
14.687028True30333.0-7170969733900686954
27.561856True20139.06392072535155213407
37.561856True31137.0-2126480030009879160
47.312733True32140.03408502330831153141
\n", "
" ], "text/plain": [ " weight_pounds is_male mother_age plurality gestation_weeks \\\n", "0 7.063611 True 32 1 37.0 \n", "1 4.687028 True 30 3 33.0 \n", "2 7.561856 True 20 1 39.0 \n", "3 7.561856 True 31 1 37.0 \n", "4 7.312733 True 32 1 40.0 \n", "\n", " hashmonth \n", "0 7108882242435606404 \n", "1 -7170969733900686954 \n", "2 6392072535155213407 \n", "3 -2126480030009879160 \n", "4 3408502330831153141 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from google.cloud import bigquery\n", "bq = bigquery.Client()\n", "\n", "query_job = bq.query(query + \" LIMIT 100\")\n", "df = query_job.to_dataframe()\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's write a query to find the unique values for each of the columns and the count of those values." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def get_distinct_values(column_name):\n", " sql = \"\"\"\n", "SELECT\n", " {0},\n", " COUNT(1) AS num_babies,\n", " AVG(weight_pounds) AS avg_wt\n", "FROM\n", " publicdata.samples.natality\n", "WHERE\n", " year > 2000\n", "GROUP BY\n", " {0}\n", " \"\"\".format(column_name)\n", " return bq.query(sql).to_dataframe()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df = get_distinct_values('is_male')\n", "df.plot(x='is_male', y='num_babies', kind='bar')\n", "df.plot(x='is_male', y='avg_wt', kind='bar')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df = get_distinct_values('mother_age')\n", "df = df.sort_values('mother_age')\n", "df.plot(x='mother_age', y='num_babies')\n", "df.plot(x='mother_age', y='avg_wt')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAEDCAYAAAAcI05xAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQyUlEQVR4nO3dfZBV9X3H8c9HxSJKEHBJOyVk1aEgpsrDhSiLjDFqiSKotYPMNFEm7f5RY8ik1SE6TqbjtPVp0urEcbpjCbY+RwNVtCY+URHFZBG0EXAmKujWKCttRcSNrn77x70r63phz4V77vmx+37N7Oy595x79nOP3M8cf/c8OCIEAEjXQUUHAADsHUUNAImjqAEgcRQ1ACSOogaAxFHUAJC4Q/JY6VFHHRXNzc15rBoABqR169a9ExFN1eblUtTNzc1qb2/PY9UAMCDZ3rqneQx9AEDiKGoASBxFDQCJy2WMGgA++ugjdXR0qKurq+goSRk6dKjGjh2rIUOGZH4NRQ0gFx0dHRo+fLiam5tlu+g4SYgIbd++XR0dHTr66KMzv46hDwC56Orq0ujRoynpXmxr9OjRNf9fBkUNIDeU9OftyzahqAEgBytWrNDGjRvrsq4kx6iblzxUdARJ0pZrzi46AjBg1Ptznfrnc8WKFZo7d64mTZq03+tijxrAgHbuuedq2rRpOv7449XW1qZbbrlFl19++afzly1bpksvvVSSdPXVV2vixIk644wztHDhQt1www1V17lt2zZNmzZNkvTCCy/Itl5//XVJ0rHHHqtnnnlGDzzwgC677DJNnjxZr7zyyn69hyT3qAGgXpYuXapRo0bpgw8+0PTp0/X444+rpaVF1113nSTpnnvu0ZVXXqn29nbdf//9Wr9+vbq7uzV16tRPy7ivMWPGqKurSzt27NDq1atVKpW0evVqzZo1S2PGjNHMmTM1b948zZ07VxdccMF+vweKGsCAdtNNN2n58uWSpDfeeEOvvfaajjnmGK1du1bjx4/Xyy+/rJaWFt14442aP3++DjvsMEnSOeecs9f1zpw5U2vWrNFTTz2lK664Qo888ogiQqecckrd3wNFDWDAWrVqlR577DE9++yzGjZsmE499VR1dXVpwYIFuvfeezVx4kSdd955sq1ab/R9yimnaPXq1dq6davmz5+va6+9VrY1d+7cur+PfseobU+wvaHXzw7b36t7EgCos3fffVcjR47UsGHDtHnzZq1du1aSdP7552vFihW66667tGDBAknSrFmz9OCDD6qrq0s7d+7UQw/t/cvP2bNn6/bbb9f48eN10EEHadSoUXr44YfV0tIiSRo+fLjee++9uryPfos6Il6OiMkRMVnSNEm7JC2vy18HgBzNmTNH3d3dOuGEE3TVVVfppJNOkiSNHDlSkyZN0tatWzVjxgxJ0vTp0zVv3jydeOKJOv/881UqlTRixIg9rrvnmvuzZ8+WVC76I488UiNHjpQkXXjhhbr++us1ZcqU/f4y0bXs7ts+U9IPI6Jlb8uVSqXYn+tRc3gecODbtGmTjjvuuKJj1GTnzp064ogjtGvXLs2ePVttbW2aOnVq3f9OtW1je11ElKotX+sY9YWS7trHbACQtNbWVm3cuFFdXV266KKLcinpfZG5qG0fKmmepB/sYX6rpFZJGjduXF3CAUAj3XnnnZ977pJLLtGaNWs+89zixYu1aNGiRsWqaY/6G5Kej4i3q82MiDZJbVJ56KMO2QCgcDfffHPREWo6M3GhGPYAgIbLVNS2h0k6Q9LP8o0DYCCp9djkwWBftkmmoo6IXRExOiLerfkvABiUhg4dqu3bt1PWvfTcOGDo0KE1vY4zEwHkYuzYsero6FBnZ2fRUZLScyuuWlDUAHIxZMiQmm43hT3jMqcAkDiKGgASR1EDQOIoagBIHEUNAImjqAEgcRQ1ACSOogaAxFHUAJA4ihoAEkdRA0DiKGoASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABKX9S7kR9q+z/Zm25tsn5x3MABAWdZ7Jt4o6ZGIuMD2oZKG5ZgJANBLv0Vt+wuSZku6WJIi4kNJH+YbCwDQI8vQxzGSOiX9xPZ627faPrzvQrZbbbfbbuf28ABQP1mK+hBJUyXdEhFTJL0vaUnfhSKiLSJKEVFqamqqc0wAGLyyFHWHpI6IeK7y+D6VixsA0AD9FnVEvCXpDdsTKk99XdLGXFMBAD6V9aiPSyXdUTni41VJi/KLBADoLVNRR8QGSaV8owAAquHMRABIHEUNAImjqAEgcRQ1ACSOogaAxFHUAJA4ihoAEkdRA0DiKGoASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABJHUQNA4ihqAEgcRQ0AiaOoASBxme6ZaHuLpPckfSypOyK4f2KDNC95qOgIkqQt15xddARg0Mp6F3JJ+lpEvJNbEgBAVQx9AEDishZ1SPqF7XW2W/MMBAD4rKxDHy0R8abtMZIetb05Ip7qvUClwFslady4cXWOCQCDV6Y96oh4s/J7m6TlkmZUWaYtIkoRUWpqaqpvSgAYxPotatuH2x7eMy3pTEm/zjsYAKAsy9DHFyUtt92z/J0R8UiuqQAAn+q3qCPiVUknNiALAKAKDs8DgMRR1ACQOIoaABJHUQNA4ihqAEgcRQ0AiaOoASBxFDUAJI6iBoDEUdQAkDiKGgASR1EDQOIoagBIHEUNAImjqAEgcRQ1ACSOogaAxFHUAJA4ihoAEpe5qG0fbHu97ZV5BgIAfFYte9SLJW3KKwgAoLpMRW17rKSzJd2abxwAQF9Z96j/SdLlkj7JLwoAoJp+i9r2XEnbImJdP8u12m633d7Z2Vm3gAAw2GXZo26RNM/2Fkl3SzrN9u19F4qItogoRUSpqampzjEBYPDqt6gj4gcRMTYimiVdKOmJiPjz3JMBACRxHDUAJO+QWhaOiFWSVuWSBABQFXvUAJA4ihoAEkdRA0DiKGoASFxNXyYCRWpe8lDRESRJW645u+gIGGTYowaAxFHUAJA4ihoAEkdRA0DiKGoASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABJHUQNA4ihqAEgcRQ0AiaOoASBx/Ra17aG2f2n7Bdsv2f7bRgQDAJRluXHA7ySdFhE7bQ+R9LTt/4iItTlnAwAoQ1FHREjaWXk4pPITeYYCAOyWaYza9sG2N0jaJunRiHiuyjKtttttt3d2dtY5JgAMXpmKOiI+jojJksZKmmH7K1WWaYuIUkSUmpqa6hwTAAavmo76iIj/k7RK0pw8wgAAPi/LUR9Nto+sTB8m6XRJm3POBQCoyHLUxx9Ius32wSoX+70RsTLfWACAHlmO+nhR0pQGZAGQUfOSh4qOIEnacs3ZRUcYFDgzEQASR1EDQOIoagBIHEUNAImjqAEgcRQ1ACSOogaAxFHUAJC4LGcmAkCyBsPJP+xRA0DiKGoASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABJHUQNA4ihqAEhclruQf8n2k7Y32X7J9uJGBAMAlGW51ke3pL+OiOdtD5e0zvajEbEx52wAAGXYo46I30bE85Xp9yRtkvSHeQcDAJTVNEZtu1nSFEnP5ZIGAPA5mYva9hGS7pf0vYjYUWV+q+122+2dnZ31zAgAg1qmorY9ROWSviMiflZtmYhoi4hSRJSamprqmREABrUsR31Y0r9I2hQRP8o/EgCgtyx71C2SvinpNNsbKj9n5ZwLAFDR7+F5EfG0JDcgCwCgCs5MBIDEUdQAkDiKGgASR1EDQOIoagBIHEUNAImjqAEgcRQ1ACSOogaAxFHUAJA4ihoAEkdRA0DiKGoASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABKX5S7kS21vs/3rRgQCAHxWlj3qZZLm5JwDALAH/RZ1RDwl6X8akAUAUAVj1ACQuLoVte1W2+222zs7O+u1WgAY9OpW1BHRFhGliCg1NTXVa7UAMOgx9AEAictyeN5dkp6VNMF2h+1v5x8LANDjkP4WiIiFjQgCAKiOoQ8ASBxFDQCJo6gBIHEUNQAkjqIGgMRR1ACQOIoaABJHUQNA4ihqAEgcRQ0AiaOoASBxFDUAJI6iBoDEUdQAkDiKGgASR1EDQOIoagBIHEUNAImjqAEgcRQ1ACQuU1HbnmP7Zdu/sb0k71AAgN36LWrbB0u6WdI3JE2StND2pLyDAQDKsuxRz5D0m4h4NSI+lHS3pPn5xgIA9HBE7H0B+wJJcyLiLyqPvynpqxHxnT7LtUpqrTycIOnl+setyVGS3ik4QyrYFruxLXZjW+yWwrb4ckQ0VZtxSIYXu8pzn2v3iGiT1FZjsNzYbo+IUtE5UsC22I1tsRvbYrfUt0WWoY8OSV/q9XispDfziQMA6CtLUf9K0njbR9s+VNKFkh7INxYAoEe/Qx8R0W37O5J+LulgSUsj4qXck+2/ZIZhEsC22I1tsRvbYrekt0W/XyYCAIrFmYkAkDiKGgASR1EDQOIo6gHI9kTbX7d9RJ/n5xSVqSi2Z9ieXpmeZPv7ts8qOlfRbP9r0RlSYXtW5d/FmUVn2ZMB/2Wi7UUR8ZOiczSK7e9KukTSJkmTJS2OiH+vzHs+IqYWGK+hbP9Q5WvUHCLpUUlflbRK0umSfh4Rf1dcusax3fdwWkv6mqQnJCki5jU8VIFs/zIiZlSm/1Llz8tySWdKejAirikyXzWDoahfj4hxRedoFNv/JenkiNhpu1nSfZL+LSJutL0+IqYUm7BxKttisqTfk/SWpLERscP2YZKei4gTiszXKLafl7RR0q0qn1VsSXepfE6EIuI/i0vXeL0/B7Z/JemsiOi0fbiktRHxx8Um/Lwsp5Anz/aLe5ol6YuNzJKAgyNipyRFxBbbp0q6z/aXVf1yAANZd0R8LGmX7VciYockRcQHtj8pOFsjlSQtlnSlpMsiYoPtDwZbQfdykO2RKg/9OiI6JSki3rfdXWy06gZEUatcxn8i6X/7PG9JzzQ+TqHesj05IjZIUmXPeq6kpZKS21PI2Ye2h0XELknTep60PULSoCnqiPhE0j/a/mnl99saOJ/9fTFC0jqV+yFs/35EvFX5TifJnZmB8h9rpaQjesqpN9urGp6mWN+S9Jm9gojolvQt2/9cTKTCzI6I30mfllWPIZIuKiZScSKiQ9Kf2T5b0o6i8xQlIpr3MOsTSec1MEpmA36MGgAOdByeBwCJo6gBIHEUNQ5ItlfZrsuF3m2fantlZXpezw2cbZ/L/UGRAooag4LtTF+cR8QDvU54OFflGzoDhaKokTTbzbY3277N9ou277M9rM8yO3tNX2B7WWV6me0f2X5S0rWV08mfsb2+8ntClb93se0f254paZ6k621vsH1s5cSRnuXG216X1/sGehsoh+dhYJsg6dsRscb2Ukl/VcNr/0jS6RHxse0vqHzIXrft0yX9vaQ/rfaiiHimcur1yoi4T5Jsv9vrGPVFkpbt+1sCsqOocSB4IyLWVKZvl/TdGl7708rZiVL5RIfbbI9X+VTqITXmuFXSItvfl7RA0owaXw/sE4Y+cCDoe7D/3h4P7TPv/V7TV0t6MiK+IumcKsv2536VL/I0V9K6iNhe4+uBfUJR40AwzvbJlemFkp7uM/9t28fZPkh7P7NshKT/rkxfnOHvvidpeM+DiOhS+d6ht0gaNFdkRPEoahwINkm6qHLxrVEqF2VvS1S+jMATkn67l/VcJ+kfbK9R+UbN/blb0mWVLx+PrTx3h8p78L+oIT+wXziFHEmrXKp1ZWW4onC2/0bSiIi4qugsGDz4MhHIyPZyScdKOq3oLBhc2KMGgMQxRg0AiaOoASBxFDUAJI6iBoDEUdQAkDiKGgAS9/8oGEk2rAoOEwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df = get_distinct_values('plurality')\n", "df = df.sort_values('plurality')\n", "df.plot(x='plurality', y='num_babies', logy=True, kind='bar')\n", "df.plot(x='plurality', y='avg_wt', kind='bar')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df = get_distinct_values('gestation_weeks')\n", "df = df.sort_values('gestation_weeks')\n", "df.plot(x='gestation_weeks', y='num_babies', logy=True, kind='bar', color='royalblue')\n", "df.plot(x='gestation_weeks', y='avg_wt', kind='bar', color='royalblue')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All these factors seem to play a part in the baby's weight. Male babies are heavier on average than female babies. Teenaged and older moms tend to have lower-weight babies. Twins, triplets, etc. are lower weight than single births. Preemies weigh in lower as do babies born to single moms. In addition, it is important to check whether you have enough data (number of babies) for each input value. Otherwise, the model prediction against input values that doesn't have enough data may not be reliable.\n", "\n", "In the rest of this notebook, we will use machine learning to combine all of these factors to come up with a prediction of a baby's weight." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a ML dataset using Dataflow\n", "I'm going to use Cloud Dataflow to read in the BigQuery data, do some preprocessing, and write it out as CSV files.\n", "\n", "Instead of using Beam/Dataflow, I had three other options:\n", "\n", "1. Use Cloud Dataprep to visually author a Dataflow pipeline. Cloud Dataprep also allows me to explore the data, so we could have avoided much of the handcoding of Python/Seaborn calls above as well!\n", "2. Read from BigQuery directly using TensorFlow.\n", "3. Use the BigQuery console (http://bigquery.cloud.google.com) to run a Query and save the result as a CSV file. For larger datasets, you may have to select the option to \"allow large results\" and save the result into a CSV file on Google Cloud Storage.\n", "\n", "However, in this case, I want to do some preprocessing. I want to modify the data such that we can simulate what is known if no ultrasound has been performed. If I didn't need preprocessing, I could have used the web console. Also, I prefer to script it out rather than run queries on the user interface. Therefore, I am using Cloud Dataflow for the preprocessing." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:86: BeamDeprecationWarning: BigQuerySource is deprecated since 2.25.0. Use ReadFromBigQuery instead.\n", "WARNING:apache_beam.runners.interactive.interactive_environment:Dependencies required for Interactive Beam PCollection visualization are not available, please use: `pip install apache-beam[interactive]` to install necessary dependencies to enable all data visualization features.\n" ] }, { "data": { "application/javascript": [ "\n", " if (typeof window.interactive_beam_jquery == 'undefined') {\n", " var jqueryScript = document.createElement('script');\n", " jqueryScript.src = 'https://code.jquery.com/jquery-3.4.1.slim.min.js';\n", " jqueryScript.type = 'text/javascript';\n", " jqueryScript.onload = function() {\n", " var datatableScript = document.createElement('script');\n", " datatableScript.src = 'https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js';\n", " datatableScript.type = 'text/javascript';\n", " datatableScript.onload = function() {\n", " window.interactive_beam_jquery = jQuery.noConflict(true);\n", " window.interactive_beam_jquery(document).ready(function($){\n", " \n", " });\n", " }\n", " document.head.appendChild(datatableScript);\n", " };\n", " document.head.appendChild(jqueryScript);\n", " } else {\n", " window.interactive_beam_jquery(document).ready(function($){\n", " \n", " });\n", " }" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", " var import_html = () => {\n", " ['https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html'].forEach(href => {\n", " var link = document.createElement('link');\n", " link.rel = 'import'\n", " link.href = href;\n", " document.head.appendChild(link);\n", " });\n", " }\n", " if ('import' in document.createElement('link')) {\n", " import_html();\n", " } else {\n", " var webcomponentScript = document.createElement('script');\n", " webcomponentScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js';\n", " webcomponentScript.type = 'text/javascript';\n", " webcomponentScript.onload = function(){\n", " import_html();\n", " };\n", " document.head.appendChild(webcomponentScript);\n", " }" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.7/site-packages/apache_beam/io/gcp/bigquery.py:1971: BeamDeprecationWarning: options is deprecated since First stable release. References to .options will not be supported\n", " temp_location = pcoll.pipeline.options.view_as(\n", "WARNING:root:Make sure that locally built Python SDK docker image has Python 3.7 interpreter.\n", "WARNING:apache_beam.options.pipeline_options:Discarding invalid overrides: {'teardown_policy': 'TEARDOWN_ALWAYS', 'no_save_main_session': True}\n", "WARNING:apache_beam.options.pipeline_options:Discarding invalid overrides: {'teardown_policy': 'TEARDOWN_ALWAYS', 'no_save_main_session': True}\n" ] } ], "source": [ "import apache_beam as beam\n", "import datetime\n", "\n", "def to_csv(rowdict):\n", " # pull columns from BQ and create a line\n", " import hashlib\n", " import copy\n", " CSV_COLUMNS = 'weight_pounds,is_male,mother_age,plurality,gestation_weeks'.split(',')\n", " \n", " # create synthetic data where we assume that no ultrasound has been performed\n", " # and so we don't know sex of the baby. Let's assume that we can tell the difference\n", " # between single and multiple, but that the errors rates in determining exact number\n", " # is difficult in the absence of an ultrasound.\n", " no_ultrasound = copy.deepcopy(rowdict)\n", " w_ultrasound = copy.deepcopy(rowdict)\n", "\n", " no_ultrasound['is_male'] = 'Unknown'\n", " if rowdict['plurality'] > 1:\n", " no_ultrasound['plurality'] = 'Multiple(2+)'\n", " else:\n", " no_ultrasound['plurality'] = 'Single(1)'\n", " \n", " # Change the plurality column to strings\n", " w_ultrasound['plurality'] = \\\n", " ['Single(1)', 'Twins(2)', 'Triplets(3)', 'Quadruplets(4)', 'Quintuplets(5)'][rowdict['plurality']-1]\n", " \n", " # Write out two rows for each input row, one with ultrasound and one without\n", " for result in [no_ultrasound, w_ultrasound]:\n", " data = ','.join([str(result[k]) if k in result else 'None' for k in CSV_COLUMNS])\n", " key = hashlib.sha224(data.encode('utf-8')).hexdigest() # hash the columns to form a key\n", " yield str('{},{}'.format(data, key))\n", " \n", "def preprocess(in_test_mode):\n", " job_name = 'preprocess-babyweight-features' + '-' + datetime.datetime.now().strftime('%y%m%d-%H%M%S')\n", " \n", " if in_test_mode:\n", " OUTPUT_DIR = './preproc'\n", " else:\n", " OUTPUT_DIR = 'gs://{0}/babyweight/preproc/'.format(BUCKET)\n", " \n", " options = {\n", " 'staging_location': os.path.join(OUTPUT_DIR, 'tmp', 'staging'),\n", " 'temp_location': os.path.join(OUTPUT_DIR, 'tmp'),\n", " 'job_name': job_name,\n", " 'project': PROJECT,\n", " 'teardown_policy': 'TEARDOWN_ALWAYS',\n", " 'max_num_workers': 3, # CHANGE THIS IF YOU HAVE MORE QUOTA\n", " 'no_save_main_session': True\n", " }\n", " opts = beam.pipeline.PipelineOptions(flags=[], **options)\n", " if in_test_mode:\n", " RUNNER = 'DirectRunner'\n", " else:\n", " RUNNER = 'DataflowRunner'\n", " p = beam.Pipeline(RUNNER, options=opts)\n", " query = \"\"\"\n", "SELECT\n", " weight_pounds,\n", " is_male,\n", " mother_age,\n", " plurality,\n", " gestation_weeks,\n", " FARM_FINGERPRINT(CONCAT(CAST(YEAR AS STRING), CAST(month AS STRING))) AS hashmonth\n", "FROM\n", " publicdata.samples.natality\n", "WHERE year > 2000\n", "AND weight_pounds > 0\n", "AND mother_age > 0\n", "AND plurality > 0\n", "AND gestation_weeks > 0\n", "AND month > 0\n", " \"\"\"\n", " \n", " if in_test_mode:\n", " query = query + ' LIMIT 100' \n", " \n", " for step in ['train', 'eval']:\n", " if step == 'train':\n", " selquery = 'SELECT * FROM ({}) WHERE ABS(MOD(hashmonth, 4)) < 3'.format(query)\n", " else:\n", " selquery = 'SELECT * FROM ({}) WHERE ABS(MOD(hashmonth, 4)) = 3'.format(query)\n", "\n", " (p \n", " | '{}_read'.format(step) >> beam.io.Read(beam.io.BigQuerySource(query=selquery, use_standard_sql=True))\n", " | '{}_csv'.format(step) >> beam.FlatMap(to_csv)\n", " | '{}_out'.format(step) >> beam.io.Write(beam.io.WriteToText(os.path.join(OUTPUT_DIR, '{}.csv'.format(step))))\n", " )\n", " \n", " job = p.run()\n", " \n", "preprocess(in_test_mode=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that after you launch this, the actual processing is happening on the Cloud. Go to the GCP web console to the Dataflow section and monitor the running job. You'll see a job that's running. It took about **30 minutes** for me.\n", "\n", "Once the job has completed, run the cell below to check the location of the processed files." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gs://babyweight-keras-ml/babyweight/preproc/eval.csv-00000-of-00008\n", "gs://babyweight-keras-ml/babyweight/preproc/train.csv-00000-of-00009\n" ] } ], "source": [ "%%bash\n", "gsutil ls gs://${BUCKET}/babyweight/preproc/*-00000*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2: Developing a Machine Learning Model using TensorFlow and Cloud ML Engine" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a TensorFlow model using the Keras API\n", "\n", "First, write an read_dataset to create a generator object that reads the data." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "import shutil\n", "import numpy as np\n", "import tensorflow as tf\n", "from tensorflow.keras import layers, models" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "CSV_COLUMNS = 'weight_pounds,is_male,mother_age,plurality,gestation_weeks,key'.split(',')\n", "SELECT_COLUMNS = 'weight_pounds,is_male,mother_age,plurality,gestation_weeks'.split(',')\n", "LABEL_COLUMN = 'weight_pounds'\n", "\n", "def read_dataset(prefix, pattern, batch_size=512, eval=False):\n", " # use prefix to create filename\n", " filename = 'gs://{}/babyweight/preproc/{}*{}*'.format(BUCKET, prefix, pattern)\n", " if eval:\n", " dataset = tf.data.experimental.make_csv_dataset(\n", " filename, header=False, batch_size=batch_size,\n", " shuffle=False, num_epochs=1,\n", " column_names=CSV_COLUMNS, label_name=LABEL_COLUMN,\n", " select_columns=SELECT_COLUMNS\n", " )\n", " else:\n", " dataset = tf.data.experimental.make_csv_dataset(\n", " filename, header=False, batch_size=batch_size,\n", " shuffle=True, num_epochs=None,\n", " column_names=CSV_COLUMNS, label_name=LABEL_COLUMN,\n", " select_columns=SELECT_COLUMNS\n", " )\n", " return dataset " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, define the feature columns." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def get_wide_deep():\n", " # defin model inputs\n", " inputs = {}\n", " inputs['is_male'] = layers.Input(shape=(), name='is_male', dtype='string')\n", " inputs['plurality'] = layers.Input(shape=(), name='plurality', dtype='string')\n", " inputs['mother_age'] = layers.Input(shape=(), name='mother_age', dtype='float32')\n", " inputs['gestation_weeks'] = layers.Input(shape=(), name='gestation_weeks', dtype='float32')\n", " \n", " # define column types\n", " is_male = tf.feature_column.categorical_column_with_vocabulary_list(\n", " 'is_male', ['True', 'False', 'Unknown'])\n", " plurality = tf.feature_column.categorical_column_with_vocabulary_list(\n", " 'plurality', ['Single(1)', 'Twins(2)', 'Triplets(3)', 'Quadruplets(4)', 'Quintuplets(5)', 'Multiple(2+)']) \n", " mother_age = tf.feature_column.numeric_column('mother_age')\n", " gestation_weeks = tf.feature_column.numeric_column('gestation_weeks')\n", "\n", " # discretize\n", " age_buckets = tf.feature_column.bucketized_column(\n", " mother_age, boundaries=np.arange(15, 45, 1).tolist())\n", " gestation_buckets = tf.feature_column.bucketized_column(\n", " gestation_weeks, boundaries=np.arange(17, 47, 1).tolist())\n", "\n", " # sparse columns are wide \n", " wide = [tf.feature_column.indicator_column(is_male),\n", " tf.feature_column.indicator_column(plurality),\n", " age_buckets,\n", " gestation_buckets]\n", " \n", " # feature cross all the wide columns and embed into a lower dimension\n", " crossed = tf.feature_column.crossed_column(\n", " [is_male, plurality, age_buckets, gestation_buckets], hash_bucket_size=20000)\n", " embed = tf.feature_column.embedding_column(crossed, 3)\n", " \n", " # continuous columns are deep\n", " deep = [mother_age,\n", " gestation_weeks,\n", " embed]\n", "\n", " return wide, deep, inputs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the wide and deep model using the Keras API." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def create_keras_model():\n", " wide, deep, inputs = get_wide_deep()\n", " feature_layer_wide = layers.DenseFeatures(wide, name='wide_features')\n", " feature_layer_deep = layers.DenseFeatures(deep, name='deep_features')\n", "\n", " wide_model = feature_layer_wide(inputs)\n", " \n", " deep_model = layers.Dense(64, activation='relu', name='DNN_layer1')(feature_layer_deep(inputs))\n", " deep_model = layers.Dense(32, activation='relu', name='DNN_layer2')(deep_model)\n", "\n", " wide_deep_model = layers.Dense(1, name='weight')(layers.concatenate([wide_model, deep_model]))\n", " model = models.Model(inputs=inputs, outputs=wide_deep_model)\n", "\n", " # Compile Keras model\n", " model.compile(loss='mse', optimizer=tf.keras.optimizers.Adam(lr=0.0001))\n", " return model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, train the model locally on the notebook environment." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "195/195 [==============================] - 3s 14ms/step - loss: 7.1371 - val_loss: 1.6387\n", "Epoch 2/10\n", "195/195 [==============================] - 3s 15ms/step - loss: 1.4740 - val_loss: 1.4089\n", "Epoch 3/10\n", "195/195 [==============================] - 2s 12ms/step - loss: 1.3739 - val_loss: 1.4015\n", "Epoch 4/10\n", "195/195 [==============================] - 3s 15ms/step - loss: 1.1895 - val_loss: 1.5342\n", "Epoch 5/10\n", "195/195 [==============================] - 3s 13ms/step - loss: 1.1764 - val_loss: 2.1909\n", "Epoch 6/10\n", "195/195 [==============================] - 3s 14ms/step - loss: 1.1800 - val_loss: 2.8775\n", "Epoch 7/10\n", "195/195 [==============================] - 2s 10ms/step - loss: 1.1675 - val_loss: 4.0380\n", "Epoch 8/10\n", "195/195 [==============================] - 3s 14ms/step - loss: 1.1416 - val_loss: 3.9998\n", "Epoch 9/10\n", "195/195 [==============================] - 2s 10ms/step - loss: 1.1240 - val_loss: 4.7713\n", "Epoch 10/10\n", "195/195 [==============================] - 2s 8ms/step - loss: 1.1160 - val_loss: 5.5051\n" ] } ], "source": [ "keras_model = create_keras_model()\n", "\n", "PATTERN = \"00000-of-\" # process only one of the shards, for testing purposes\n", "BATCH_SIZE = 512\n", "NUM_TRAIN_EXAMPLES = 1000000\n", "NUM_EVAL_EXAMPLES = 10000\n", "NUM_EVALS = 10\n", "\n", "training_dataset = read_dataset('train', PATTERN, BATCH_SIZE)\n", "validation_dataset = read_dataset('eval', PATTERN, BATCH_SIZE).take(NUM_EVAL_EXAMPLES//BATCH_SIZE)\n", "\n", "history = keras_model.fit(\n", " training_dataset,\n", " steps_per_epoch=NUM_TRAIN_EXAMPLES//(BATCH_SIZE * NUM_EVALS),\n", " epochs=NUM_EVALS,\n", " validation_data=validation_dataset\n", ")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model\"\n", "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "gestation_weeks (InputLayer) [(None,)] 0 \n", "__________________________________________________________________________________________________\n", "is_male (InputLayer) [(None,)] 0 \n", "__________________________________________________________________________________________________\n", "mother_age (InputLayer) [(None,)] 0 \n", "__________________________________________________________________________________________________\n", "plurality (InputLayer) [(None,)] 0 \n", "__________________________________________________________________________________________________\n", "deep_features (DenseFeatures) (None, 5) 60000 gestation_weeks[0][0] \n", " is_male[0][0] \n", " mother_age[0][0] \n", " plurality[0][0] \n", "__________________________________________________________________________________________________\n", "DNN_layer1 (Dense) (None, 64) 384 deep_features[0][0] \n", "__________________________________________________________________________________________________\n", "wide_features (DenseFeatures) (None, 71) 0 gestation_weeks[0][0] \n", " is_male[0][0] \n", " mother_age[0][0] \n", " plurality[0][0] \n", "__________________________________________________________________________________________________\n", "DNN_layer2 (Dense) (None, 32) 2080 DNN_layer1[0][0] \n", "__________________________________________________________________________________________________\n", "concatenate (Concatenate) (None, 103) 0 wide_features[0][0] \n", " DNN_layer2[0][0] \n", "__________________________________________________________________________________________________\n", "weight (Dense) (None, 1) 104 concatenate[0][0] \n", "==================================================================================================\n", "Total params: 62,568\n", "Trainable params: 62,568\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "keras_model.summary()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABXMAAAEYCAYAAAAeUGWJAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeVhV1foH8O/hAIKHSWUQw1TS1Kw0TYYgwwQxchbEBGfBtAzHtMGytNSbN/XeSk2tVNAEvZmllpy0DBWzUnHsOnQtARWUGQE5vL8/fNg/UYYDHDgc/H6ehyf2tNa719p7m69rr60SEQERERERERERERERNWRxZsaOgIiIiIiIiIiIiIiqxmQuERERERERERERkQlgMpeIiIiIiIiIiIjIBDCZS0RERERERERERGQCzA1d4KFDh/Dhhx8auliiRsHb2xszZswwdhhERERERERERGSCDD4y9++//8bWrVsNXSyRyUtMTMShQ4eMHQYREREREREREZkog4/MLRUXF1dXRROZpJCQEGOHQEREREREREREJoxz5hIRERERERERERGZACZziYiIiIiIiIiIiEwAk7lEREREREREREREJoDJXCIiIiIiIiIiIiITwGQuERERERERERERkQlgMpeIiIiIiIiIiIjIBDCZS0RERERERERERGQCmMwlIiIiIiIiIiIiMgFM5hIRERERERERERGZACZziYiIiIiIiIiIiEwAk7lEREREREREREREJoDJXCIiIiIiIiIiIiITwGQuERERERERERERkQm4r5O5ubm5xg6BiIiIiIiIiIiISC/3ZTI3JiYGgYGBePjhh40ditFptVpMnDgRKpUKKpUKgYGBiImJMXZY2Lp1K7y8vJS4oqKicOzYMWOHRUREREREREREZDQqERFDFhgbG4vQ0FAYuNhaS01NhaurKwBAp9PB398fJ0+eRFpampEjaxicnZ2RlpaGy5cv44EHHjBKDHf2EQAkJibC29sb3bp1w9GjR40SkyGFhIQAAOLi4owcCRERERERERERmaC4+2JkbkZGBsLDw5VltVoNNzc3I0bU8NjZ2QEA7O3tjVL/3X0EAA4ODgCMFxMREREREREREVFD0uiTuUVFRRg5ciQuXrxo7FAaNJVKVea/9amiPjJmTERERERERERERA2N0ZO5p06dwuuvv46OHTvir7/+wrx589CmTRt06dIF+/btQ0FBAaZPn46HHnoIrVu3xnfffXdPGdu2bcPLL7+MWbNm4bnnnsObb76JwsJCALdfaT916hTS09MRERGB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SuXl5eHQoUNKcvfo0aNQqVTo1q1bmSkZHnrooXuOtbCwgI2NDdasWYNhw4YZIXoiIiIiIiIionrHZC5RY6LT6TB06FAcPnwYv/zyCx588EFjh6S3a9euYe/evdi7dy9++OEHXLx4Ec2aNUN2djZ0Ot09+5uZmaGkpATDhg3D6tWr0aJFCyNETURERERERERUb5jMJWpscnJy4OPjAzMzMxw4cAAajcbYIdXIn3/+iYiICPz0008oLi6ucD8LCwvY2tpi3bp1GDx4cD1GSERERERERERUr+LMjB0BERmWra0tduzYgeTkZEyePNnY4dRYu3btkJSUVGkiFwBu3bqFzMxMDBkyBMHBwbhx40Y9RUhEREREREREVL8axMjcQ4cO4e+//zZ2GETVNnz4cGOHUKHdu3ejf//+WLNmDcaPH2/scKp9nycnJ2PGjBnVrsfe3h4vvfQSunbtWu1jiah8Tz31FNzc3IwdBhERERER0f2uYUyzEBISgq1btxo7DKJqawC3T6Xmzp2Ljz76CCdOnEC7du2MGgvvcyLTtWXLlgb9j1dERERERET3iYaTzAWAuLg4I0dCpJ/Y2FiEhoY2+GRuUVERunfvDhcXF2i1WqhUKqPFUt37fOjQofjqq69gbW0NBwcHtGzZEi4uLnB2doajoyOcnZ3h5OQER0dH5cfZ2RkODg51eRpE9x2VSsVkLhERERERUcMQZ27sCIio7lhaWmLdunXw8fHBxo0bMXr0aGOHpLdVq1Zh06ZNsLKyMnYoREREREREREQNAj+ARtTIeXp6YsqUKZgxYwauXbtm7HD05uzszEQuEREREREREdEdmMwlug+899570Gg0NfqgGBERERERERERNQxM5hLdB2xtbbFixQps2rQJv/32m7HDISIiIiIiIiKiGmAyl+g+MXjwYHh6emLevHnGDoWIiIiIiIiIiGqAyVyi+8iCBQuwe/du/PTTT8YOhYiIiIiIiIiIqonJXKL7iL+/P5599lm8+eabxg6FiIiIiIiIiIiqiclcovvMwoULkZCQgB9++MHYoRARERERERERUTUwmUt0n/H29oafnx+WL19u7FCIiIiIiIiIiKgamMwlug+98sor2LlzJ/744w9jh0JERERERERERHpiMpfoPjRw4EC0a9cOn3zyibFDISIiIiIiIiIiPTGZS3QfUqvVmDx5Mj7/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\n", "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf.keras.utils.plot_model(\n", " model=keras_model, to_file=\"dnn_model.png\", show_shapes=False, rankdir=\"LR\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can export the trainined model in the saved_model format with the following command." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:tensorflow:From /opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py:1817: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "If using Keras pass *_constraint arguments to layers.\n" ] } ], "source": [ "import datetime\n", "ts = datetime.datetime.now().strftime('%Y%m%d%H%M%S')\n", "export_path = \"gs://{}/babyweight/trained_model/export/{}\".format(BUCKET, ts)\n", "keras_model.save(export_path, save_format=\"tf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To make predictions locally with the trained model, you need a preprocess function. As shown in the later section, when you deploy it to the AI Platform using the saved_model, the preprocessing is automatically added." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "def preprocess(req):\n", " data = {}\n", " for instance in req['instances']:\n", " for key, value in instance.items():\n", " if not key in data.keys():\n", " data[key] = []\n", " data[key].append((value,))\n", " return tf.data.Dataset.from_tensor_slices(data)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[5.602193],\n", " [6.725526]], dtype=float32)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "request_data = {'instances':\n", " [\n", " {\n", " 'is_male': 'True',\n", " 'mother_age': 26.0,\n", " 'plurality': 'Single(1)',\n", " 'gestation_weeks': 39\n", " },\n", " {\n", " 'is_male': 'False',\n", " 'mother_age': 29.0,\n", " 'plurality': 'Single(1)',\n", " 'gestation_weeks': 38\n", " },\n", " ]\n", "}\n", "\n", "keras_model.predict(preprocess(request_data))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have the TensorFlow code working on a subset of the data (in the code above, I was reading only the 00000-of-x file), we can package the TensorFlow code up as a Python module and train it on Cloud AI Platform." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 12\n", "-rw-r--r-- 1 jupyter jupyter 0 Nov 23 06:08 __init__.py\n", "-rw-r--r-- 1 jupyter jupyter 4342 Nov 23 06:08 model.py\n", "-rw-r--r-- 1 jupyter jupyter 3860 Nov 23 06:08 task.py\n" ] } ], "source": [ "%%bash\n", "cd $NOTEBOOK_DIR\n", "ls -l trainer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After moving the code to a package, make sure it works standalone. (Note the --num-train-example and --num-eval-examples lines so that I am not trying to boil the ocean on my laptop). Even then, this takes about **a minute** in which you won't see any output..." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/4\n", "19/19 [==============================] - 2s 83ms/step - loss: 9.2353 - val_loss: 5.2838\n", "Epoch 2/4\n", "19/19 [==============================] - 0s 22ms/step - loss: 2.1148 - val_loss: 2.1172\n", "Epoch 3/4\n", "19/19 [==============================] - 0s 23ms/step - loss: 1.3234 - val_loss: 2.0525\n", "Epoch 4/4\n", "19/19 [==============================] - 0s 21ms/step - loss: 1.1866 - val_loss: 2.3361\n", "Model exported to: local-training-output/export/20201123064458\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "2020-11-23 06:44:58.444851: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/nccl2/lib:/usr/local/cuda/extras/CUPTI/lib64\n", "2020-11-23 06:44:58.445042: E tensorflow/stream_executor/cuda/cuda_driver.cc:313] failed call to cuInit: UNKNOWN ERROR (303)\n", "2020-11-23 06:44:58.445110: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (tensorflow-2-3-20201123-150230): /proc/driver/nvidia/version does not exist\n", "2020-11-23 06:44:58.445498: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA\n", "2020-11-23 06:44:58.454896: I tensorflow/core/platform/profile_utils/cpu_utils.cc:102] CPU Frequency: 2200195000 Hz\n", "2020-11-23 06:44:58.455422: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7fdd58000b20 initialized for platform Host (this does not guarantee that XLA will be used). Devices:\n", "2020-11-23 06:44:58.455465: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version\n", "2020-11-23 06:44:59.520836: I tensorflow/core/profiler/lib/profiler_session.cc:159] Profiler session started.\n", "2020-11-23 06:45:01.592319: I tensorflow/core/profiler/lib/profiler_session.cc:159] Profiler session started.\n", "2020-11-23 06:45:01.605299: I tensorflow/core/profiler/rpc/client/save_profile.cc:168] Creating directory: local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01\n", "2020-11-23 06:45:01.608469: I tensorflow/core/profiler/rpc/client/save_profile.cc:174] Dumped gzipped tool data for trace.json.gz to local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01/tensorflow-2-3-20201123-150230.trace.json.gz\n", "2020-11-23 06:45:01.610257: I tensorflow/core/profiler/utils/event_span.cc:288] Generation of step-events took 0.022 ms\n", "\n", "2020-11-23 06:45:01.612278: I tensorflow/python/profiler/internal/profiler_wrapper.cc:87] Creating directory: local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01Dumped tool data for overview_page.pb to local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01/tensorflow-2-3-20201123-150230.overview_page.pb\n", "Dumped tool data for input_pipeline.pb to local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01/tensorflow-2-3-20201123-150230.input_pipeline.pb\n", "Dumped tool data for tensorflow_stats.pb to local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01/tensorflow-2-3-20201123-150230.tensorflow_stats.pb\n", "Dumped tool data for kernel_stats.pb to local-training-output/tensorboard/20201123064458/train/plugins/profile/2020_11_23_06_45_01/tensorflow-2-3-20201123-150230.kernel_stats.pb\n", "\n", "2020-11-23 06:45:05.158985: W tensorflow/python/util/util.cc:329] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.\n", "WARNING:tensorflow:From /opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py:1817: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "If using Keras pass *_constraint arguments to layers.\n", "INFO:tensorflow:Assets written to: local-training-output/export/20201123064458/assets\n" ] } ], "source": [ "%%bash\n", "cd $NOTEBOOK_DIR\n", "gcloud ai-platform local train \\\n", " --package-path trainer \\\n", " --module-name trainer.task \\\n", " --job-dir local-training-output \\\n", " -- \\\n", " --bucket $BUCKET \\\n", " --num-train-examples 10000 \\\n", " --num-eval-examples 1000 \\\n", " --num-evals 4 \\\n", " --learning-rate 0.001" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the code works in standalone mode, you can run it on Cloud AI Platform. Because this is on the entire dataset, it will take a while. The training run took about **60 minutes** for me. You can monitor the job from the GCP console in the AI Platform section." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "jobId: babyweight_201123_075703\n", "state: QUEUED\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Job [babyweight_201123_075703] submitted successfully.\n", "Your job is still active. You may view the status of your job with the command\n", "\n", " $ gcloud ai-platform jobs describe babyweight_201123_075703\n", "\n", "or continue streaming the logs with the command\n", "\n", " $ gcloud ai-platform jobs stream-logs babyweight_201123_075703\n" ] } ], "source": [ "%%bash\n", "JOB_NAME=babyweight_$(date -u +%y%m%d_%H%M%S)\n", "JOB_DIR=gs://${BUCKET}/babyweight/trained_model\n", "\n", "cd $NOTEBOOK_DIR\n", "gcloud ai-platform jobs submit training $JOB_NAME \\\n", " --job-dir $JOB_DIR \\\n", " --package-path trainer/ \\\n", " --module-name trainer.task \\\n", " --region $REGION \\\n", " --python-version 3.7 \\\n", " --runtime-version 2.2 \\\n", " --scale-tier basic-gpu \\\n", " -- \\\n", " --bucket $BUCKET \\\n", " --num-train-examples 60000000 \\\n", " --num-eval-examples 50000 \\\n", " --num-evals 100 \\\n", " --learning-rate 0.0001" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Training logs are stored in the following location of the GCS bucket." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gs://babyweight-keras-ml/babyweight/trained_model/tensorboard/20201123080216/\n" ] } ], "source": [ "%%bash\n", "gsutil ls gs://${BUCKET}/babyweight/trained_model/tensorboard/ | tail -1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can launch the TensorBoard with the followind command on the Cloud Shell. Use the web preview with port 6006 to access it.\n", "\n", "```\n", "tensorboard --logdir [GCS path]\n", "```\n", "\n", "The following image is an example graph for MSE. The final MSE for the eval data is about 1.6, that is, RMSE=1.2lbs" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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ZjpSREY+CjwveDp4bXBtZXRhPgpKBjwqAABAAElEQVR4Aey9CZwcV3XvfzX7PqNtZI0lS5ZkIy9CsowVwAbZsR+PBAM2MeaFGGyHAEk+CcghkLzkJYiEPD5ZkQN55EEIEltYzB95Ywn2sxS8EDuWR7YsyYukGcszI408mn2f0fzr3OpfT3VNVXdVd1V1dffvfj6arrp11++tavWpc+45i+aMpJhIgARIgARIgARIgARIgARIgARIIGQCZSG3z+ZJgARIgARIgARIgARIgARIgARIQBOgAMobgQRIgARIgARIgARIgARIgARIIBICFEAjwcxOSIAESIAESIAESIAESIAESIAEKIDyHiABEiABEiABEiABEiABEiABEoiEAAXQSDCzExIgARIgARIgARIgARIgARIgAQqgvAdIgARIgARIgARIgARIgARIgAQiIUABNBLM7IQESIAESIAESIAESIAESIAESIACKO8BEiABEiABEiABEiABEiABEiCBSAhQAI0EMzshARIgARIgARIgARIgARIgARKgAMp7gARIgARIgARIgARIgARIgARIIBICsRdAd+/erf7iL/7CN4z77rtP3XXXXb7rsQIJkAAJkAAJkAAJkAAJkAAJkEA4BGIvgD755JPqxz/+se/ZHzp0SH3729/2XY8VSIAESIAESIAESIAESIAESIAEwiEQewE0nGmzVRIgARIgARIgARIgARIgARIggagJeBZAx8fH1R/+4R+q1atXq/Xr16vPfvazamZmRo9XTGTf9773qTvvvFM1NTWpyy67TH3nO99Jmcs//dM/qTe96U36+k033aSOHz+evD43N6c+97nPqSuvvFJfl7Z6enqS18fGxnTfK1asUG9961vV3r17k9e8Hkgbf/AHf6DHLnP4/d//fTU6Opqs/txzz6mPfOQjSvp417vepe65557ktTNnzqg//dM/1XW3bdum/v7v/15NT08nr/OABEiABEiABEiABEiABEiABEggMwHPAuhHP/pR9Y1vfEN94hOfUO9973vVn/3Zn6l/+Zd/0T2cOnVKfe9731Ozs7NaOBPB9Nd//dfVgQMH9PV//ud/Vr/3e7+nNmzYoP7qr/5KPfHEE1oYHRkZ0df/+q//Wv3Jn/yJeuMb36j+9m//Vj3++OMp+z6fffZZdfjwYX2tpqZG3XzzzWpqairz7BIlRMAV4fjzn/+8+o3f+A3974tf/KIeIxr50Ic+pI4ePaokf+nSpXqOnZ2d+vIf//Ef67nu3LlT9y2C+A9+8ANU5ScJkAAJkAAJkAAJkAAJkAAJkIAXAoZwljGdOHFizmhrbs+ePcmy73znO+e2bt2qz3/nd35n7uKLL54zBFB93t/fr8vv2LFDn7e2ts69//3vT9Y1tI36+pe+9CWd19jYOCdtIBnC7JzkDQwM6PxVq1bNTUxM6MsHDx7Udffv34/ijp+GoDsn/Up66aWXdJ0vf/nLybLSt8xJxtLV1aWPDUFZX5+cnJz71Kc+NYc+pP9bb701WdcQUue++tWvJs95QAIkQAIkQAIkQAIkQAIkQAIkkJlAhRchtb29XRcTpz4PPvigPn7hhRdSzGSXLFmiyspMhWpLS4vWZhqCn+ru7la9vb3ql3/5l5NdiYmuIRyq559/Xp08eVINDw+r7du3J6+LhlX+IRkCoKqurtanF1xwgf4Us1iv6ZlnntFFxXwX6YYbbtCHR44c0X39yq/8ivrt3/5tdf/996tbbrlFm9yKObGkj33sY8oQSNXLL7+staaGMKowDl2Af0iABEiABEiABEiABEiABEiABDIS8GSCe/bsWd2Q7P1ct26d/vee97xH76N066GyslJVVVUl91kuXrw4WXTRokX6mpjRGppNnQ9hL1kowAOY+oppLZKMTRL2sd57773q+9//vqqvr9fmuhdddJEWOKXMJz/5SfXoo4+qN7/5zdo0eM2aNVpQlWtMJEACJEACJEACJEACJEACJEAC3gh4EkBF6JR03XXXaWdB4jBI9nJ+5jOfSfYi+z+RRKj8+c9/rkTLCE3hI488gstK9la++uqr2umQOASS9B//8R/J66JdlT2mhilvMi+XA9l7Kmnfvn36U/7I+CRt3rxZa2J37dql3v72t6vvfve7yjDJ1Vrbb33rW2pwcFDvPRUN7xe+8AUlmlfD9FjJvlUmEiABEiABEiABEiABEiABEiAB7wQ8meCK5s/Y46nNUqXpSy65RAtlInSKYyJJTz31lDL2WGrTW3H2I0nMbsV0VkxYv/a1r6l3vOMdSjSL4szH2OOpBT5xKvSbv/mbSrzkSh+vf/3rtcfbV155JcURkW4wyz/ifVfa/cu//Evdh2GZrP7mb/5Gj1X6FFNhMbEVc2DxjitmuZKWL1+ux/l3f/d36kc/+pH6h3/4B3Xu3DktnEqbTCRAAiRAAiRAAiRAAiRAAiRAAt4JeBJAxVz1vvvuU+IpFnszr7rqKvVv//ZvyZ5kT6cIkeItV5IImRs3btTHoi2VkCeyz1KSaBB/8pOfJLWjIuDJPlARRCVJ2z/96U+VmOraE/LkU7SoMOG1lrOb81ZUVKgf/vCH6o477tAaTykrY9m9e7eSayJQw8OvaDllLuK1V8KyyL5WGettt92mxy11f+3Xfk17+5VjJhIgARIgARIgARIgARIgARIgAW8EFomfIm9FzVKyn1KEP9krifS7v/u7Shz9SHgVMZutq6tLOg1CGfmUPZ8ST7S5udmanTwWYdLwQOt6PVkwcSBayF/84hf2bCXjEWHYKcn4y8vLVW1trdNl1dfXp8TcFoKutZAIySKMwyGS9RqPSYAESIAESIAESIAESIAESIAE0hPwpAG1NtHQ0GA9XXBsdTZkvyjCG5z/2K/JuZjjyj+vSfaNikmsPYmA6ZYyjd/qqMjehpgNM5EACZAACZAACZAACZAACZAACWRHwLcA6tTNypUrtQmt07Uw88TTLhMJkAAJkAAJkAAJkAAJkAAJkEBhEPBtglsY0+IoSYAESIAESIAESIAESIAESIAE4kbAUxiWuA2a4yEBEiABEiABEiABEiABEiABEig8AhRAC2/NOGISIAESIAESIAESIAESIAESKEgCFEALctk4aBIgARIgARIgARIgARIgARIoPAIUQAtvzThiEiABEiABEiABEiABEiABEihIAhRAC3LZOGgSIAESIAESIAESIAESIAESKDwCFEALb804YhIgARIgARIgARIgARIgARIoSAIUQAty2ThoEiABEiABEiABEiABEiABEig8AhRAC2/NOGISIAESIAESIAESIAESIAESKEgCFXEYdXd394JhlJVRNl4AhRkkQAIkQAIkQAIkQAIkQAIkEEMC5513nqdRxVLK6+zsVEeOHPE0gVIt9NJLL6n77rtPTU1NeUIwMnVOPds7ro71T3oqv+1rR9TKuw+qnxwb9FTeqZD0JX1K3+/5wcs5t+fUR6a8Y8eOqclJb3PO1FaxXcf6HH7llNr/Qrfne6PYOHiZj9xDci8xpSfA5y09H7l65swZ/S9zydItwefN29rzecvMic9bZkZ83jIzkhJ83jJzkuft1KlTmQsaJWKh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7MeReYFlxs0fj9zHrZwSoACaU5xMjARIgARIgARIgARIgARIoCQI3PAhkcveJvLay2phpmbi0HxiyBk6iRnyRoACaN7QMmESIAESIAESIAESIAESIIFAE4AzQCwMBSOggyAYSIAESIAESIAESIAESIAESIAESCD/BCiA5p8xr0ACJEACJEACJEACJEACJEACJKAEKIDyMSABEiABEiABEiABEiABEiABEigIAQqgBcHMi5AACZAACZAACZAACZAACZAACVAA5TNAAiRAAiRAAiRAAiRAAiRAAiRQEAIUQAuCmRchARIgARIgARIgARIgARIgARKgAMpngARIgARIgARIgARIgARIgARIoCAEKIAWBDMvQgIkQAIkQAIkQAIkQAIkQAIkQAGUzwAJkAAJkAAJkAAJkAAJkAAJkEBBCFAALQhmXoQESIAESIAESIAESIAESIAESIACKJ8BEiABEiABEiABEiABEiABEiCBghCgAFoQzLwICZAACZAACZAACZAACZAACZBAXgXQnp4T8sjDG2T7tudlcnKStEmABEiABEiABEiABEiABEiABCqYQN4E0J07d8vPf/6IXHrpRdLQ2CB33HE3hdAKftB46yRAAiRAAiRAAiRAAiRAAiRQky8ET296Rj78kQ+45Ftmt8jMujrZuHGTvOlNV+XrkkyXBEiABEiABEiABEiABEiABEggwATyogEdHh6RWbOaI2572fIl8vr+roh93CABEiABEiABEiABEiABEiABEqgcAnnRgB4/flzmL5h/CsUZ1bHl3WPHjkXEHR4els7OTulru23pAAAYsklEQVTqosAaAca30dfX57Yee+wxmTEjNldf9Ipd7e/vlz179kh1dXXFMkh24yMjIy5KfX19sqgVexxj2IeGhtx7qWIhpHDjrG/JIbG+JWfE+pacEWKwviXnxPqWnBHrW3JGiMH6lpwT6tsb3/jG5BE1Rl4E0JqaGpkYH08pA4g0ODgYEXdcz0VjD/8MsQkYm+7ubqmqqoodiXvdM4QKQUbxHwZzEDYwMBA/UoUfmZqakomJCRkdHa1wEolvH+8l1rfEjFjfEvPBUda35IwQg/UtOSfWt+SMWN+SM0IM1rfknKy+JY+ZJwF07tw5cujwkYjr4wE/OXkyYp9tLFu2zFbdf29vr6xbt07OO++8iP3cmCawfft22bx5s9x0001CzdU0l+i1nTt3yvLly8koGoxv+9ChQ26rvb3dt5erfgIQqmCVsXr1av9urkcRYH2LAhJjk/UtBpSoXaxvUUDibLK+xQHj28365oMRZ5X1LQ6YqN2sb1FAYmxafYtx6JRdebHdhAZ0bHRMxsbGwhd86qlfy0Xrzg9vc4UESIAESIAESIAESIAESIAESKCyCOTFBBcIb7p5vdx9972ydOlitZsecF5wr7zydyqLLu+WBEiABEiABEiABEiABEiABEggTCBvAii84H70o3/khM+mpkY6ygkj5woJkAAJkAAJkAAJkAAJkAAJVCaBvAmghjN6Ohbbz38SIAESIAESIAESIAESIAESIIHKIpCXMaCVhZB3SwIkQAIkQAIkQAIkQAIkQAIkkAoBCqCpUGIcEiABEiABEiABEiABEiABEiCBrAlQAM0aIRMgARIgARIgARIgARIgARIgARJIhQAF0FQoMQ4JkAAJkAAJkAAJkAAJkAAJkEDWBCiAZo2QCZAACZAACZAACZAACZAACZAACaRCgAJoKpQYhwRIgARIgARIgARIgARIgARIIGsCFECzRsgESIAESIAESIAESIAESIAESIAEUiFAATQVSoxDAiRAAiRAAiRAAiRAAiRAAiSQNQEKoFkjZAIkQAIkQAIkQAIkQAIkQAIkQAKpEKAAmgolxiEBEiABEiABEiABEiABEiABEsiaAAXQrBEyARIgARIgARIgARIgARIgARIggVQIUABNhRLjkAAJkAAJkAAJkAAJkAAJkAAJZE2AAmjWCJkACZAACZAACZAACZAACZAACZBAKgQogKZCiXFIgARIgARIgARIgARIgARIgASyJkABNGuETIAESIAESIAESIAESIAESIAESCAVAhRAU6HEOCRAAiRAAiRAAiRAAiRAAiRAAlkToACaNUImQAIkQAIkQAIkQAIkQAIkQAIkkAoBCqCpUGIcEiABEiABEiABEiABEiABEiCBrAlQAM0aIRMgARIgARIgARIgARIgARIgARJIhQAF0FQoMQ4JkAAJkAAJkAAJkAAJkAAJkEDWBCiAZo2QCZAACZAACZAACZAACZAACZAACaRCgAJoKpQYhwRIgARIgARIgARIgARIgARIIGsCFECzRsgESIAESIAESIAESIAESIAESIAEUiFAATQVSoxDAiRAAiRAAiRAAiRAAiRA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ARIgARIgARIggcAQSFkARY57enqkr6+vIJlvaWmRtra2glwrk4ts6Jpw4zr3DZzM5PRTzoHwCTPdazpSUkqfcj53kAAJkAAJkAAJkAAJkAAJkEDQCaQlgOJmDh48mHePuPB8u2jRoqCzY/5IgARIgARIgARIgARIgARIgATSIJDSPKD+9ObNm5fXcZkY84lrMJAACZAACZAACZAACZAACZAACZQXgbQFUIzJXLBgQV6EUAifSDvZuM/yKgLeDQmQAAmQAAmQAAmQAAmQAAlUBoG0TXANC5wSHTt2LGfmuDC7heaTwqcR5j8JkAAJkAAJkAAJkAAJkAAJlBeBjAVQw5ALx0RBdzhk98p/EiABEiABEiABEiABEiABEiCBzAlkLYDi0tCGwjtuuvOEYp5PCJ/UemZegDyTBEiABEiABEiABEiABEiABEqFQE4EULvZkydPyvDwsIyMjDjT3ImJCcE+BIzvrKmpEZja1tfXS0NDQ17GkVpe+E8CJEACJEACJEACJEACJEACJBAsAjkVQIN1a8wNCZAACZAACZAACZAACZAACZBAkAik7QU3SJlnXkiABEiABEiABEiABEiABEiABEqHAAXQ0ikr5pQESIAESIAESIAESIAESIAESpoABdCSLj5mngRIgARIgARIgARIgARIgARKhwAF0NIpK+aUBEiABEiABEiABEiABEiABEqaAAXQki4+Zp4ESIAESIAESIAESIAESIAESocABdDSKSvmlARIgARIgARIgARIgARIgARKmgAF0JIuPmaeBEiABEiABEiABEiABEiABEqHAAXQ0ikr5pQESIAESIAESIAESIAESIAESprA/wOHtdeeG606VQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 48, "metadata": { "image/png": { "width": 600 } }, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(filename='{}/tensorboard.png'.format(NOTEBOOK_DIR), width=600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Deploying the trained model\n", "\n", "Deploying the trained model to act as a REST web service is a simple gcloud call." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gs://babyweight-keras-ml/babyweight/trained_model/export/20201123080216/\n" ] } ], "source": [ "%%bash\n", "gsutil ls gs://${BUCKET}/babyweight/trained_model/export/ | tail -1" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deploying babyweight v1 from gs://babyweight-keras-ml/babyweight/trained_model/export/20201123080216/ ... this will take a few minutes\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Using endpoint [https://ml.googleapis.com/]\n", "Created ml engine model [projects/babyweight-keras/models/babyweight].\n", "Using endpoint [https://ml.googleapis.com/]\n", "Creating version (this might take a few minutes)......\n", "............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done.\n" ] } ], "source": [ "%%bash\n", "MODEL_NAME=\"babyweight\"\n", "MODEL_VERSION=\"v1\"\n", "MODEL_LOCATION=$(gsutil ls gs://${BUCKET}/babyweight/trained_model/export/ | tail -1)\n", "echo \"Deploying $MODEL_NAME $MODEL_VERSION from $MODEL_LOCATION ... this will take a few minutes\"\n", "#gcloud ml-engine versions delete ${MODEL_VERSION} --model ${MODEL_NAME}\n", "#gcloud ml-engine models delete ${MODEL_NAME}\n", "gcloud ai-platform models create ${MODEL_NAME} --regions $REGION\n", "gcloud ai-platform versions create ${MODEL_VERSION} --model ${MODEL_NAME} \\\n", " --region=global --origin ${MODEL_LOCATION} --runtime-version 2.2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the model to predict\n", "\n", "Send a JSON request to the endpoint of the service to make it predict a baby's weight ... I am going to try out how well the model would have predicted the weights of our two kids and a couple of variations while we are at it ..." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " \"predictions\": [\n", " {\n", " \"weight\": [\n", " 7.9085187911987305\n", " ]\n", " },\n", " {\n", " \"weight\": [\n", " 7.492921829223633\n", " ]\n", " },\n", " {\n", " \"weight\": [\n", " 6.517521858215332\n", " ]\n", " },\n", " {\n", " \"weight\": [\n", " 6.440060615539551\n", " ]\n", " }\n", " ]\n", "}\n" ] } ], "source": [ "from googleapiclient import discovery\n", "from oauth2client.client import GoogleCredentials\n", "import json\n", "\n", "credentials = GoogleCredentials.get_application_default()\n", "api = discovery.build('ml', 'v1', credentials=credentials, cache_discovery=False)\n", "\n", "request_data = {'instances':\n", " [\n", " {\n", " 'is_male': 'True',\n", " 'mother_age': 26.0,\n", " 'plurality': 'Single(1)',\n", " 'gestation_weeks': 39\n", " },\n", " {\n", " 'is_male': 'False',\n", " 'mother_age': 29.0,\n", " 'plurality': 'Single(1)',\n", " 'gestation_weeks': 38\n", " },\n", " {\n", " 'is_male': 'True',\n", " 'mother_age': 26.0,\n", " 'plurality': 'Triplets(3)',\n", " 'gestation_weeks': 39\n", " },\n", " {\n", " 'is_male': 'Unknown',\n", " 'mother_age': 29.0,\n", " 'plurality': 'Multiple(2+)',\n", " 'gestation_weeks': 38\n", " },\n", " ]\n", "}\n", "\n", "parent = 'projects/%s/models/%s/versions/%s' % (PROJECT, 'babyweight', 'v1')\n", "response = api.projects().predict(body=request_data, name=parent).execute()\n", "print(json.dumps(response, sort_keys = True, indent = 4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When I ran this, the four predictions for each of the requests in request_data above are 7.9, 7.5, 6.5, and 6.4 pounds. Yours may be different." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Copyright 2020 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License" ] } ], "metadata": { "environment": { "name": "tf2-2-3-gpu.2-3.m59", "type": "gcloud", "uri": "gcr.io/deeplearning-platform-release/tf2-2-3-gpu.2-3:m59" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.8" } }, "nbformat": 4, "nbformat_minor": 4 }