{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quick start" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:20:09.046564Z", "start_time": "2018-08-26T00:20:02.540948Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n", "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n", "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n", "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n", "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n", "/Users/demaasit/anaconda3/envs/tfp/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__\n", " return f(*args, **kwds)\n" ] } ], "source": [ "%matplotlib inline\n", "from warnings import filterwarnings\n", "filterwarnings(\"ignore\")\n", "\n", "import tensorflow as tf\n", "import tensorflow_probability as tfp\n", "tf.enable_eager_execution()\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "np.random.seed(12345)\n", "rc = {'xtick.labelsize': 20, 'ytick.labelsize': 20, 'axes.labelsize': 20, 'font.size': 20, \n", " 'legend.fontsize': 12.0, 'axes.titlesize': 10, \"figure.figsize\": [12, 6]}\n", "sns.set(rc = rc)\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:20:09.052630Z", "start_time": "2018-08-26T00:20:09.048753Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.10.1\n" ] } ], "source": [ "print(tf.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1: Prepare the data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:06:45.220611Z", "start_time": "2018-08-26T00:06:45.198841Z" } }, "outputs": [], "source": [ "# Pretend to load synthetic data set.\n", "features = tfp.distributions.Normal(loc=0., scale=1.).sample(int(100e3))\n", "labels = tfp.distributions.Bernoulli(logits=1.618 * features).sample()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2: Build the model" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:06:54.759750Z", "start_time": "2018-08-26T00:06:54.756997Z" } }, "outputs": [], "source": [ "# Specify model.\n", "model = tfp.glm.Bernoulli()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: Perform Inference" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:07:00.110726Z", "start_time": "2018-08-26T00:07:00.004677Z" } }, "outputs": [], "source": [ "# Fit model given data.\n", "coeffs, linear_response, is_converged, num_iter = tfp.glm.fit(\n", " model_matrix=features[:, tf.newaxis],\n", " response=tf.to_float(labels),\n", " model=model)\n", "# ==> coeffs is approximately [1.618] (We're golden!)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2018-08-26T00:07:15.140038Z", "start_time": "2018-08-26T00:07:15.134457Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tf.Tensor([1.618256], shape=(1,), dtype=float32)\n" ] } ], "source": [ "print(coeffs)" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:tfp]", "language": "python", "name": "conda-env-tfp-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }