Save and load results as HDF5 files

[1]:
import pypesto
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
from pypesto.storage import (save_to_hdf5, read_from_hdf5)
import tempfile

%matplotlib inline

Define the objective and problem

[2]:
objective = pypesto.Objective(fun=sp.optimize.rosen,
                              grad=sp.optimize.rosen_der,
                              hess=sp.optimize.rosen_hess)

dim_full = 10
lb = -5 * np.ones((dim_full, 1))
ub = 5 * np.ones((dim_full, 1))

problem = pypesto.Problem(objective=objective, lb=lb, ub=ub)

Run optimization

[3]:
# create optimizers
optimizer = pypesto.ScipyOptimizer(method='l-bfgs-b')

# set number of starts
n_starts = 20

# Run optimizaitons
result = pypesto.minimize(
    problem=problem, optimizer=optimizer,
    n_starts=n_starts)
[4]:
result.optimize_result.list
[4]:
[{'id': '8',
  'x': array([1.00000001, 0.99999999, 0.99999997, 0.99999998, 0.99999998,
         0.99999999, 0.99999996, 0.99999987, 0.99999971, 0.9999995 ]),
  'fval': 1.4448869867069234e-12,
  'grad': array([ 9.91613312e-06, -2.33793663e-07, -1.84487477e-05, -1.24826804e-06,
         -7.03416051e-06,  1.12040576e-05,  1.88713028e-05, -4.68014961e-07,
         -3.65179645e-05,  1.53152743e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 73,
  'n_grad': 73,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 0.99999999, 0.99999997, 0.99999998, 0.99999998,
         0.99999999, 0.99999996, 0.99999987, 0.99999971, 0.9999995 ]),
  'fval0': 116315.16334351365,
  'history': <pypesto.objective.history.History at 0x7fefee65a750>,
  'exitflag': 0,
  'time': 0.010613441467285156,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '16',
  'x': array([0.99999994, 0.99999998, 1.        , 1.00000002, 1.00000004,
         1.00000001, 1.        , 1.00000012, 1.0000003 , 1.00000051]),
  'fval': 4.371307796809753e-12,
  'grad': array([-4.26293148e-05,  9.13631144e-06, -1.31339486e-06,  2.51280250e-06,
          2.59501842e-05,  4.21294205e-07, -5.58158396e-05,  7.08567852e-07,
          4.41611237e-05, -1.57413407e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 79,
  'n_grad': 79,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999994, 0.99999998, 1.        , 1.00000002, 1.00000004,
         1.00000001, 1.        , 1.00000012, 1.0000003 , 1.00000051]),
  'fval0': 127542.57197202934,
  'history': <pypesto.objective.history.History at 0x7fefee65a910>,
  'exitflag': 0,
  'time': 0.011748075485229492,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '4',
  'x': array([1.00000007, 0.99999999, 0.99999998, 1.        , 1.00000008,
         1.00000021, 1.00000015, 1.00000006, 1.00000004, 1.00000013]),
  'fval': 1.7134261938953258e-11,
  'grad': array([ 5.79464879e-05, -3.23661397e-05, -1.13616716e-05, -2.69343079e-05,
         -1.67474293e-06,  1.20454131e-04,  3.83436764e-05, -1.71072644e-05,
         -3.54339727e-05,  1.03840629e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 88,
  'n_grad': 88,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000007, 0.99999999, 0.99999998, 1.        , 1.00000008,
         1.00000021, 1.00000015, 1.00000006, 1.00000004, 1.00000013]),
  'fval0': 169143.33089007522,
  'history': <pypesto.objective.history.History at 0x7fefee9008d0>,
  'exitflag': 0,
  'time': 0.016152620315551758,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '11',
  'x': array([0.99999983, 0.99999997, 0.99999989, 0.9999998 , 1.00000006,
         0.99999986, 0.99999963, 0.99999927, 0.99999861, 0.99999709]),
  'fval': 4.473573948366185e-11,
  'grad': array([-1.25925183e-04,  8.34342658e-05, -1.58946249e-05, -1.85224905e-04,
          2.00742516e-04, -1.80384056e-05, -1.83734314e-05, -2.93938826e-05,
          5.98755497e-05, -2.43744695e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 78,
  'n_grad': 78,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999983, 0.99999997, 0.99999989, 0.9999998 , 1.00000006,
         0.99999986, 0.99999963, 0.99999927, 0.99999861, 0.99999709]),
  'fval0': 111440.55513257613,
  'history': <pypesto.objective.history.History at 0x7fefee65a7d0>,
  'exitflag': 0,
  'time': 0.009877920150756836,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '0',
  'x': array([1.00000016, 1.00000029, 1.00000013, 1.00000007, 0.99999984,
         0.99999968, 0.99999955, 0.99999932, 0.99999871, 0.99999745]),
  'fval': 4.512690733773355e-11,
  'grad': array([ 6.88017381e-06,  1.82437618e-04, -1.71219792e-05,  7.83029016e-05,
         -5.64629619e-05, -7.75613657e-05, -5.33124129e-05,  2.00358870e-05,
         -3.38990540e-06,  6.36234430e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 80,
  'n_grad': 80,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000016, 1.00000029, 1.00000013, 1.00000007, 0.99999984,
         0.99999968, 0.99999955, 0.99999932, 0.99999871, 0.99999745]),
  'fval0': 179787.03971937217,
  'history': <pypesto.objective.history.History at 0x7fefee6d1e50>,
  'exitflag': 0,
  'time': 0.05712604522705078,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '18',
  'x': array([0.9999999 , 0.99999988, 1.00000002, 1.00000017, 1.00000034,
         1.00000045, 1.00000052, 1.00000076, 1.00000146, 1.00000315]),
  'fval': 4.530338040953872e-11,
  'grad': array([-3.46616032e-05, -8.55052094e-05,  4.32179353e-06,  2.27795791e-05,
          8.77325561e-05,  1.11150847e-04,  4.14626291e-05, -3.72317820e-05,
         -9.65698380e-05,  4.47893709e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 85,
  'n_grad': 85,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.9999999 , 0.99999988, 1.00000002, 1.00000017, 1.00000034,
         1.00000045, 1.00000052, 1.00000076, 1.00000146, 1.00000315]),
  'fval0': 84246.35907849146,
  'history': <pypesto.objective.history.History at 0x7fefee65a990>,
  'exitflag': 0,
  'time': 0.01163339614868164,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '17',
  'x': array([1.00000014, 1.00000006, 1.00000012, 1.00000002, 0.99999972,
         0.99999976, 0.99999924, 0.9999986 , 0.99999728, 0.99999457]),
  'fval': 5.187501773111393e-11,
  'grad': array([ 8.98076519e-05, -4.45109249e-05,  8.61160519e-05,  8.83761172e-05,
         -1.98032428e-04,  1.80982671e-04, -1.05227326e-04, -1.64856814e-05,
          1.06897803e-05,  1.09849767e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 99,
  'n_grad': 99,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000014, 1.00000006, 1.00000012, 1.00000002, 0.99999972,
         0.99999976, 0.99999924, 0.9999986 , 0.99999728, 0.99999457]),
  'fval0': 164257.74387447865,
  'history': <pypesto.objective.history.History at 0x7fefee65a950>,
  'exitflag': 0,
  'time': 0.013841629028320312,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '13',
  'x': array([1.00000009, 1.00000004, 1.00000001, 1.0000001 , 1.00000019,
         1.00000029, 1.00000006, 1.00000059, 1.00000094, 1.00000194]),
  'fval': 6.113882079371062e-11,
  'grad': array([ 5.38201966e-05,  1.12643005e-06, -4.79180197e-05,  1.70876435e-05,
          3.76896795e-05,  1.90462489e-04, -2.94335966e-04,  1.92128181e-04,
         -7.02675278e-05,  1.21112443e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 84,
  'n_grad': 84,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000009, 1.00000004, 1.00000001, 1.0000001 , 1.00000019,
         1.00000029, 1.00000006, 1.00000059, 1.00000094, 1.00000194]),
  'fval0': 128057.90608516608,
  'history': <pypesto.objective.history.History at 0x7fefee65a850>,
  'exitflag': 0,
  'time': 0.011581659317016602,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '9',
  'x': array([1.0000003 , 1.00000024, 0.99999999, 0.99999981, 0.99999975,
         0.99999984, 1.00000003, 1.00000007, 1.00000014, 1.00000029]),
  'fval': 6.603657918190325e-11,
  'grad': array([ 1.45585786e-04,  1.26131400e-04, -3.15965052e-05, -8.20696700e-05,
         -1.17487544e-04, -6.42577094e-05,  5.98749705e-05,  4.78675947e-06,
         -7.72296480e-06,  3.75853482e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 83,
  'n_grad': 83,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.0000003 , 1.00000024, 0.99999999, 0.99999981, 0.99999975,
         0.99999984, 1.00000003, 1.00000007, 1.00000014, 1.00000029]),
  'fval0': 66001.21516931924,
  'history': <pypesto.objective.history.History at 0x7ff00035a3d0>,
  'exitflag': 0,
  'time': 0.012688159942626953,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '19',
  'x': array([1.00000001, 1.        , 0.99999996, 0.99999988, 1.00000026,
         1.00000032, 1.00000033, 1.00000085, 1.00000187, 1.00000333]),
  'fval': 6.709274183733498e-11,
  'grad': array([ 8.70631729e-06,  9.70587008e-06,  1.05693559e-05, -2.12546166e-04,
          1.84978271e-04,  8.28659608e-05, -1.39703429e-04, -2.30820323e-05,
          1.96299302e-04, -8.02670983e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 67,
  'n_grad': 67,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 1.        , 0.99999996, 0.99999988, 1.00000026,
         1.00000032, 1.00000033, 1.00000085, 1.00000187, 1.00000333]),
  'fval0': 80442.06208067665,
  'history': <pypesto.objective.history.History at 0x7fefee65a9d0>,
  'exitflag': 0,
  'time': 0.008251428604125977,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '10',
  'x': array([0.9999998 , 1.00000012, 0.99999997, 1.00000017, 1.00000028,
         1.00000037, 1.0000004 , 1.0000005 , 1.00000069, 1.00000195]),
  'fval': 1.065068443513822e-10,
  'grad': array([-2.07797214e-04,  2.08384202e-04, -1.40258436e-04,  6.72135025e-05,
          6.29120089e-05,  9.92424271e-05,  5.28220148e-05,  6.30692991e-05,
         -2.90590939e-04,  1.15498187e-04]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 135,
  'n_grad': 135,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.9999998 , 1.00000012, 0.99999997, 1.00000017, 1.00000028,
         1.00000037, 1.0000004 , 1.0000005 , 1.00000069, 1.00000195]),
  'fval0': 218642.53588542074,
  'history': <pypesto.objective.history.History at 0x7fefee65a510>,
  'exitflag': 0,
  'time': 0.017060041427612305,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '6',
  'x': array([1.00000009, 0.9999998 , 1.00000026, 1.00000009, 1.00000031,
         1.00000016, 1.00000029, 1.00000052, 1.00000131, 1.00000213]),
  'fval': 1.3507352118480165e-10,
  'grad': array([ 1.50715573e-04, -3.42587714e-04,  3.08461493e-04, -1.41826830e-04,
          2.10332130e-04, -7.64162802e-05,  1.68271418e-05, -1.20534088e-04,
          2.55005501e-04, -9.87312659e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 86,
  'n_grad': 86,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000009, 0.9999998 , 1.00000026, 1.00000009, 1.00000031,
         1.00000016, 1.00000029, 1.00000052, 1.00000131, 1.00000213]),
  'fval0': 49550.65276671963,
  'history': <pypesto.objective.history.History at 0x7fefef785510>,
  'exitflag': 0,
  'time': 0.012197017669677734,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '14',
  'x': array([1.00000021, 0.99999999, 0.99999968, 0.99999939, 0.99999938,
         0.99999947, 0.9999996 , 0.99999955, 0.99999928, 0.99999839]),
  'fval': 1.76508815611245e-10,
  'grad': array([ 1.69974542e-04,  3.68276755e-05, -7.46786006e-05, -2.36880611e-04,
         -1.60596472e-04, -1.26090555e-04, -5.76633224e-06, -1.01269226e-06,
          9.59426070e-05, -3.14643190e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 94,
  'n_grad': 94,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000021, 0.99999999, 0.99999968, 0.99999939, 0.99999938,
         0.99999947, 0.9999996 , 0.99999955, 0.99999928, 0.99999839]),
  'fval0': 113189.5063880412,
  'history': <pypesto.objective.history.History at 0x7fefee65a890>,
  'exitflag': 0,
  'time': 0.010685205459594727,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '7',
  'x': array([1.00000001, 1.00000008, 1.00000032, 0.9999997 , 0.99999988,
         0.9999994 , 0.99999945, 0.99999874, 0.9999976 , 0.99999541]),
  'fval': 1.8629501787028135e-10,
  'grad': array([-1.89690853e-05, -5.75176850e-05,  4.08684636e-04, -3.79119426e-04,
          2.41840701e-04, -3.35502015e-04,  1.94400780e-04, -8.41625352e-05,
         -6.36788959e-05,  4.17276302e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 86,
  'n_grad': 86,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 1.00000008, 1.00000032, 0.9999997 , 0.99999988,
         0.9999994 , 0.99999945, 0.99999874, 0.9999976 , 0.99999541]),
  'fval0': 275340.0482345366,
  'history': <pypesto.objective.history.History at 0x7fefee65a550>,
  'exitflag': 0,
  'time': 0.011858463287353516,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '5',
  'x': array([1.00000063, 1.00000079, 1.00000065, 1.00000046, 1.00000018,
         0.99999966, 0.99999884, 0.99999747, 0.99999501, 0.99999004]),
  'fval': 3.4686626972583124e-10,
  'grad': array([ 1.88621968e-04,  2.82853573e-04,  1.47613974e-04,  1.32427091e-04,
          1.34368505e-04,  4.58042858e-05, -1.05802446e-05, -7.23486331e-05,
         -8.94165854e-06,  5.57700990e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 98,
  'n_grad': 98,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000063, 1.00000079, 1.00000065, 1.00000046, 1.00000018,
         0.99999966, 0.99999884, 0.99999747, 0.99999501, 0.99999004]),
  'fval0': 95086.57486034792,
  'history': <pypesto.objective.history.History at 0x7fefee65a650>,
  'exitflag': 0,
  'time': 0.013525247573852539,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '12',
  'x': array([0.99999993, 1.00000061, 1.00000043, 0.9999998 , 1.00000026,
         1.00000048, 1.00000068, 1.00000084, 1.00000215, 1.00000338]),
  'fval': 4.2760857236608074e-10,
  'grad': array([-0.0003034 ,  0.00046938,  0.00026867, -0.00047909,  0.00014639,
          0.00010591,  0.00015162, -0.00028974,  0.00047086, -0.00018617]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 77,
  'n_grad': 77,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999993, 1.00000061, 1.00000043, 0.9999998 , 1.00000026,
         1.00000048, 1.00000068, 1.00000084, 1.00000215, 1.00000338]),
  'fval0': 278737.0766282746,
  'history': <pypesto.objective.history.History at 0x7fefee65a710>,
  'exitflag': 0,
  'time': 0.010965824127197266,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '1',
  'x': array([0.99999964, 1.00000006, 0.99999975, 1.00000012, 0.99999977,
         0.99999967, 0.99999847, 0.99999623, 0.9999936 , 0.99998718]),
  'fval': 4.4824491354324123e-10,
  'grad': array([-3.15440907e-04,  3.04897788e-04, -3.24323195e-04,  3.10014361e-04,
         -1.40439929e-04,  3.69237832e-04,  1.05035392e-04, -6.01846648e-04,
          2.19479487e-04, -2.71116767e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 81,
  'n_grad': 81,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999964, 1.00000006, 0.99999975, 1.00000012, 0.99999977,
         0.99999967, 0.99999847, 0.99999623, 0.9999936 , 0.99998718]),
  'fval0': 231983.4016462493,
  'history': <pypesto.objective.history.History at 0x7ff030770110>,
  'exitflag': 0,
  'time': 0.022760868072509766,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '15',
  'x': array([-0.99326331,  0.99660594,  0.99824067,  0.9989884 ,  0.99922624,
          0.99907383,  0.99845405,  0.99705586,  0.9941786 ,  0.98839115]),
  'fval': 3.9865791123861647,
  'grad': array([ 1.37836191e-05, -9.56428278e-05,  1.15714471e-04, -9.46304780e-05,
          2.76772792e-05,  1.99653191e-04, -4.63338544e-05, -2.78221136e-05,
         -2.26556385e-05,  1.07817815e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 72,
  'n_grad': 72,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326331,  0.99660594,  0.99824067,  0.9989884 ,  0.99922624,
          0.99907383,  0.99845405,  0.99705586,  0.9941786 ,  0.98839115]),
  'fval0': 117406.38350731946,
  'history': <pypesto.objective.history.History at 0x7fefee65a8d0>,
  'exitflag': 0,
  'time': 0.01103520393371582,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '2',
  'x': array([-0.99326315,  0.99660609,  0.99824021,  0.99898815,  0.99922624,
          0.99907353,  0.99845395,  0.99705588,  0.99417909,  0.98839179]),
  'fval': 3.986579112503477,
  'grad': array([ 1.91428162e-04,  2.94649756e-04, -3.04516493e-04, -1.62074006e-04,
          2.52224941e-04, -6.28043726e-05, -3.29243223e-05, -1.67555012e-04,
          1.96809844e-04, -5.29321104e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 78,
  'n_grad': 78,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326315,  0.99660609,  0.99824021,  0.99898815,  0.99922624,
          0.99907353,  0.99845395,  0.99705588,  0.99417909,  0.98839179]),
  'fval0': 90060.0282425554,
  'history': <pypesto.objective.history.History at 0x7fefee6d19d0>,
  'exitflag': 0,
  'time': 0.016544103622436523,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '3',
  'x': array([-0.99326274,  0.99660589,  0.99824031,  0.99898835,  0.99922654,
          0.99907324,  0.99845446,  0.99705616,  0.99417916,  0.98839222]),
  'fval': 3.9865791128374686,
  'grad': array([ 4.43724847e-04,  2.30363468e-04, -2.12480723e-04, -1.17788491e-04,
          5.86174712e-04, -6.78812087e-04,  4.85626746e-04, -1.17917644e-04,
         -1.48260191e-05,  3.53218137e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 68,
  'n_grad': 68,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326274,  0.99660589,  0.99824031,  0.99898835,  0.99922654,
          0.99907324,  0.99845446,  0.99705616,  0.99417916,  0.98839222]),
  'fval0': 58537.15752301021,
  'history': <pypesto.objective.history.History at 0x7ff0003b3c90>,
  'exitflag': 0,
  'time': 0.007930994033813477,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'}]

