def __init__(self, bij, logp, model, dlogp=None): try: from IPython.display import display from ipywidgets import HTML, VBox, HBox, FlexBox self.prog_table = HTML(width='100%') self.param_table = HTML(width='100%') r_col = VBox(children=[self.param_table], padding=3, width='100%') l_col = HBox(children=[self.prog_table], padding=3, width='25%') self.hor_align = FlexBox(children = [l_col, r_col], width='100%', orientation='vertical') display(self.hor_align) self.using_notebook = True self.update_interval = 1 except: self.using_notebook = False self.update_interval = 2 self.iters = 0 self.bij = bij self.model = model self.fn = model.fastfn(model.unobserved_RVs) self.logp = logp self.dlogp = dlogp self.t_initial = time.time() self.t0 = self.t_initial self.paramtable = {}
def __init__(self, model, opt, maxiters, verbose=False, current_iteration=0, ipython_notebook=True, clear_after_finish=False): self.verbose = verbose if self.verbose: self.model = model self.iteration = current_iteration self.p_iter = self.iteration self.maxiters = maxiters self.len_maxiters = len(str(int(maxiters))) self.opt_name = opt.opt_name self.opt = opt self.model.add_observer(self, self.print_status) self.status = 'running' self.clear = clear_after_finish self.update() try: # pragma: no cover from IPython.display import display from ipywidgets import IntProgress, HTML, Box, VBox, HBox, FlexBox self.text = HTML(width='100%') self.progress = IntProgress(min=0, max=maxiters) #self.progresstext = Text(width='100%', disabled=True, value='0/{}'.format(maxiters)) self.model_show = HTML() self.ipython_notebook = ipython_notebook except: # Not in Ipython notebook self.ipython_notebook = False if self.ipython_notebook: # pragma: no cover left_col = VBox(children=[self.progress, self.text], padding=2, width='40%') right_col = Box(children=[self.model_show], padding=2, width='60%') self.hor_align = FlexBox(children=[left_col, right_col], width='100%', orientation='horizontal') display(self.hor_align) try: self.text.set_css('width', '100%') left_col.set_css({ 'padding': '2px', 'width': "100%", }) right_col.set_css({ 'padding': '2px', }) self.hor_align.set_css({ 'width': "100%", }) self.hor_align.remove_class('vbox') self.hor_align.add_class('hbox') left_col.add_class("box-flex1") right_col.add_class('box-flex0') except: pass #self.text.add_class('box-flex2') #self.progress.add_class('box-flex1') else: self.exps = exponents(self.fnow, self.current_gradient) print('Running {} Code:'.format(self.opt_name)) print(' {3:7s} {0:{mi}s} {1:11s} {2:11s}'.format( "i", "f", "|g|", "runtime", mi=self.len_maxiters))