{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example for qutrit GST\n", "This notebook demonstrates how to construct the operation sequences and perform the analysis for qutrit GST when the model consists of symmetric $\\pi/2$-rotations on each single qubit separately, `X`, `Y` and a 2-qubit Molmer-Sorenson gate which rotates around the `XX` axis by $\\pi/2$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pygsti\n", "from pygsti.models import qutrit\n", "\n", "from numpy import pi, array\n", "import pickle\n", "\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we construct the target model. This functionality is built into pyGSTi, so we just need to specify the single-qubit and M-S angles." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "target_model = qutrit.create_qutrit_model(error_scale=0, x_angle=pi/2, y_angle=pi/2, ms_global=pi/2, ms_local=0, basis=\"qt\")\n", "#print(target_model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now construct the operation sequences needed by GST. These fiducials and germs have been computed ahead of time and the results are used to construct the operation sequence lists below. Then we construct an empty dataset containing all of the necessary experimental sequences which can serve as a template for the actual experimental results." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "fiducialPrep = pygsti.circuits.to_circuits(\n", " [(),('Gy',),('Gx',),('Gm',),\n", " ('Gx','Gx'), ('Gm','Gy'),('Gm','Gx'),\n", " ('Gy','Gy','Gy'),('Gx','Gx','Gx')])\n", "\n", "fiducialMeasure = pygsti.circuits.to_circuits(\n", " [(),('Gy',),('Gx',),('Gm',),\n", " ('Gy','Gm'),('Gx','Gm')])\n", "\n", "maxLengths = [1,2,4]\n", "\n", "germs = pygsti.circuits.to_circuits(\n", "[('Gi',),\n", " ('Gy',),\n", " ('Gx',),\n", " ('Gm',),\n", " ('Gi', 'Gy'),\n", " ('Gi', 'Gx'),\n", " ('Gi', 'Gm'),\n", " ('Gy', 'Gx'),\n", " ('Gy', 'Gm'),\n", " ('Gx', 'Gm'),\n", " ('Gi', 'Gi', 'Gy'),\n", " ('Gi', 'Gi', 'Gx'),\n", " ('Gi', 'Gi', 'Gm'),\n", " ('Gi', 'Gy', 'Gy'),\n", " ('Gi', 'Gy', 'Gx'),\n", " ('Gi', 'Gy', 'Gm'),\n", " ('Gi', 'Gx', 'Gy'),\n", " ('Gi', 'Gx', 'Gx'),\n", " ('Gi', 'Gx', 'Gm'),\n", " ('Gi', 'Gm', 'Gy'),\n", " ('Gi', 'Gm', 'Gx'),\n", " ('Gi', 'Gm', 'Gm'),\n", " ('Gy', 'Gy', 'Gx'),\n", " ('Gy', 'Gy', 'Gm'),\n", " ('Gy', 'Gx', 'Gx'),\n", " ('Gy', 'Gx', 'Gm'),\n", " ('Gy', 'Gm', 'Gx'),\n", " ('Gy', 'Gm', 'Gm'),\n", " ('Gx', 'Gx', 'Gm'),\n", " ('Gx', 'Gm', 'Gm')])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Note above construction is now a \"standard\" qutrit model\n", "from pygsti.modelpacks.legacy import stdQT_XYIMS\n", "target_model = stdQT_XYIMS.target_model()\n", "fiducialPrep = stdQT_XYIMS.prepStrs\n", "fiducialMeasure = stdQT_XYIMS.effectStrs\n", "germs = stdQT_XYIMS.germs_lite\n", "maxLengths = [1,2,4]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9 prep fiducials\n", "7 meas fiducials\n", "31 germs\n" ] } ], "source": [ "print(\"%d prep fiducials\" % len(fiducialPrep))\n", "print(\"%d meas fiducials\" % len(fiducialMeasure))\n", "print(\"%d germs\" % len(germs))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#generate data template\n", "expList = pygsti.circuits.create_lsgst_circuits(target_model.operations.keys(), fiducialPrep, fiducialMeasure, germs, maxLengths)\n", "pygsti.io.write_empty_dataset(\"example_files/dataTemplate_qutrit_maxL=4.txt\", expList, \"## Columns = 0bright count, 1bright count, 2bright count\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "At this point **STOP** and create/fill a dataset file using the template written in the above cell. Then proceed with the lines below to run GST on the data and create (hopefully useful) reports telling you about your gates." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "mdl_datagen = target_model.depolarize(op_noise=0.05)\n", "DS = pygsti.data.simulate_data(mdl_datagen, expList, 500, sample_error='multinomial', seed=2018)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "#DS = pygsti.io.load_dataset('PATH_TO_YOUR_DATASET',cache=True) # (cache=True speeds up future loads)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- Circuit Creation ---\n", " 2017 circuits created\n", " Dataset has 2017 entries: 2017 utilized, 0 requested circuits were missing\n", "-- Std Practice: Iter 1 of 2 (TP) --: \n", " --- Iterative GST: Iter 1 of 3 210 circuits ---: \n", " Layout creation w/mem limit = 3.00GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/enielse/pyGSTi/pygsti/protocols/gst.py:292: UserWarning: Failed to create a processor spec for GST experiment design!\n", " _warnings.warn(\"Failed to create a processor spec for GST experiment design!\")\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " --- Outer Iter 0: norm_f = 2.44942e+06, mu=1, |x|=5.88784, |J|=48997.9\n", " --- Outer Iter 1: norm_f = 454.154, mu=89186.6, |x|=5.71913, |J|=2540.12\n", " --- Outer Iter 2: norm_f = 391.887, mu=29728.9, |x|=5.71325, |J|=2433.17\n", " --- Outer Iter 3: norm_f = 354.498, mu=9909.62, |x|=5.70711, |J|=2410.6\n", " --- Outer Iter 4: norm_f = 313.31, mu=3303.21, |x|=5.6964, |J|=2414.53\n", " --- Outer Iter 5: norm_f = 265.397, mu=1101.07, |x|=5.67739, |J|=2457.22\n", " --- Outer Iter 6: norm_f = 229.442, mu=612.224, |x|=5.65579, |J|=5220.83\n", " --- Outer Iter 7: norm_f = 205.854, mu=204.075, |x|=5.64488, |J|=5217.41\n", " --- Outer Iter 8: norm_f = 197.162, mu=68.0249, |x|=5.63821, |J|=5212.91\n", " --- Outer Iter 9: norm_f = 194.835, mu=22.675, |x|=5.63554, |J|=5207.24\n", " --- Outer Iter 10: norm_f = 194.574, mu=7.55832, |x|=5.63469, |J|=5204.15\n", " --- Outer Iter 11: norm_f = 194.564, mu=2.51944, |x|=5.63455, |J|=5203.45\n", " --- Outer Iter 12: norm_f = 194.564, mu=0.839814, |x|=5.63454, |J|=5203.36\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 194.564 (420 data params - 314 (approx) model params = expected mean of 106; p-value = 3.50011e-07)\n", " Completed in 5.2s\n", " Iteration 1 took 5.3s\n", " \n", " --- Iterative GST: Iter 2 of 3 603 circuits ---: \n", " Layout creation w/mem limit = 3.00GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n", " --- Outer Iter 0: norm_f = 2279.19, mu=1, |x|=5.63454, |J|=6250.26\n", " --- Outer Iter 1: norm_f = 1199.41, mu=1752.73, |x|=5.62107, |J|=5566.36\n", " --- Outer Iter 2: norm_f = 990.285, mu=584.243, |x|=5.60756, |J|=5507.65\n", " --- Outer Iter 3: norm_f = 958.267, mu=194.748, |x|=5.60193, |J|=5489.5\n", " --- Outer Iter 4: norm_f = 956.181, mu=64.9159, |x|=5.60159, |J|=5480.12\n", " --- Outer Iter 5: norm_f = 956.1, mu=21.6386, |x|=5.60208, |J|=5475.43\n", " --- Outer Iter 6: norm_f = 956.083, mu=7.21288, |x|=5.60241, |J|=5473.1\n", " --- Outer Iter 7: norm_f = 956.077, mu=2.40429, |x|=5.6026, |J|=5471.97\n", " --- Outer Iter 8: norm_f = 956.076, mu=0.801431, |x|=5.60269, |J|=5471.44\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 956.076 (1206 data params - 314 (approx) model params = expected mean of 892; p-value = 0.0670846)\n", " Completed in 8.8s\n", " Iteration 2 took 8.9s\n", " \n", " --- Iterative GST: Iter 3 of 3 2017 circuits ---: \n", " Layout creation w/mem limit = 2.99GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n", " --- Outer Iter 0: norm_f = 4793.67, mu=1, |x|=5.60269, |J|=8364.11\n", " --- Outer Iter 1: norm_f = 3797.52, mu=1596.24, |x|=5.61836, |J|=8434.87\n", " --- Outer Iter 2: norm_f = 3771.09, mu=532.08, |x|=5.62335, |J|=8435.97\n", " --- Outer Iter 3: norm_f = 3770.67, mu=177.36, |x|=5.62438, |J|=8435.93\n", " --- Outer Iter 4: norm_f = 3770.67, mu=59.12, |x|=5.62453, |J|=8435.78\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 3770.67 (4034 data params - 314 (approx) model params = expected mean of 3720; p-value = 0.276765)\n", " Completed in 15.5s\n", " Iteration 3 took 16.0s\n", " \n", " Last iteration:\n", " --- dlogl GST ---\n", " --- Outer Iter 0: norm_f = 1892.73, mu=1, |x|=5.62453, |J|=5700.86\n", " --- Outer Iter 1: norm_f = 1890.48, mu=675.894, |x|=5.62524, |J|=5677.41\n", " --- Outer Iter 2: norm_f = 1890.43, mu=225.298, |x|=5.62498, |J|=5765.42\n", " --- Outer Iter 3: norm_f = 1890.41, mu=75.0994, |x|=5.62482, |J|=5716.24\n", " --- Outer Iter 4: norm_f = 1890.4, mu=25.0331, |x|=5.62475, |J|=5793.68\n", " --- Outer Iter 5: norm_f = 1890.4, mu=8.34437, |x|=5.62468, |J|=5759.48\n", " --- Outer Iter 6: norm_f = 1890.4, mu=2.50331, |x|=5.62466, |J|=5830.74\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " 2*Delta(log(L)) = 3780.8 (4034 data params - 314 (approx) model params = expected mean of 3720; p-value = 0.23924)\n", " Completed in 23.2s\n", " Final optimization took 23.3s\n", " \n", " Iterative GST Total Time: 53.5s\n", " -- Performing 'stdgaugeopt' gauge optimization on TP estimate --\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/enielse/pyGSTi/pygsti/protocols/gst.py:1259: UserWarning: Could not create target model for gauge opt. from edesign - falling back to initial model!\n", " _warnings.warn((\"Could not create target model for gauge opt. from edesign\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "-- Std Practice: Iter 2 of 2 (CPTP) --: \n", " --- Iterative GST: Iter 1 of 3 210 circuits ---: \n", " Layout creation w/mem limit = 3.00GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n", " --- Outer Iter 0: norm_f = 2.44942e+06, mu=1, |x|=6.9282e-08, |J|=1205.38\n", " --- Outer Iter 1: norm_f = 1568.14, mu=37.6409, |x|=0.302157, |J|=1422.57\n", " --- Outer Iter 2: norm_f = 520.96, mu=842.25, |x|=0.381817, |J|=1240.23\n", " --- Outer Iter 3: norm_f = 421.827, mu=821.677, |x|=0.412, |J|=1251\n", " --- Outer Iter 4: norm_f = 351.77, mu=677.019, |x|=0.430015, |J|=1273.31\n", " --- Outer Iter 5: norm_f = 323.655, mu=641.276, |x|=0.445244, |J|=1283.5\n", " --- Outer Iter 6: norm_f = 304.174, mu=590.315, |x|=0.455164, |J|=1293.86\n", " --- Outer Iter 7: norm_f = 291.865, mu=584.291, |x|=0.464355, |J|=1301.31\n", " --- Outer Iter 8: norm_f = 284.884, mu=586.627, |x|=0.469804, |J|=1307.39\n", " --- Outer Iter 9: norm_f = 281.853, mu=692.726, |x|=0.473095, |J|=1310.65\n", " --- Outer Iter 10: norm_f = 276.548, mu=695.359, |x|=0.473892, |J|=1315.47\n", " --- Outer Iter 11: norm_f = 273.52, mu=709.46, |x|=0.474409, |J|=1318.35\n", " --- Outer Iter 12: norm_f = 271.801, mu=775.959, |x|=0.475392, |J|=1320.08\n", " --- Outer Iter 13: norm_f = 270.014, mu=799.025, |x|=0.475716, |J|=1321.77\n", " --- Outer Iter 14: norm_f = 268.81, mu=839.278, |x|=0.475967, |J|=1323.21\n", " --- Outer Iter 15: norm_f = 267.961, mu=905.056, |x|=0.476169, |J|=1324.08\n", " --- Outer Iter 16: norm_f = 267.222, mu=948.205, |x|=0.476217, |J|=1325.17\n", " --- Outer Iter 17: norm_f = 266.699, mu=1002.24, |x|=0.476156, |J|=1325.95\n", " --- Outer Iter 18: norm_f = 266.316, mu=1065.86, |x|=0.476144, |J|=1326.69\n", " --- Outer Iter 19: norm_f = 266.02, mu=1120.51, |x|=0.476061, |J|=1327.25\n", " --- Outer Iter 20: norm_f = 265.799, mu=1167.86, |x|=0.476002, |J|=1327.81\n", " --- Outer Iter 21: norm_f = 265.637, mu=1210.65, |x|=0.475938, |J|=1328.19\n", " --- Outer Iter 22: norm_f = 265.514, mu=1241.47, |x|=0.475913, |J|=1328.56\n", " --- Outer Iter 23: norm_f = 265.418, mu=1260.39, |x|=0.475887, |J|=1328.8\n", " --- Outer Iter 24: norm_f = 265.341, mu=1269.04, |x|=0.47589, |J|=1329.04\n", " --- Outer Iter 25: norm_f = 265.278, mu=1271.95, |x|=0.475892, |J|=1329.2\n", " --- Outer Iter 26: norm_f = 265.224, mu=1272.44, |x|=0.475912, |J|=1329.37\n", " --- Outer Iter 27: norm_f = 265.177, mu=1272.45, |x|=0.475926, |J|=1329.49\n", " --- Outer Iter 28: norm_f = 265.136, mu=1272.42, |x|=0.475948, |J|=1329.63\n", " --- Outer Iter 29: norm_f = 265.1, mu=1271.98, |x|=0.475964, |J|=1329.73\n", " --- Outer Iter 30: norm_f = 265.067, mu=1270.29, |x|=0.475984, |J|=1329.85\n", " --- Outer Iter 31: norm_f = 265.037, mu=1266.5, |x|=0.475998, |J|=1329.94\n", " --- Outer Iter 32: norm_f = 265.011, mu=1259.94, |x|=0.476016, |J|=1330.04\n", " --- Outer Iter 33: norm_f = 264.986, mu=1250.96, |x|=0.476028, |J|=1330.13\n", " --- Outer Iter 34: norm_f = 264.964, mu=1240.87, |x|=0.476044, |J|=1330.22\n", " --- Outer Iter 35: norm_f = 264.944, mu=1231.86, |x|=0.476055, |J|=1330.3\n", " --- Outer Iter 36: norm_f = 264.925, mu=1225.49, |x|=0.47607, |J|=1330.38\n", " --- Outer Iter 37: norm_f = 264.908, mu=1222.13, |x|=0.476079, |J|=1330.45\n", " --- Outer Iter 38: norm_f = 264.892, mu=1220.89, |x|=0.476093, |J|=1330.53\n", " --- Outer Iter 39: norm_f = 264.877, mu=1220.66, |x|=0.476101, |J|=1330.6\n", " --- Outer Iter 40: norm_f = 264.864, mu=1220.66, |x|=0.476113, |J|=1330.67\n", " --- Outer Iter 41: norm_f = 264.851, mu=1220.68, |x|=0.47612, |J|=1330.73\n", " --- Outer Iter 42: norm_f = 264.839, mu=1221.02, |x|=0.47613, |J|=1330.8\n", " --- Outer Iter 43: norm_f = 264.828, mu=1222.37, |x|=0.476136, |J|=1330.86\n", " --- Outer Iter 44: norm_f = 264.818, mu=1225.57, |x|=0.476145, |J|=1330.92\n", " --- Outer Iter 45: norm_f = 264.808, mu=1231.31, |x|=0.47615, |J|=1330.98\n", " --- Outer Iter 46: norm_f = 264.799, mu=1239.36, |x|=0.476158, |J|=1331.04\n", " --- Outer Iter 47: norm_f = 264.79, mu=1248.62, |x|=0.476162, |J|=1331.09\n", " --- Outer Iter 48: norm_f = 264.782, mu=1257.08, |x|=0.476168, |J|=1331.15\n", " --- Outer Iter 49: norm_f = 264.774, mu=1263.33, |x|=0.47617, |J|=1331.19\n", " --- Outer Iter 50: norm_f = 264.767, mu=1266.88, |x|=0.476175, |J|=1331.25\n", " --- Outer Iter 51: norm_f = 264.76, mu=1268.39, |x|=0.476177, |J|=1331.29\n", " --- Outer Iter 52: norm_f = 264.753, mu=1268.76, |x|=0.476181, |J|=1331.35\n", " --- Outer Iter 53: norm_f = 264.747, mu=1268.79, |x|=0.476183, |J|=1331.39\n", " --- Outer Iter 54: norm_f = 264.741, mu=1268.78, |x|=0.476187, |J|=1331.44\n", " --- Outer Iter 55: norm_f = 264.736, mu=1268.59, |x|=0.476189, |J|=1331.48\n", " --- Outer Iter 56: norm_f = 264.73, mu=1267.56, |x|=0.476193, |J|=1331.52\n", " --- Outer Iter 57: norm_f = 264.725, mu=1264.67, |x|=0.476194, |J|=1331.56\n", " --- Outer Iter 58: norm_f = 264.72, mu=1258.79, |x|=0.476198, |J|=1331.6\n", " --- Outer Iter 59: norm_f = 264.716, mu=1249.37, |x|=0.4762, |J|=1331.64\n", " --- Outer Iter 60: norm_f = 264.711, mu=1237.27, |x|=0.476204, |J|=1331.68\n", " --- Outer Iter 61: norm_f = 264.707, mu=1225.02, |x|=0.476206, |J|=1331.72\n", " --- Outer Iter 62: norm_f = 264.703, mu=1215.54, |x|=0.47621, |J|=1331.76\n", " --- Outer Iter 63: norm_f = 264.699, mu=1210.23, |x|=0.476213, |J|=1331.79\n", " --- Outer Iter 64: norm_f = 264.695, mu=1208.32, |x|=0.476217, |J|=1331.83\n", " --- Outer Iter 65: norm_f = 264.692, mu=1208.02, |x|=0.476219, |J|=1331.86\n", " --- Outer Iter 66: norm_f = 264.688, mu=1208.02, |x|=0.476223, |J|=1331.9\n", " --- Outer Iter 67: norm_f = 264.685, mu=1208.14, |x|=0.476225, |J|=1331.93\n", " --- Outer Iter 68: norm_f = 264.681, mu=1209.36, |x|=0.47623, |J|=1331.97\n", " --- Outer Iter 69: norm_f = 264.678, mu=1213.6, |x|=0.476231, |J|=1331.99\n", " --- Outer Iter 70: norm_f = 264.675, mu=1222.81, |x|=0.476236, |J|=1332.03\n", " --- Outer Iter 71: norm_f = 264.672, mu=1237.32, |x|=0.476237, |J|=1332.06\n", " --- Outer Iter 72: norm_f = 264.67, mu=1254.04, |x|=0.476241, |J|=1332.09\n", " --- Outer Iter 73: norm_f = 264.667, mu=1268.14, |x|=0.476242, |J|=1332.12\n", " --- Outer Iter 74: norm_f = 264.664, mu=1276.5, |x|=0.476244, |J|=1332.15\n", " --- Outer Iter 75: norm_f = 264.662, mu=1279.72, |x|=0.476245, |J|=1332.17\n", " --- Outer Iter 76: norm_f = 264.659, mu=1280.28, |x|=0.476247, |J|=1332.21\n", " --- Outer Iter 77: norm_f = 264.657, mu=1280.28, |x|=0.476248, |J|=1332.23\n", " --- Outer Iter 78: norm_f = 264.655, mu=1280.12, |x|=0.47625, |J|=1332.26\n", " --- Outer Iter 79: norm_f = 264.652, mu=1278.23, |x|=0.476251, |J|=1332.28\n", " --- Outer Iter 80: norm_f = 264.65, mu=1271.38, |x|=0.476253, |J|=1332.31\n", " --- Outer Iter 81: norm_f = 264.648, mu=1256.06, |x|=0.476254, |J|=1332.34\n", " --- Outer Iter 82: norm_f = 264.646, mu=1232.04, |x|=0.476256, |J|=1332.36\n", " --- Outer Iter 83: norm_f = 264.644, mu=1205.61, |x|=0.476257, |J|=1332.39\n", " --- Outer Iter 84: norm_f = 264.642, mu=1186.68, |x|=0.476259, |J|=1332.41\n", " --- Outer Iter 85: norm_f = 264.64, mu=1179.18, |x|=0.476261, |J|=1332.44\n", " --- Outer Iter 86: norm_f = 264.638, mu=1178.21, |x|=0.476263, |J|=1332.46\n", " --- Outer Iter 87: norm_f = 264.637, mu=1178.21, |x|=0.476265, |J|=1332.49\n", " --- Outer Iter 88: norm_f = 264.635, mu=1179.79, |x|=0.476268, |J|=1332.51\n", " --- Outer Iter 89: norm_f = 264.633, mu=1190.56, |x|=0.476269, |J|=1332.53\n", " --- Outer Iter 90: norm_f = 264.632, mu=1219.96, |x|=0.476272, |J|=1332.56\n", " --- Outer Iter 91: norm_f = 264.63, mu=1263.99, |x|=0.476273, |J|=1332.58\n", " --- Outer Iter 92: norm_f = 264.629, mu=1300.83, |x|=0.476276, |J|=1332.61\n", " --- Outer Iter 93: norm_f = 264.627, mu=1317.39, |x|=0.476276, |J|=1332.62\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " --- Outer Iter 94: norm_f = 264.625, mu=1320.13, |x|=0.476277, |J|=1332.65\n", " --- Outer Iter 95: norm_f = 264.624, mu=1320.13, |x|=0.476277, |J|=1332.67\n", " --- Outer Iter 96: norm_f = 264.623, mu=1317.97, |x|=0.476279, |J|=1332.69\n", " --- Outer Iter 97: norm_f = 264.621, mu=1299.92, |x|=0.476279, |J|=1332.71\n", " --- Outer Iter 98: norm_f = 264.62, mu=1247.12, |x|=0.476281, |J|=1332.73\n", " --- Outer Iter 99: norm_f = 264.619, mu=1165.77, |x|=0.476281, |J|=1332.75\n", " --- Outer Iter 100: norm_f = 264.617, mu=1105.03, |x|=0.476283, |J|=1332.77\n", " --- Outer Iter 101: norm_f = 264.616, mu=1092.38, |x|=0.476285, |J|=1332.79\n", " --- Outer Iter 102: norm_f = 264.615, mu=1092.38, |x|=0.476287, |J|=1332.82\n", " --- Outer Iter 103: norm_f = 264.614, mu=1116.83, |x|=0.476289, |J|=1332.83\n", " --- Outer Iter 104: norm_f = 264.613, mu=1253.25, |x|=0.476292, |J|=1332.86\n", " --- Outer Iter 105: norm_f = 264.612, mu=1397.41, |x|=0.476293, |J|=1332.87\n", " --- Outer Iter 106: norm_f = 264.61, mu=1440.3, |x|=0.476295, |J|=1332.89\n", " --- Outer Iter 107: norm_f = 264.609, mu=1441.12, |x|=0.476293, |J|=1332.91\n", " --- Outer Iter 108: norm_f = 264.608, mu=1430.12, |x|=0.476294, |J|=1332.93\n", " --- Outer Iter 109: norm_f = 264.607, mu=1289.31, |x|=0.476294, |J|=1332.94\n", " --- Outer Iter 110: norm_f = 264.606, mu=972.367, |x|=0.476295, |J|=1332.96\n", " --- Outer Iter 111: norm_f = 264.605, mu=794.876, |x|=0.476297, |J|=1332.98\n", " --- Outer Iter 112: norm_f = 264.604, mu=794.883, |x|=0.4763, |J|=1333.01\n", " --- Outer Iter 113: norm_f = 264.603, mu=1590.2, |x|=0.4763, |J|=1333.02\n", " --- Outer Iter 114: norm_f = 264.602, mu=1505.3, |x|=0.4763, |J|=1333.04\n", " --- Outer Iter 115: norm_f = 264.602, mu=948.129, |x|=0.476301, |J|=1333.05\n", " --- Outer Iter 116: norm_f = 264.6, mu=481.5, |x|=0.476303, |J|=1333.07\n", " --- Outer Iter 117: norm_f = 264.599, mu=481.398, |x|=0.476308, |J|=1333.11\n", " --- Outer Iter 118: norm_f = 264.598, mu=3391.34, |x|=0.476306, |J|=1333.12\n", " --- Outer Iter 119: norm_f = 264.598, mu=1946.23, |x|=0.476306, |J|=1333.13\n", " --- Outer Iter 120: norm_f = 264.597, mu=648.744, |x|=0.476306, |J|=1333.14\n", " --- Outer Iter 121: norm_f = 264.596, mu=216.248, |x|=0.476309, |J|=1333.17\n", " --- Outer Iter 122: norm_f = 264.592, mu=144.268, |x|=0.476326, |J|=1333.25\n", " --- Outer Iter 123: norm_f = 264.592, mu=1346.68, |x|=0.476319, |J|=1333.27\n", " --- Outer Iter 124: norm_f = 264.591, mu=1448.9, |x|=0.47632, |J|=1333.29\n", " --- Outer Iter 125: norm_f = 264.59, mu=1461.53, |x|=0.476319, |J|=1333.3\n", " --- Outer Iter 126: norm_f = 264.589, mu=1460.88, |x|=0.476319, |J|=1333.31\n", " --- Outer Iter 127: norm_f = 264.589, mu=1378.82, |x|=0.476319, |J|=1333.32\n", " --- Outer Iter 128: norm_f = 264.588, mu=1061.37, |x|=0.47632, |J|=1333.34\n", " --- Outer Iter 129: norm_f = 264.588, mu=762.975, |x|=0.476321, |J|=1333.35\n", " --- Outer Iter 130: norm_f = 264.587, mu=752.374, |x|=0.476324, |J|=1333.38\n", " --- Outer Iter 131: norm_f = 264.587, mu=1483.03, |x|=0.476326, |J|=1333.39\n", " --- Outer Iter 132: norm_f = 264.586, mu=1642.56, |x|=0.476329, |J|=1333.41\n", " --- Outer Iter 133: norm_f = 264.585, mu=1650.3, |x|=0.476327, |J|=1333.42\n", " --- Outer Iter 134: norm_f = 264.584, mu=1607.56, |x|=0.476327, |J|=1333.43\n", " --- Outer Iter 135: norm_f = 264.584, mu=1000.23, |x|=0.476327, |J|=1333.44\n", " --- Outer Iter 136: norm_f = 264.583, mu=389.794, |x|=0.476328, |J|=1333.46\n", " --- Outer Iter 137: norm_f = 264.582, mu=385.335, |x|=0.476333, |J|=1333.5\n", " --- Outer Iter 138: norm_f = 264.582, mu=2936.65, |x|=0.476331, |J|=1333.51\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 264.582 (420 data params - 432 (approx) model params = expected mean of -12; p-value = nan)\n", " Completed in 143.2s\n", " Iteration 1 took 143.3s\n", " \n", " --- Iterative GST: Iter 2 of 3 603 circuits ---: \n", " Layout creation w/mem limit = 3.00GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n", " --- Outer Iter 0: norm_f = 1402.53, mu=1, |x|=0.476331, |J|=2367.62\n", " --- Outer Iter 1: norm_f = 1224.5, mu=1415.71, |x|=0.474184, |J|=2330.66\n", " --- Outer Iter 2: norm_f = 1055.25, mu=693.416, |x|=0.460173, |J|=2358.69\n", " --- Outer Iter 3: norm_f = 1049.43, mu=960.325, |x|=0.463626, |J|=2346.3\n", " --- Outer Iter 4: norm_f = 1007, mu=381.845, |x|=0.45747, |J|=2360.56\n", " --- Outer Iter 5: norm_f = 1000.46, mu=678.425, |x|=0.457613, |J|=2359.32\n", " --- Outer Iter 6: norm_f = 996.078, mu=509.679, |x|=0.457387, |J|=2359.71\n", " --- Outer Iter 7: norm_f = 993.775, mu=483.191, |x|=0.45814, |J|=2358.27\n", " --- Outer Iter 8: norm_f = 991.731, mu=368.273, |x|=0.458282, |J|=2359.19\n", " --- Outer Iter 9: norm_f = 990.764, mu=354.542, |x|=0.458963, |J|=2359.17\n", " --- Outer Iter 10: norm_f = 989.951, mu=281.481, |x|=0.459348, |J|=2360.32\n", " --- Outer Iter 11: norm_f = 989.537, mu=276.808, |x|=0.460399, |J|=2360.37\n", " --- Outer Iter 12: norm_f = 989.092, mu=228.311, |x|=0.461328, |J|=2361.41\n", " --- Outer Iter 13: norm_f = 988.806, mu=224.67, |x|=0.462787, |J|=2361.26\n", " --- Outer Iter 14: norm_f = 988.496, mu=208.384, |x|=0.464167, |J|=2361.97\n", " --- Outer Iter 15: norm_f = 988.279, mu=208.097, |x|=0.46587, |J|=2361.52\n", " --- Outer Iter 16: norm_f = 988.041, mu=204.001, |x|=0.46769, |J|=2361.59\n", " --- Outer Iter 17: norm_f = 987.833, mu=202.828, |x|=0.469663, |J|=2361.45\n", " --- Outer Iter 18: norm_f = 987.621, mu=202.152, |x|=0.471858, |J|=2361.09\n", " --- Outer Iter 19: norm_f = 987.407, mu=202.151, |x|=0.474063, |J|=2360.66\n", " --- Outer Iter 20: norm_f = 987.37, mu=337.2, |x|=0.47652, |J|=2359.71\n", " --- Outer Iter 21: norm_f = 986.885, mu=673.911, |x|=0.476532, |J|=2361.21\n", " --- Outer Iter 22: norm_f = 986.646, mu=608.608, |x|=0.4768, |J|=2361.69\n", " --- Outer Iter 23: norm_f = 986.474, mu=387.206, |x|=0.477333, |J|=2362.33\n", " --- Outer Iter 24: norm_f = 986.251, mu=307.702, |x|=0.478253, |J|=2361.82\n", " --- Outer Iter 25: norm_f = 986.154, mu=357.893, |x|=0.479224, |J|=2360.97\n", " --- Outer Iter 26: norm_f = 985.859, mu=715.157, |x|=0.479187, |J|=2361.49\n", " --- Outer Iter 27: norm_f = 985.698, mu=511.865, |x|=0.479145, |J|=2362.5\n", " --- Outer Iter 28: norm_f = 985.562, mu=320.996, |x|=0.47935, |J|=2362.42\n", " --- Outer Iter 29: norm_f = 985.481, mu=324.403, |x|=0.479611, |J|=2361.73\n", " --- Outer Iter 30: norm_f = 985.467, mu=571.285, |x|=0.479801, |J|=2361.38\n", " --- Outer Iter 31: norm_f = 985.325, mu=586.107, |x|=0.479645, |J|=2361.99\n", " --- Outer Iter 32: norm_f = 985.234, mu=588.379, |x|=0.479448, |J|=2362.46\n", " --- Outer Iter 33: norm_f = 985.185, mu=592.463, |x|=0.479332, |J|=2362.71\n", " --- Outer Iter 34: norm_f = 985.151, mu=594.653, |x|=0.479245, |J|=2362.88\n", " --- Outer Iter 35: norm_f = 985.123, mu=595.915, |x|=0.479163, |J|=2363.04\n", " --- Outer Iter 36: norm_f = 985.101, mu=597.181, |x|=0.479091, |J|=2363.17\n", " --- Outer Iter 37: norm_f = 985.081, mu=599.274, |x|=0.479019, |J|=2363.31\n", " --- Outer Iter 38: norm_f = 985.064, mu=603.155, |x|=0.478954, |J|=2363.42\n", " --- Outer Iter 39: norm_f = 985.05, mu=609.811, |x|=0.478888, |J|=2363.55\n", " --- Outer Iter 40: norm_f = 985.036, mu=619.28, |x|=0.478829, |J|=2363.66\n", " --- Outer Iter 41: norm_f = 985.024, mu=630.881, |x|=0.478767, |J|=2363.78\n", " --- Outer Iter 42: norm_f = 985.013, mu=643.087, |x|=0.478713, |J|=2363.89\n", " --- Outer Iter 43: norm_f = 985.003, mu=655.027, |x|=0.478657, |J|=2364.01\n", " --- Outer Iter 44: norm_f = 984.994, mu=665.872, |x|=0.478608, |J|=2364.11\n", " --- Outer Iter 45: norm_f = 984.986, mu=675.506, |x|=0.478557, |J|=2364.22\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " --- Outer Iter 46: norm_f = 984.979, mu=683.705, |x|=0.478513, |J|=2364.31\n", " --- Outer Iter 47: norm_f = 984.973, mu=690.651, |x|=0.478468, |J|=2364.42\n", " --- Outer Iter 48: norm_f = 984.967, mu=696.381, |x|=0.478427, |J|=2364.5\n", " --- Outer Iter 49: norm_f = 984.961, mu=701.149, |x|=0.478386, |J|=2364.6\n", " --- Outer Iter 50: norm_f = 984.957, mu=705.066, |x|=0.478349, |J|=2364.68\n", " --- Outer Iter 51: norm_f = 984.952, mu=708.344, |x|=0.478311, |J|=2364.77\n", " --- Outer Iter 52: norm_f = 984.948, mu=711.075, |x|=0.478277, |J|=2364.85\n", " --- Outer Iter 53: norm_f = 984.944, mu=713.398, |x|=0.478242, |J|=2364.93\n", " --- Outer Iter 54: norm_f = 984.941, mu=715.369, |x|=0.47821, |J|=2365.01\n", " --- Outer Iter 55: norm_f = 984.938, mu=717.07, |x|=0.478177, |J|=2365.09\n", " --- Outer Iter 56: norm_f = 984.935, mu=718.528, |x|=0.478147, |J|=2365.16\n", " --- Outer Iter 57: norm_f = 984.932, mu=719.789, |x|=0.478116, |J|=2365.24\n", " --- Outer Iter 58: norm_f = 984.929, mu=720.864, |x|=0.478087, |J|=2365.3\n", " --- Outer Iter 59: norm_f = 984.927, mu=721.779, |x|=0.478057, |J|=2365.38\n", " --- Outer Iter 60: norm_f = 984.924, mu=722.539, |x|=0.47803, |J|=2365.44\n", " --- Outer Iter 61: norm_f = 984.922, mu=723.158, |x|=0.478002, |J|=2365.51\n", " --- Outer Iter 62: norm_f = 984.92, mu=723.642, |x|=0.477976, |J|=2365.58\n", " --- Outer Iter 63: norm_f = 984.918, mu=724.003, |x|=0.477948, |J|=2365.64\n", " --- Outer Iter 64: norm_f = 984.916, mu=724.09, |x|=0.477923, |J|=2366.29\n", " --- Outer Iter 65: norm_f = 984.908, mu=724.089, |x|=0.477916, |J|=2366.17\n", " --- Outer Iter 66: norm_f = 984.905, mu=1452.99, |x|=0.477898, |J|=2366.21\n", " --- Outer Iter 67: norm_f = 984.904, mu=1370.2, |x|=0.477879, |J|=2366.23\n", " --- Outer Iter 68: norm_f = 984.902, mu=628.06, |x|=0.477863, |J|=2366.26\n", " --- Outer Iter 69: norm_f = 984.9, mu=209.353, |x|=0.47783, |J|=2366.33\n", " --- Outer Iter 70: norm_f = 984.899, mu=276.888, |x|=0.477748, |J|=2366.55\n", " --- Outer Iter 71: norm_f = 984.894, mu=2184.11, |x|=0.477729, |J|=2366.54\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 984.894 (1206 data params - 432 (approx) model params = expected mean of 774; p-value = 3.61401e-07)\n", " Completed in 142.0s\n", " Iteration 2 took 142.2s\n", " \n", " --- Iterative GST: Iter 3 of 3 2017 circuits ---: \n", " Layout creation w/mem limit = 2.99GB\n", " MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n", " 1 atoms, parameter block size limits (None,)\n", " *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n", " More atom-processors than hosts: each host gets ~1 atom-processors\n", " Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n", " *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n", " --- chi2 GST ---\n", " --- Outer Iter 0: norm_f = 4457.25, mu=1, |x|=0.477729, |J|=4558.27\n", " --- Outer Iter 1: norm_f = 4055.62, mu=4430.19, |x|=0.472344, |J|=4525.7\n", " --- Outer Iter 2: norm_f = 3889.11, mu=1476.73, |x|=0.464057, |J|=4560.26\n", " --- Outer Iter 3: norm_f = 3887.3, mu=2644.26, |x|=0.466314, |J|=4544.66\n", " --- Outer Iter 4: norm_f = 3825.13, mu=881.42, |x|=0.462145, |J|=4567.91\n", " --- Outer Iter 5: norm_f = 3816.4, mu=1749.03, |x|=0.462652, |J|=4559.15\n", " --- Outer Iter 6: norm_f = 3805.7, mu=1391.79, |x|=0.461435, |J|=4557.48\n", " --- Outer Iter 7: norm_f = 3800.54, mu=1340.51, |x|=0.461005, |J|=4552.03\n", " --- Outer Iter 8: norm_f = 3795.89, mu=1108.35, |x|=0.460472, |J|=4549.11\n", " --- Outer Iter 9: norm_f = 3793.01, mu=1068.37, |x|=0.460459, |J|=4543.74\n", " --- Outer Iter 10: norm_f = 3789.87, mu=919.076, |x|=0.460337, |J|=4540.47\n", " --- Outer Iter 11: norm_f = 3787.45, mu=861.449, |x|=0.460505, |J|=4536.81\n", " --- Outer Iter 12: norm_f = 3785.09, mu=710.177, |x|=0.460613, |J|=4535.02\n", " --- Outer Iter 13: norm_f = 3783.46, mu=630.438, |x|=0.461009, |J|=4532.99\n", " --- Outer Iter 14: norm_f = 3782.16, mu=529.667, |x|=0.461415, |J|=4532.11\n", " --- Outer Iter 15: norm_f = 3781.25, mu=504.664, |x|=0.462002, |J|=4531.03\n", " --- Outer Iter 16: norm_f = 3780.35, mu=486.227, |x|=0.462525, |J|=4529.88\n", " --- Outer Iter 17: norm_f = 3779.46, mu=463.533, |x|=0.462883, |J|=4528.83\n", " --- Outer Iter 18: norm_f = 3778.74, mu=450.35, |x|=0.463089, |J|=4528.5\n", " --- Outer Iter 19: norm_f = 3778.18, mu=450.098, |x|=0.46323, |J|=4528.33\n", " --- Outer Iter 20: norm_f = 3777.51, mu=447.673, |x|=0.463176, |J|=4528.83\n", " --- Outer Iter 21: norm_f = 3776.77, mu=426.825, |x|=0.462879, |J|=4530.14\n", " --- Outer Iter 22: norm_f = 3776.15, mu=388.628, |x|=0.462407, |J|=4531.9\n", " --- Outer Iter 23: norm_f = 3775.67, mu=342.496, |x|=0.461843, |J|=4533.76\n", " --- Outer Iter 24: norm_f = 3775.33, mu=307.48, |x|=0.461273, |J|=4535.41\n", " --- Outer Iter 25: norm_f = 3775.06, mu=283.551, |x|=0.460757, |J|=4536.79\n", " --- Outer Iter 26: norm_f = 3774.82, mu=265.489, |x|=0.460349, |J|=4537.86\n", " --- Outer Iter 27: norm_f = 3774.6, mu=248.498, |x|=0.460075, |J|=4538.63\n", " --- Outer Iter 28: norm_f = 3774.39, mu=230.671, |x|=0.459943, |J|=4539.07\n", " --- Outer Iter 29: norm_f = 3774.19, mu=210.592, |x|=0.459941, |J|=4539.17\n", " --- Outer Iter 30: norm_f = 3774.02, mu=191.311, |x|=0.460048, |J|=4538.9\n", " --- Outer Iter 31: norm_f = 3773.88, mu=180.451, |x|=0.460241, |J|=4538.24\n", " --- Outer Iter 32: norm_f = 3773.77, mu=177.378, |x|=0.460475, |J|=4537.21\n", " --- Outer Iter 33: norm_f = 3773.66, mu=177.078, |x|=0.460707, |J|=4535.88\n", " --- Outer Iter 34: norm_f = 3773.55, mu=177.063, |x|=0.460893, |J|=4534.31\n", " --- Outer Iter 35: norm_f = 3773.41, mu=176.835, |x|=0.460981, |J|=4532.55\n", " --- Outer Iter 36: norm_f = 3773.23, mu=173.774, |x|=0.460949, |J|=4530.51\n", " --- Outer Iter 37: norm_f = 3773.03, mu=166.119, |x|=0.460805, |J|=4528.33\n", " --- Outer Iter 38: norm_f = 3772.84, mu=147.879, |x|=0.460566, |J|=4526.65\n", " --- Outer Iter 39: norm_f = 3772.71, mu=108.77, |x|=0.460321, |J|=4525.74\n", " --- Outer Iter 40: norm_f = 3772.66, mu=82.0984, |x|=0.460184, |J|=4525.11\n", " --- Outer Iter 41: norm_f = 3772.64, mu=66.7108, |x|=0.460164, |J|=4524.62\n", " --- Outer Iter 42: norm_f = 3772.63, mu=66.7094, |x|=0.460249, |J|=4523.97\n", " --- Outer Iter 43: norm_f = 3772.62, mu=66.6803, |x|=0.460362, |J|=4523.37\n", " --- Outer Iter 44: norm_f = 3772.61, mu=66.6787, |x|=0.460496, |J|=4522.71\n", " --- Outer Iter 45: norm_f = 3772.61, mu=66.6692, |x|=0.46064, |J|=4522.04\n", " --- Outer Iter 46: norm_f = 3772.6, mu=66.6243, |x|=0.460793, |J|=4521.37\n", " --- Outer Iter 47: norm_f = 3772.6, mu=66.5125, |x|=0.460951, |J|=4520.69\n", " --- Outer Iter 48: norm_f = 3772.59, mu=66.3053, |x|=0.461113, |J|=4520.02\n", " --- Outer Iter 49: norm_f = 3772.58, mu=66.0104, |x|=0.461275, |J|=4519.35\n", " --- Outer Iter 50: norm_f = 3772.58, mu=65.6237, |x|=0.461441, |J|=4518.71\n", " --- Outer Iter 51: norm_f = 3772.57, mu=65.2112, |x|=0.461601, |J|=4518.06\n", " --- Outer Iter 52: norm_f = 3772.57, mu=64.7992, |x|=0.461764, |J|=4517.45\n", " --- Outer Iter 53: norm_f = 3772.56, mu=64.5173, |x|=0.461916, |J|=4516.83\n", " --- Outer Iter 54: norm_f = 3772.56, mu=64.3985, |x|=0.462075, |J|=4516.28\n", " --- Outer Iter 55: norm_f = 3772.56, mu=64.3966, |x|=0.462212, |J|=4515.68\n", " --- Outer Iter 56: norm_f = 3772.55, mu=64.5456, |x|=0.462365, |J|=4515.18\n", " --- Outer Iter 57: norm_f = 3772.55, mu=67.7115, |x|=0.462485, |J|=4514.58\n", " --- Outer Iter 58: norm_f = 3772.55, mu=85.8395, |x|=0.462633, |J|=4514.15\n", " --- Outer Iter 59: norm_f = 3772.54, mu=120.554, |x|=0.462695, |J|=4513.71\n", " --- Outer Iter 60: norm_f = 3772.54, mu=186.004, |x|=0.462785, |J|=4513.58\n", " --- Outer Iter 61: norm_f = 3772.54, mu=221.557, |x|=0.462792, |J|=4513.31\n", " --- Outer Iter 62: norm_f = 3772.53, mu=248.364, |x|=0.462835, |J|=4513.32\n", " --- Outer Iter 63: norm_f = 3772.53, mu=256.593, |x|=0.462851, |J|=4513.08\n", " --- Outer Iter 64: norm_f = 3772.53, mu=257.868, |x|=0.462886, |J|=4513.03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " --- Outer Iter 65: norm_f = 3772.52, mu=257.77, |x|=0.462912, |J|=4512.81\n", " --- Outer Iter 66: norm_f = 3772.52, mu=249.934, |x|=0.462949, |J|=4512.7\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " Sum of Chi^2 = 3772.52 (4034 data params - 432 (approx) model params = expected mean of 3602; p-value = 0.0235163)\n", " Completed in 335.1s\n", " Iteration 3 took 335.6s\n", " \n", " Last iteration:\n", " --- dlogl GST ---\n", " --- Outer Iter 0: norm_f = 1894.42, mu=1, |x|=0.462949, |J|=3188.99\n", " --- Outer Iter 1: norm_f = 1892.03, mu=118.718, |x|=0.462425, |J|=3194.04\n", " --- Outer Iter 2: norm_f = 1891.76, mu=39.5726, |x|=0.462704, |J|=3195.2\n", " --- Outer Iter 3: norm_f = 1891.68, mu=28.1628, |x|=0.463194, |J|=3195.42\n", " --- Outer Iter 4: norm_f = 1891.64, mu=28.1606, |x|=0.463572, |J|=3195.2\n", " --- Outer Iter 5: norm_f = 1891.64, mu=34.4644, |x|=0.463827, |J|=3194.9\n", " --- Outer Iter 6: norm_f = 1891.61, mu=34.2505, |x|=0.463931, |J|=3194.79\n", " --- Outer Iter 7: norm_f = 1891.61, mu=66.1594, |x|=0.46404, |J|=3194.65\n", " --- Outer Iter 8: norm_f = 1891.59, mu=64.9324, |x|=0.464072, |J|=3194.66\n", " --- Outer Iter 9: norm_f = 1891.58, mu=63.5791, |x|=0.464076, |J|=3194.73\n", " --- Outer Iter 10: norm_f = 1891.58, mu=134.673, |x|=0.464117, |J|=3194.7\n", " --- Outer Iter 11: norm_f = 1891.58, mu=135.636, |x|=0.464134, |J|=3194.68\n", " --- Outer Iter 12: norm_f = 1891.58, mu=144.814, |x|=0.464163, |J|=3194.64\n", " --- Outer Iter 13: norm_f = 1891.57, mu=152.472, |x|=0.464185, |J|=3194.6\n", " --- Outer Iter 14: norm_f = 1891.57, mu=157.38, |x|=0.464203, |J|=3194.58\n", " --- Outer Iter 15: norm_f = 1891.57, mu=161.928, |x|=0.464219, |J|=3194.54\n", " --- Outer Iter 16: norm_f = 1891.57, mu=166.682, |x|=0.464232, |J|=3194.51\n", " --- Outer Iter 17: norm_f = 1891.57, mu=170.534, |x|=0.464243, |J|=3194.48\n", " --- Outer Iter 18: norm_f = 1891.57, mu=173.388, |x|=0.464251, |J|=3194.45\n", " Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 1e-06\n", " 2*Delta(log(L)) = 3783.14 (4034 data params - 432 (approx) model params = expected mean of 3602; p-value = 0.0175496)\n", " Completed in 87.9s\n", " Final optimization took 87.9s\n", " \n", " Iterative GST Total Time: 709.1s\n", " -- Performing 'stdgaugeopt' gauge optimization on CPTP estimate --\n" ] } ], "source": [ "#Run qutrit GST... which could take a while on a single CPU. Please adjust memLimit to machine specs \n", "# (now 3GB; usually set to slightly less than the total machine memory)\n", "target_model.sim = \"matrix\"\n", "result = pygsti.run_stdpractice_gst(DS,target_model,fiducialPrep,fiducialMeasure,germs,maxLengths,\n", " verbosity=4, comm=None, mem_limit=3*(1024)**3, modes=\"TP,CPTP\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running idle tomography\n", "Computing switchable properties\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/enielse/pyGSTi/pygsti/report/factory.py:1245: UserWarning: Idle tomography failed:\n", "operands could not be broadcast together with shapes (9,) (16,) \n", " _warnings.warn(\"Idle tomography failed:\\n\" + str(e))\n", "/Users/enielse/pyGSTi/pygsti/report/workspacetables.py:752: UserWarning:\n", "\n", "Failed gauge-robust decomposition of Gi op:\n", "\n", "\n" ] } ], "source": [ "#Create a report\n", "ws = pygsti.report.construct_standard_report(\n", " result, \"Example Qutrit Report\", verbosity=3\n", ").write_html('example_files/sampleQutritReport', auto_open=True, verbosity=3)" ] } ], "metadata": { "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.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }