Source code for threeML.config.fitting_structure

from dataclasses import dataclass, field
from enum import Enum, Flag
from typing import Any, Dict, List, Optional

import numpy as np
import matplotlib.pyplot as plt
from omegaconf import II, MISSING, SI, OmegaConf

from .plotting_structure import CornerStyle, MPLCmap


[docs] class Sampler(Enum): emcee = "emcee" multinest = "multinest" zeus = "zeus" dynesty_nested = "dynesty_nested" dynesty_dynamic = "dynesty_dynamic" ultranest = "ultranest" autoemcee = "autoemcee"
_sampler_default = {'emcee': {'n_burnin': 1}}
[docs] class Optimizer(Enum): minuit = "minuit" scipy = "scipy" ROOT = "ROOT"
[docs] @dataclass class BayesianDefault: use_median_fit: bool = False default_sampler: Sampler = Sampler.emcee emcee_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: {'n_burnin': None, 'n_iterations': 500, "n_walkers": 50, "seed": 5123}) multinest_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: {'n_live_points': 400, 'chain_name': "chains/fit-", "resume": False, "importance_nested_sampling": False, "auto_clean": False, }) ultranest_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: { "min_num_live_points":400, "dlogz":0.5, "dKL": 0.5, "frac_remain": 0.01, "Lepsilon": 0.001, "min_ess": 400, "update_interval_volume_fraction":0.8, "cluster_num_live_points":40, "use_mlfriends": True, "resume": 'overwrite' } ) zeus_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: {'n_burnin': None, 'n_iterations': 500, "n_walkers": 50, "seed": 5123}) dynesty_nested_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: { "n_live_points": 400, "maxiter": None, "maxcall": None, "dlogz": None, "logl_max": np.inf, "n_effective": None, "add_live": True, "print_func": None, "save_bounds":True, "bound":"multi", "wrapped_params": None, "sample": "auto", "periodic": None, "reflective": None, "update_interval": None, "first_update": None, "npdim": None, "rstate": None, "use_pool": None, "live_points": None, "logl_args": None, "logl_kwargs": None, "ptform_args": None, "ptform_kwargs": None, "gradient": None, "grad_args": None, "grad_kwargs": None, "compute_jac": False, "enlarge": None, "bootstrap": 0, "vol_dec": 0.5, "vol_check": 2.0, "walks": 25, "facc": 0.5, "slices": 5, "fmove": 0.9, "max_move": 100, "update_func": None, }) dynesty_dynmaic_setup: Optional[Dict[str, Any]] = field( default_factory=lambda: { "nlive_init": 500, "maxiter_init": None, "maxcall_init": None, "dlogz_init": 0.01, "logl_max_init": np.inf, "n_effective_init": np.inf, "nlive_batch": 500, "wt_function": None, "wt_kwargs": None, "maxiter_batch": None, "maxcall_batch": None, "maxiter": None, "maxcall": None, "maxbatch": None, "n_effective": np.inf, "stop_function": None, "stop_kwargs": None, "use_stop": True, "save_bounds": True, "print_func": None, "live_points": None, "bound":"multi", "wrapped_params": None, "sample":"auto", "periodic": None, "reflective": None, "update_interval": None, "first_update": None, "npdim": None, "rstate": None, "use_pool": None, "logl_args": None, "logl_kwargs": None, "ptform_args": None, "ptform_kwargs": None, "gradient": None, "grad_args": None, "grad_kwargs": None, "compute_jac": False, "enlarge": None, "bootstrap": 0, "vol_dec": 0.5, "vol_check": 2.0, "walks": 25, "facc": 0.5, "slices": 5, "fmove": 0.9, "max_move": 100, "update_func": None, }) corner_style: CornerStyle =CornerStyle()
[docs] @dataclass class MLEDefault: default_minimizer: Optimizer = Optimizer.minuit default_minimizer_algorithm: Optional[str] = None default_minimizer_callback: Optional[str] = None contour_cmap: MPLCmap = MPLCmap.Pastel1 contour_background: str = 'white' contour_level_1: str = '#ffa372' contour_level_2: str = '#ed6663' contour_level_3: str = '#0f4c81' profile_color: str = 'k' profile_level_1: str = '#ffa372' profile_level_2: str = '#ed6663' profile_level_3: str = '#0f4c81'