Plot results

[5]:
import pypesto.visualize

# plot waterfalls
pypesto.visualize.waterfall(result, size=(15,6))
[5]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fefef14a310>
../_images/example_hdf5_storage_result_8_1.png

Save optimization result as HDF5 file

[6]:
fn = tempfile.mktemp(".hdf5")

# Write result
hdf5_writer = save_to_hdf5.OptimizationResultHDF5Writer(fn)
hdf5_writer.write(result)

# Write problem
hdf5_writer = save_to_hdf5.ProblemHDF5Writer(fn)
hdf5_writer.write(problem)
[7]:
# Read result and problem
hdf5_reader = read_from_hdf5.OptimizationResultHDF5Reader(fn)
result = hdf5_reader.read()
[8]:
result.optimize_result.list
[8]:
[{'id': '8',
  'x': array([1.00000001, 0.99999999, 0.99999997, 0.99999998, 0.99999998,
         0.99999999, 0.99999996, 0.99999987, 0.99999971, 0.9999995 ]),
  'fval': 1.4448869867069234e-12,
  'grad': array([ 9.91613312e-06, -2.33793663e-07, -1.84487477e-05, -1.24826804e-06,
         -7.03416051e-06,  1.12040576e-05,  1.88713028e-05, -4.68014961e-07,
         -3.65179645e-05,  1.53152743e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 73,
  'n_grad': 73,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 0.99999999, 0.99999997, 0.99999998, 0.99999998,
         0.99999999, 0.99999996, 0.99999987, 0.99999971, 0.9999995 ]),
  'fval0': 116315.16334351365,
  'history': None,
  'exitflag': 0,
  'time': 0.010613441467285156,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '16',
  'x': array([0.99999994, 0.99999998, 1.        , 1.00000002, 1.00000004,
         1.00000001, 1.        , 1.00000012, 1.0000003 , 1.00000051]),
  'fval': 4.371307796809753e-12,
  'grad': array([-4.26293148e-05,  9.13631144e-06, -1.31339486e-06,  2.51280250e-06,
          2.59501842e-05,  4.21294205e-07, -5.58158396e-05,  7.08567852e-07,
          4.41611237e-05, -1.57413407e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 79,
  'n_grad': 79,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999994, 0.99999998, 1.        , 1.00000002, 1.00000004,
         1.00000001, 1.        , 1.00000012, 1.0000003 , 1.00000051]),
  'fval0': 127542.57197202934,
  'history': None,
  'exitflag': 0,
  'time': 0.011748075485229492,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '4',
  'x': array([1.00000007, 0.99999999, 0.99999998, 1.        , 1.00000008,
         1.00000021, 1.00000015, 1.00000006, 1.00000004, 1.00000013]),
  'fval': 1.7134261938953258e-11,
  'grad': array([ 5.79464879e-05, -3.23661397e-05, -1.13616716e-05, -2.69343079e-05,
         -1.67474293e-06,  1.20454131e-04,  3.83436764e-05, -1.71072644e-05,
         -3.54339727e-05,  1.03840629e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 88,
  'n_grad': 88,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000007, 0.99999999, 0.99999998, 1.        , 1.00000008,
         1.00000021, 1.00000015, 1.00000006, 1.00000004, 1.00000013]),
  'fval0': 169143.33089007522,
  'history': None,
  'exitflag': 0,
  'time': 0.016152620315551758,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '11',
  'x': array([0.99999983, 0.99999997, 0.99999989, 0.9999998 , 1.00000006,
         0.99999986, 0.99999963, 0.99999927, 0.99999861, 0.99999709]),
  'fval': 4.473573948366185e-11,
  'grad': array([-1.25925183e-04,  8.34342658e-05, -1.58946249e-05, -1.85224905e-04,
          2.00742516e-04, -1.80384056e-05, -1.83734314e-05, -2.93938826e-05,
          5.98755497e-05, -2.43744695e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 78,
  'n_grad': 78,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999983, 0.99999997, 0.99999989, 0.9999998 , 1.00000006,
         0.99999986, 0.99999963, 0.99999927, 0.99999861, 0.99999709]),
  'fval0': 111440.55513257613,
  'history': None,
  'exitflag': 0,
  'time': 0.009877920150756836,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '0',
  'x': array([1.00000016, 1.00000029, 1.00000013, 1.00000007, 0.99999984,
         0.99999968, 0.99999955, 0.99999932, 0.99999871, 0.99999745]),
  'fval': 4.512690733773355e-11,
  'grad': array([ 6.88017381e-06,  1.82437618e-04, -1.71219792e-05,  7.83029016e-05,
         -5.64629619e-05, -7.75613657e-05, -5.33124129e-05,  2.00358870e-05,
         -3.38990540e-06,  6.36234430e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 80,
  'n_grad': 80,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000016, 1.00000029, 1.00000013, 1.00000007, 0.99999984,
         0.99999968, 0.99999955, 0.99999932, 0.99999871, 0.99999745]),
  'fval0': 179787.03971937217,
  'history': None,
  'exitflag': 0,
  'time': 0.05712604522705078,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '18',
  'x': array([0.9999999 , 0.99999988, 1.00000002, 1.00000017, 1.00000034,
         1.00000045, 1.00000052, 1.00000076, 1.00000146, 1.00000315]),
  'fval': 4.530338040953872e-11,
  'grad': array([-3.46616032e-05, -8.55052094e-05,  4.32179353e-06,  2.27795791e-05,
          8.77325561e-05,  1.11150847e-04,  4.14626291e-05, -3.72317820e-05,
         -9.65698380e-05,  4.47893709e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 85,
  'n_grad': 85,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.9999999 , 0.99999988, 1.00000002, 1.00000017, 1.00000034,
         1.00000045, 1.00000052, 1.00000076, 1.00000146, 1.00000315]),
  'fval0': 84246.35907849146,
  'history': None,
  'exitflag': 0,
  'time': 0.01163339614868164,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '17',
  'x': array([1.00000014, 1.00000006, 1.00000012, 1.00000002, 0.99999972,
         0.99999976, 0.99999924, 0.9999986 , 0.99999728, 0.99999457]),
  'fval': 5.187501773111393e-11,
  'grad': array([ 8.98076519e-05, -4.45109249e-05,  8.61160519e-05,  8.83761172e-05,
         -1.98032428e-04,  1.80982671e-04, -1.05227326e-04, -1.64856814e-05,
          1.06897803e-05,  1.09849767e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 99,
  'n_grad': 99,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000014, 1.00000006, 1.00000012, 1.00000002, 0.99999972,
         0.99999976, 0.99999924, 0.9999986 , 0.99999728, 0.99999457]),
  'fval0': 164257.74387447865,
  'history': None,
  'exitflag': 0,
  'time': 0.013841629028320312,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '13',
  'x': array([1.00000009, 1.00000004, 1.00000001, 1.0000001 , 1.00000019,
         1.00000029, 1.00000006, 1.00000059, 1.00000094, 1.00000194]),
  'fval': 6.113882079371062e-11,
  'grad': array([ 5.38201966e-05,  1.12643005e-06, -4.79180197e-05,  1.70876435e-05,
          3.76896795e-05,  1.90462489e-04, -2.94335966e-04,  1.92128181e-04,
         -7.02675278e-05,  1.21112443e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 84,
  'n_grad': 84,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000009, 1.00000004, 1.00000001, 1.0000001 , 1.00000019,
         1.00000029, 1.00000006, 1.00000059, 1.00000094, 1.00000194]),
  'fval0': 128057.90608516608,
  'history': None,
  'exitflag': 0,
  'time': 0.011581659317016602,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '9',
  'x': array([1.0000003 , 1.00000024, 0.99999999, 0.99999981, 0.99999975,
         0.99999984, 1.00000003, 1.00000007, 1.00000014, 1.00000029]),
  'fval': 6.603657918190325e-11,
  'grad': array([ 1.45585786e-04,  1.26131400e-04, -3.15965052e-05, -8.20696700e-05,
         -1.17487544e-04, -6.42577094e-05,  5.98749705e-05,  4.78675947e-06,
         -7.72296480e-06,  3.75853482e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 83,
  'n_grad': 83,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.0000003 , 1.00000024, 0.99999999, 0.99999981, 0.99999975,
         0.99999984, 1.00000003, 1.00000007, 1.00000014, 1.00000029]),
  'fval0': 66001.21516931924,
  'history': None,
  'exitflag': 0,
  'time': 0.012688159942626953,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '19',
  'x': array([1.00000001, 1.        , 0.99999996, 0.99999988, 1.00000026,
         1.00000032, 1.00000033, 1.00000085, 1.00000187, 1.00000333]),
  'fval': 6.709274183733498e-11,
  'grad': array([ 8.70631729e-06,  9.70587008e-06,  1.05693559e-05, -2.12546166e-04,
          1.84978271e-04,  8.28659608e-05, -1.39703429e-04, -2.30820323e-05,
          1.96299302e-04, -8.02670983e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 67,
  'n_grad': 67,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 1.        , 0.99999996, 0.99999988, 1.00000026,
         1.00000032, 1.00000033, 1.00000085, 1.00000187, 1.00000333]),
  'fval0': 80442.06208067665,
  'history': None,
  'exitflag': 0,
  'time': 0.008251428604125977,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '10',
  'x': array([0.9999998 , 1.00000012, 0.99999997, 1.00000017, 1.00000028,
         1.00000037, 1.0000004 , 1.0000005 , 1.00000069, 1.00000195]),
  'fval': 1.065068443513822e-10,
  'grad': array([-2.07797214e-04,  2.08384202e-04, -1.40258436e-04,  6.72135025e-05,
          6.29120089e-05,  9.92424271e-05,  5.28220148e-05,  6.30692991e-05,
         -2.90590939e-04,  1.15498187e-04]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 135,
  'n_grad': 135,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.9999998 , 1.00000012, 0.99999997, 1.00000017, 1.00000028,
         1.00000037, 1.0000004 , 1.0000005 , 1.00000069, 1.00000195]),
  'fval0': 218642.53588542074,
  'history': None,
  'exitflag': 0,
  'time': 0.017060041427612305,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '6',
  'x': array([1.00000009, 0.9999998 , 1.00000026, 1.00000009, 1.00000031,
         1.00000016, 1.00000029, 1.00000052, 1.00000131, 1.00000213]),
  'fval': 1.3507352118480165e-10,
  'grad': array([ 1.50715573e-04, -3.42587714e-04,  3.08461493e-04, -1.41826830e-04,
          2.10332130e-04, -7.64162802e-05,  1.68271418e-05, -1.20534088e-04,
          2.55005501e-04, -9.87312659e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 86,
  'n_grad': 86,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000009, 0.9999998 , 1.00000026, 1.00000009, 1.00000031,
         1.00000016, 1.00000029, 1.00000052, 1.00000131, 1.00000213]),
  'fval0': 49550.65276671963,
  'history': None,
  'exitflag': 0,
  'time': 0.012197017669677734,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '14',
  'x': array([1.00000021, 0.99999999, 0.99999968, 0.99999939, 0.99999938,
         0.99999947, 0.9999996 , 0.99999955, 0.99999928, 0.99999839]),
  'fval': 1.76508815611245e-10,
  'grad': array([ 1.69974542e-04,  3.68276755e-05, -7.46786006e-05, -2.36880611e-04,
         -1.60596472e-04, -1.26090555e-04, -5.76633224e-06, -1.01269226e-06,
          9.59426070e-05, -3.14643190e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 94,
  'n_grad': 94,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000021, 0.99999999, 0.99999968, 0.99999939, 0.99999938,
         0.99999947, 0.9999996 , 0.99999955, 0.99999928, 0.99999839]),
  'fval0': 113189.5063880412,
  'history': None,
  'exitflag': 0,
  'time': 0.010685205459594727,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '7',
  'x': array([1.00000001, 1.00000008, 1.00000032, 0.9999997 , 0.99999988,
         0.9999994 , 0.99999945, 0.99999874, 0.9999976 , 0.99999541]),
  'fval': 1.8629501787028135e-10,
  'grad': array([-1.89690853e-05, -5.75176850e-05,  4.08684636e-04, -3.79119426e-04,
          2.41840701e-04, -3.35502015e-04,  1.94400780e-04, -8.41625352e-05,
         -6.36788959e-05,  4.17276302e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 86,
  'n_grad': 86,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000001, 1.00000008, 1.00000032, 0.9999997 , 0.99999988,
         0.9999994 , 0.99999945, 0.99999874, 0.9999976 , 0.99999541]),
  'fval0': 275340.0482345366,
  'history': None,
  'exitflag': 0,
  'time': 0.011858463287353516,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '5',
  'x': array([1.00000063, 1.00000079, 1.00000065, 1.00000046, 1.00000018,
         0.99999966, 0.99999884, 0.99999747, 0.99999501, 0.99999004]),
  'fval': 3.4686626972583124e-10,
  'grad': array([ 1.88621968e-04,  2.82853573e-04,  1.47613974e-04,  1.32427091e-04,
          1.34368505e-04,  4.58042858e-05, -1.05802446e-05, -7.23486331e-05,
         -8.94165854e-06,  5.57700990e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 98,
  'n_grad': 98,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([1.00000063, 1.00000079, 1.00000065, 1.00000046, 1.00000018,
         0.99999966, 0.99999884, 0.99999747, 0.99999501, 0.99999004]),
  'fval0': 95086.57486034792,
  'history': None,
  'exitflag': 0,
  'time': 0.013525247573852539,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '12',
  'x': array([0.99999993, 1.00000061, 1.00000043, 0.9999998 , 1.00000026,
         1.00000048, 1.00000068, 1.00000084, 1.00000215, 1.00000338]),
  'fval': 4.2760857236608074e-10,
  'grad': array([-0.0003034 ,  0.00046938,  0.00026867, -0.00047909,  0.00014639,
          0.00010591,  0.00015162, -0.00028974,  0.00047086, -0.00018617]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 77,
  'n_grad': 77,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999993, 1.00000061, 1.00000043, 0.9999998 , 1.00000026,
         1.00000048, 1.00000068, 1.00000084, 1.00000215, 1.00000338]),
  'fval0': 278737.0766282746,
  'history': None,
  'exitflag': 0,
  'time': 0.010965824127197266,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '1',
  'x': array([0.99999964, 1.00000006, 0.99999975, 1.00000012, 0.99999977,
         0.99999967, 0.99999847, 0.99999623, 0.9999936 , 0.99998718]),
  'fval': 4.4824491354324123e-10,
  'grad': array([-3.15440907e-04,  3.04897788e-04, -3.24323195e-04,  3.10014361e-04,
         -1.40439929e-04,  3.69237832e-04,  1.05035392e-04, -6.01846648e-04,
          2.19479487e-04, -2.71116767e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 81,
  'n_grad': 81,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([0.99999964, 1.00000006, 0.99999975, 1.00000012, 0.99999977,
         0.99999967, 0.99999847, 0.99999623, 0.9999936 , 0.99998718]),
  'fval0': 231983.4016462493,
  'history': None,
  'exitflag': 0,
  'time': 0.022760868072509766,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '15',
  'x': array([-0.99326331,  0.99660594,  0.99824067,  0.9989884 ,  0.99922624,
          0.99907383,  0.99845405,  0.99705586,  0.9941786 ,  0.98839115]),
  'fval': 3.9865791123861647,
  'grad': array([ 1.37836191e-05, -9.56428278e-05,  1.15714471e-04, -9.46304780e-05,
          2.76772792e-05,  1.99653191e-04, -4.63338544e-05, -2.78221136e-05,
         -2.26556385e-05,  1.07817815e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 72,
  'n_grad': 72,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326331,  0.99660594,  0.99824067,  0.9989884 ,  0.99922624,
          0.99907383,  0.99845405,  0.99705586,  0.9941786 ,  0.98839115]),
  'fval0': 117406.38350731946,
  'history': None,
  'exitflag': 0,
  'time': 0.01103520393371582,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '2',
  'x': array([-0.99326315,  0.99660609,  0.99824021,  0.99898815,  0.99922624,
          0.99907353,  0.99845395,  0.99705588,  0.99417909,  0.98839179]),
  'fval': 3.986579112503477,
  'grad': array([ 1.91428162e-04,  2.94649756e-04, -3.04516493e-04, -1.62074006e-04,
          2.52224941e-04, -6.28043726e-05, -3.29243223e-05, -1.67555012e-04,
          1.96809844e-04, -5.29321104e-05]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 78,
  'n_grad': 78,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326315,  0.99660609,  0.99824021,  0.99898815,  0.99922624,
          0.99907353,  0.99845395,  0.99705588,  0.99417909,  0.98839179]),
  'fval0': 90060.0282425554,
  'history': None,
  'exitflag': 0,
  'time': 0.016544103622436523,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'},
 {'id': '3',
  'x': array([-0.99326274,  0.99660589,  0.99824031,  0.99898835,  0.99922654,
          0.99907324,  0.99845446,  0.99705616,  0.99417916,  0.98839222]),
  'fval': 3.9865791128374686,
  'grad': array([ 4.43724847e-04,  2.30363468e-04, -2.12480723e-04, -1.17788491e-04,
          5.86174712e-04, -6.78812087e-04,  4.85626746e-04, -1.17917644e-04,
         -1.48260191e-05,  3.53218137e-06]),
  'hess': None,
  'res': None,
  'sres': None,
  'n_fval': 68,
  'n_grad': 68,
  'n_hess': 0,
  'n_res': 0,
  'n_sres': 0,
  'x0': array([-0.99326274,  0.99660589,  0.99824031,  0.99898835,  0.99922654,
          0.99907324,  0.99845446,  0.99705616,  0.99417916,  0.98839222]),
  'fval0': 58537.15752301021,
  'history': None,
  'exitflag': 0,
  'time': 0.007930994033813477,
  'message': b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'}]

Plot results

[9]:
# plot waterfalls
pypesto.visualize.waterfall(result, size=(15,6))
[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fefec49cbd0>
../_images/example_hdf5_storage_result_14_1.png
[10]:
pypesto.visualize.parameters(result,
                            balance_alpha=False)
[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fefebca04d0>
../_images/example_hdf5_storage_result_15_1.png
[ ]: