{ "metadata": { "name": "model_testing.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Accelerated Randomized Benchmarking: Supplemental Material" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Christopher Granade, Christopher Ferrie and D. G. Cory**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[http://www.cgranade.com/research/arb/](http://www.cgranade.com/research/arb/)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this Supplemental Material, we provide and document the Python-based implementation of our results.\n", "All of the figures and tables in the main body of our work are generated from the code provided here." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Preamble" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before jumping into the code, there's a few housekeeping things to take care of. The main bulk of this notebook continues below.\n", "\n", "First, we turn on the ``division`` feature, as is recommended for using Python 2.x with scientific code." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we enable plotting support, using ``inline`` to make all of the plots load inside the notebook." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "WARNING: pylab import has clobbered these variables: ['mean', 'cov']\n", "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll want to set some sensible defaults for matplotlib, too, that are nice for making printed figures." ] }, { "cell_type": "code", "collapsed": false, "input": [ "try:\n", " import mpltools.style\n", " mpltools.style.use('ggplot')\n", "except ImportError:\n", " print (\n", " \"Not able to load ggplot style--- this won't matter too much, \"\n", " \"but your figures will look a little different.\"\n", " )" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Not able to load ggplot style--- this won't matter too much, but your figures will look a little different.\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "rcParams['axes.labelsize'] = 20\n", "rcParams['axes.titlesize'] = 22\n", "rcParams['legend.fontsize'] = 18\n", "rcParams['xtick.labelsize'] = 14\n", "rcParams['ytick.labelsize'] = 14\n", "rcParams['lines.linewidth'] = 1.5" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "All that's left is to import a few things. First, we import a few tools from SciPy:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from scipy.linalg import inv, eig, sqrtm\n", "from scipy.stats import chisqprob\n", "from scipy.optimize import curve_fit, minimize\n", "from scipy.io import loadmat" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we import IPython's rich display support, so that we can generate and display $\\LaTeX$ and Javascript directly in the notebook." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import display, Latex, HTML, Javascript, clear_output" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Later, we'll need access to a few of Python's standard libraries in order manage paths when we load gatesets." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "import glob\n", "import re" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we import from [QInfer](http://python-qinfer.readthedocs.org/en/latest/), our library for working with sequential Monte Carlo." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from qinfer.rb import RandomizedBenchmarkingModel, p, F\n", "from qinfer.smc import SMCUpdater, SMCUpdaterBCRB\n", "from qinfer.resamplers import LiuWestResampler\n", "from qinfer.derived_models import BinomialModel, DifferentiableBinomialModel\n", "from qinfer.distributions import (\n", " ConstantDistribution, ProductDistribution, UniformDistribution, PostselectedDistribution, MultivariateNormalDistribution\n", ")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It will also be useful to have a little function that a dictionary into a NumPy array, so we don't have to work quite so hard at it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def set_fields(arr, ix, fields):\n", " for key, val in fields.iteritems():\n", " if isinstance(val, np.ndarray) and len(val.shape) > 0:\n", " arr[ix][key][:] = val[:]\n", " else:\n", " arr[ix][key] = val" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To consolidate how figures are saved, we define a common folder for figure storage. We wrap ``savefig`` to save to that folder and in multiple formats." ] }, { "cell_type": "code", "collapsed": false, "input": [ "FIGURES_DIR = os.path.abspath(\"../figures/\")\n", "if not os.path.exists(FIGURES_DIR):\n", " os.mkdir(FIGURES_DIR)\n", " \n", "print \"Figures will be stored to {}.\".format(FIGURES_DIR)\n", "\n", "_savefig = savefig\n", "def savefig(name):\n", " for fmt in ('pdf', 'svg', 'png'):\n", " _savefig(os.path.join(FIGURES_DIR, \"{}.{}\".format(name, fmt)), format=fmt, bbox_inches='tight')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Figures will be stored to c:\\users\\csferrie\\documents\\github\\accelerated-randomized-benchmarking\\figures.\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since some of the code here takes a while to run, it's helpful to make a small progress bar." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import uuid\n", "\n", "class ProgressBar(object):\n", " def __init__(self):\n", " self._divid = \"div-{}\".format(uuid.uuid4())\n", " self._value = 0\n", "\n", " def __del__(self):\n", " self.hide()\n", " \n", " def hide(self):\n", " display(Javascript('$(\"#{}\").hide()'.format(self._divid)))\n", " \n", " @property\n", " def html(self):\n", " return \"\"\"\n", "
\n", " \"\"\".format(self._divid)\n", " \n", " @property\n", " def value(self):\n", " return self._value\n", " @value.setter\n", " def value(self, newval):\n", " self._value = newval\n", " self.refresh()\n", " \n", " def refresh(self):\n", " display(Javascript('$(\"#{}\").progressbar({{value: {}}})'.format(self._divid, self._value)))\n", " \n", " def show(self):\n", " display(HTML(self.html))\n", " self.refresh()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "There's a few non-critical warnings that come up in more recent versions of NumPy, and so we disable those here to prevent excess output from being printed." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import warnings\n", "warnings.simplefilter('ignore', DeprecationWarning)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we declare a few LaTeX commands. These don't show up when the notebook is rendered, but you can see them by editing this cell.\n", "$\n", " \\newcommand{\\bra}[1]{\\left\\langle#1\\right|}\n", " \\newcommand{\\ket}[1]{\\left|#1\\right\\rangle}\n", "$" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Model Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To generate and analyze benchmarking data, we'll need the likelihood model defined in ``benchmarking_models.py``. Since we'll be considering batches over the underlying two-outcome experiment described in the main text, we'll wrap the randomized benchmarking models in ``DifferentiableBinomialModel`` instances, representing binomial samples over Bernoulli data in a way that allows us to take derivatives\n", "of the likelihood function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import benchmarking_models as bm" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "model = DifferentiableBinomialModel(RandomizedBenchmarkingModel(order=0))\n", "il_model = DifferentiableBinomialModel(RandomizedBenchmarkingModel(interleaved=True, order=0))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot a \"real\" signal to test that our models are at least somewhat reasonable. For our test signals, we will plot $\\hat{F}_g(m)$ for $m$ ranging in steps of 10 up to 400. For each sequence length, we simulate $K = 10\\,000$ data points." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms = np.arange(0, 400, 10)\n", "\n", "expparams = np.empty(ms.shape, dtype=model.expparams_dtype)\n", "expparams['m'] = ms\n", "expparams['n_meas'] = 10000\n", "\n", "true_model = np.array([[0.9994, 0.5, 0.5], [0.9998, 0.5, 0.5]])\n", "\n", "example_signal = model.simulate_experiment(true_model, expparams) / expparams['n_meas']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(ms, example_signal[0, 0], 'k:', label=r'$p = {}$'.format(true_model[0, 0]))\n", "plot(ms, example_signal[0, 1], 'k-', label=r'$p = {}$'.format(true_model[1, 0]))\n", "xlabel('$m$')\n", "ylabel(r'$\\hat{F}_g(m)$')\n", "legend(loc='best')\n", "\n", "savefig('ex-signal-noninterleaved')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "