Customize ini file
The ini file
to SimpleMC
configuration must have a module [custom]
and according to the selected analyzer can have several modules: [mcmc]
, [nested]
, [neural]
, [neuralike]
, [MaxLikeAnalyzer]
, [emcee]
, [genetic]
, [ga_deap]
. In this section, we explain each of them. To more details about analyzers, pleas visit the Analyzer sections.
[custom]
Requiered keys:
model
: visit Models section to see the options.datasets
: visit Data section to see all the datasets options.
Other keys:
analyzer
: mcmc, nested, genetic, MaxLikeAnalyzer, ga_deap. By default: mcmc.chainsdir
: directory to save the outputs. By defaultsimplemc/chain
.
Example:
[custom] chainsdir = chains model = LCDM datasets = BBAO+HD+SN analyzer = mcmc
[mcmc]
- Keys:
nsamp: number of steps.
skip: burn-in samples.
temp: temperature.
chainno: number of chains.
addderived: If you want to add derived parameters such as the age of the Universe.
Example:
[mcmc] nsamp = 4000 skip = 100 temp = 2 chainno = 1 addderived = False
[nested]
- Keys:
dynamic: If you want dynamic nested sampling.
neuralNetwork: if you can to use neural network to speed-up the process. Currently only works for one processor.
nestedType: nested sampling algorithm, can be {‘single’,’multi’, ‘balls’, ‘cubes’}.
nlivepoints: number of live points.
accuracy: difference of Bayesian evidence between two iterations that indicates the stopping criterion.
priortype: u->uniform, g->gaussian.
nproc: number of processors.
Example
dynamic = no neuralNetwork = no nestedType = multi nlivepoints = 500 accuracy = 0.01 priortype = u nproc = 0
[neural]
At the current time, this block only have sense if analyzer is nested and if nproc=1.
- Keys:
numNeurons: number of neurons of the three hidden layers.
epochs: number of epochs.
dlogz_start: value of dlogz to start to train the neural net.
it_to_start_net: iterations to start the trainning.
updInt: number of iterations to re-train the neural net.
Example:
[neural] numNeurons = 50 epochs = 100 dlogz_start = 5 it_to_start_net = 10000 updInt = 500
baseConfig.ini
[custom]
;directory for chains/output
;it is better if you set an absolute path
chainsdir = simplemc/chains
;set model
;model options: LCDM, LCDMasslessnu, nuLCDM, NeffLCDM, noradLCDM, nuoLCDM,
;nuwLCDM, oLCDM, wCDM, waCDM, owCDM, owaCDM, JordiCDM, WeirdCDM, TLight, StepCDM,
;Spline, PolyCDM, fPolyCDM, Decay, Decay01, Decay05, EarlyDE, EarlyDE_rd_DE, SlowRDE, sline
;more options located in the RunBase.py
model = LCDM
;prefact options : [pre, phy]
prefact = phy
;varys8 True otherwise s8=0.8
varys8 = False
;set datasets used. Ex: UnionSN+BBAO+Planck
;data options: HD, BBAO, GBAO, GBAO_no6dF, CMASS, LBAO, LaBAO,
;LxBAO, MGS, Planck, WMAP, PlRd, WRd, PlDa, PlRdx10, CMBW, SN, SNx10, UnionSN,
;RiessH0, 6dFGS, dline, generic
datasets = HD
;following four lines is to use external datasets
;fn can be distance_mod, h, fs8
;datasets = generic
;path_to_data = /home/cosmocicatais/panth15.txt
;path_to_cov = /home/cosmocicatais/panth15cov.txt
;fn = distance_mod
;sampler can be {mcmc, nested, emcee}
;or analyzers {maxlike, genetic, ga_deap}
;
;mcmc -> metropolis-hastings
;nested -> nested sampling
;emcee
;maxlike -> Maximum Likelihood Analyzer
;genetic -> ga_deap (genetic using deap library)
analyzername = mcmc
;add derived parameters (True/False) ,
;i.e. Omega_Lambda, H0, Age of the Universe
addDerived = False
;mcevidence = True to calculate Bayesian evidence wiht mcevidence
;Only valid to samplers (mcmc, emcee, nested).
;Nested sampling does not need it.
mcevidence = True
;overwrite = True -> overwrite output files with the same name
;overwrite = False -> if the outputname already exist
;it sends an error and ends the simplemc execution
overwrite = True
;options to triangle plots for mcmc, nested and emcee;
;if True any of the following options
;.png files will be saved in chainsdir
getdist = False
corner = True
simpleplot = True
;True to display figures; we recommended false
showfig = True
;use neural network to predict likelihoods (True/False),
;edit block neuralike to set options
useNeuralLike = False
[mcmc]
;Nsamples
nsamp = 500
;Burn-in
skip = 0
;temperature at which to sample
temp = 2
; Gelman-Rubin for convergence
GRstop = 0.01
;every number of steps check the GR-criteria
checkGR = 50
;1 if single cpu , otherwise is giving by the nproc-> mpi -np #
chainno = 0
[nested]
;type for dynesty -> {'single','multi', 'balls', 'cubes'}
nestedType = multi
;it is recommended around nlivepoints=50*ndim, recommended 1024
nlivepoints = 50
;recommended 0.01
accuracy =5
;u for flat(uniform) or g for gaussian prior
priortype = u
;when using gaussian prior
sigma = 2
;if nproc = 0 uses mp.cpu_count()//2 by default,
;you can set with another positive integer
nproc = 2
;Produce output on the fly
showfiles = True
;dynamic option is only for dynesty engine
;dynamic and neuralNetwork can be False/True
dynamic = False
neuralNetwork = False
;if neuralNetwork = True, then you can set:
[neural]
;modified bambi
split = 0.8
; keras or nearestneighbour
learner = keras
;all the following options are only for keras learner
; number of neurons of the three hidden layers
numNeurons = 50
; epochs for training
epochs = 100
; number of training points
;ntrain = nlivepoints by default
;dlogz to start to train the neural net (we recommend dlogz_start <=10)
dlogz_start = 5
;number of nested (dynesty) iterations to start to train the neural net
it_to_start_net = 10000
;number of iterations to re-train the neural net. By default updInt = nlivepoints,
;choose updInt <= nlivepoints
;updInt = 500
;proxy_tolerance uncertainity of the net allowed.
proxy_tolerance = 0.3
[neuralike]
;neuralike contains options to use a neural network in likelihood evaluations over the parameter space
ndivsgrid = 4
epochs = 500
learning_rate = 1e-5
batch_size = 16
psplit = 0.8
;hidden_layers_neurons: number of nodes per layer separated by commas
hidden_layers_neurons = 100, 100, 100
;number of procesors to make the grid
nproc = 5
[emcee]
;walkers >= 2*dim
walkers = 10
nsamp = 200
burnin = 0
nproc = 4
[maxlike]
;compute errror from Hessian matrix
;False/True
compute_errors = False
;If withErrors is True
;plot Fisher matrix
show_contours = False
;If showplot is True, then
;2D plot for the parameters:
plot_par1 = h
plot_par2 = Om
;[DerivedParameters]
compute_derived = True
;genetic parameters
[ga_deap]
;Population size
population = 20
;Crossover probability
crossover = 0.7
;Mutation probability
mutation = 0.3
;Max generation number
max_generation = 50
;Size of the Hall of Fame
hof_size = 1
;Crowding factor
crowding_factor = 1
;Plot Generation vs Fitness
plot_fitness = True
;compute errror from Hessian matrix
;False/True
compute_errors = True
;If compute_errors is True
;plot Fisher matrix
show_contours = True
;If show_contours is True, then
;2D plot for the parameters:
plot_param1 = h
plot_param2 = Om
Note
Considerations:
prefact and nsamp are only for Metropolis-Hastings.
nlivepoints and accuracy are only for nested sampling.
sampler options are:
mcmc : Metropolis-Hastings.
nested : Nested Sampling
sampler can be one optimizer of the following:
MaxLikeAnalyzer : from scipy.optimize.minimize
genetic : a Simple Genetic Algorithm
skip is burnin.
For priortype u is uniform prior and g gaussian prior. At this time, only nested sampling accept both of them.
chainsdir is the directory where the chains in a text file and the plots will be saved.