Change Log#
v0.2.8 (21/03/2024)#
CoFI Tools#
Adapt CoFI to new BayesBay API
v0.2.7 (26/02/2024)#
CoFI Tools#
New tool: Neighpy
v0.2.6 (15/02/2024)#
CoFI Utils#
cofi.utils.GaussianPrior
matrix generation aligned with textbooksigma, instead of the square root of it is taken in now
CoFI Tools#
BayesBay adjusted according to API change
v0.2.5 (16/01/2024)#
CoFI Tools#
New tool: BayesBay
v0.2.4 (16/01/2024)#
CoFI Tools#
New tool: CoFI’s implementation of the Border Collie Optimization algorithm
v0.2.3 (31/07/2023)#
CoFI Utils#
A new class,
cofi.utils.EnsembleOfInversions
, has been introduced to replacecofi.utils.run_multiple_inversions
v0.2.2 (17/07/2023)#
CoFI Utils#
cofi.utils.run_multiple_inversions
, sequential and parallel optionsMake
cofi.utils._reg_base.CompositeRegularization
pickleable
v0.2.1 (07/07/2023)#
CoFI Tools#
Better
cofi.simple_newton
solver (more numerically stable; addition of stopping criteria)
v0.2.0 (05/06/2023)#
CoFI Core#
Rewrite
BaseProblem.set_regularization
CoFI Utils#
Rewrite and implement regularization utils:
cofi.utils.BaseRegularization
cofi.utils.LpNormRegularization
cofi.utils.QuadraticReg
cofi.utils.ModelCovariance
cofi.utils.GaussianPrior
v0.1.3.dev2 (05/04/2023)#
CoFI Core#
Bug fix: avoid evaluating log_likelihood if prior is -np.inf
Enable properties set at
BaseProblem
constructor, e.g.cofi.BaseProblem(forward=my_fwd, model_shape=my_shape)
CoFI Tools#
Bug fix in
numpy.linalg.lstsq
v0.1.3.dev1 (15/03/2023)#
CoFI Core#
Use try block for functools.update_wrapper
v0.1.3.dev0 (15/03/2023)#
CoFI Solvers -> CoFI Tools#
#110
BaseSolver
->BaseInferenceTool
CoFI Core#
_base_problem._FunctionWrapper
improvements
v0.1.2.dev25 (06/02/2023)#
CoFI Solvers#
Bug fixes in
BaseSolver
CoFI Utils#
#108 Utility regularization for flattening and smoothing in 1D cases
v0.1.2.dev24 (14/12/2022)#
Infrastructure#
#84 Use versioningit in build process
v0.1.2.dev23 (14/12/2022)#
CoFI Core#
v0.1.2.dev22 (23/11/2022)#
CoFI Core#
CoFI Solvers#
#92 List pytorch optim algorithms dynamically
v0.1.2.dev21 (27/10/2022)#
CoFI Solvers#
torch.optim
return number of function evaluations
accept callback function
return better losses list
add this to docs tree
v0.1.2.dev20 (25/10/2022)#
CoFI Solvers#
Internal bug fix in PyTorch optimizers: adding “success” key in returned dictionary
v0.1.2.dev19 (25/10/2022)#
CoFI Solvers#
In solvers table:
pytorch
->torch.optim
v0.1.2.dev18 (25/10/2022)#
CoFI Solvers#
Adding PyTorch.optim algorithms
v0.1.2.dev17 (19/10/2022)#
CoFI Solvers#
Simple newton
Fix dimension issue
return number of function evaluations
v0.1.2.dev16 (18/10/2022)#
CoFI Core#
#63 Minor restructure of
BaseSolver._assign_options()
Wording change in
BaseProblem.summary()
v0.1.2.dev15 (14/10/2022)#
CoFI Core#
Further explanation in
BaseProblem.summary()
v0.1.2.dev14 (14/10/2022)#
CoFI Core#
Made CoFI pure Python, requires >=3.7
v0.1.2.dev13 (13/10/2022)#
CoFI Core#
Fix
BaseProblem.hessian_times_vector
andBaseProblem.jacobian_times_vector
that are generated from provided hessian / jacobian functions, by squeezing the results to ensure 1D dimensions
CoFI Solvers#
Fix
InversionResult
keys to include underscores (so that attributes can be accessed easily)
v0.1.2.dev12 (10/10/2022)#
CoFI Solvers#
cofi.simple_newton
hide options of line search (until line search is implemented)
prevent
initial_model
from being modified inplace
v0.1.2.dev11 (10/10/2022)#
CoFI Core#
Minor fix (removing debug prints)
#72
set_data_misfit
error message fix
CoFI Utils#
Add
util
tocofi
namespace by importing it
CoFI Solvers#
matrix-based solvers
->matrix solvers
v0.1.2.dev10 (03/10/2022)#
CoFI Core#
CoFI Utils#
#54 Utility functions using findiff to generate the difference matrices
CoFI Solvers#
#68 Optimise special cases in linear system solver
v0.1.2.dev9 (13/09/2022)#
CoFI Core#
Fixed potential problem in auto generated “times vector” functions when input matrix might be of type
numpy.matrix
Enabled possibility for parallelism with emcee, by making user defined functions pickleable
#53 Add set_regularisation(reg, reg_matrix, lamda)
#57 Create our own exception class
#59 Optimize import cofi by not importing cofi.solvers
#61 Remove lambda function from BaseProblem to avoid error in multiprocessing
CoFI Solvers#
#55 Linear solvers with Tikhonov regularisations
v0.1.2.dev8 (13/07/2022)#
Bug fix in
_FunctionWrapper
, for functions with extra arguments likeBaseProblem.hessian_times_vector(m, v)
andBaseProblem.jacobian_times_vector(m, v)
v0.1.2.dev7 (15/06/2022)#
Bug fix in
BaseSolver.model_covariance
v0.1.2.dev6 (15/06/2022)#
Bug fix in
BaseSolver._assign_options
BaseProblem.model_covariance_inv
andBaseProblem.model_covariance
v0.1.2.dev5 (09/06/2022)#
BaseProblem.set_data_covariance
and more general linear system solver
v0.1.2.dev4 (07/06/2022)#
Bugs fix in
EmceeSolver
and result summary
v0.1.2.dev3 (06/06/2022)#
Bug fixed in
BaseProblem.set_regularisation
v0.1.2.dev2 (03/06/2022)#
Added
emcee
as new solver, with the following new APIsBaseProblem.set_log_prior
BaseProblem.set_log_likelihood
,BaseProblem.set_log_posterior
,BaseProblem.set_log_posterior_with_blobs
,BaseProblem.set_blobs_dtype
Process sampler output by converting to
arviz.InferenceData
, with the new API:class
SamplingResult
SamplingResult.to_arviz()
Removed
BaseProblem.set_dataset(x,y)
, addedBaseProblem.set_data(y)
Added args and kwargs for all setting functions in
BaseProblem
_FunctionWrapper
Relaxed python version
>=3.8
to>=3.6
Docs improvement, updated with emcee
v0.1.2.dev1 (16/05/2022)#
bug fixes
v0.1.2.dev0 (13/05/2022)#
InversionRunner
has been changed intoInversion
Added a references list for each backend tool
How much information in
BaseProblem
is used for the inversion run now displayed throughInversion.summary()
numpy
andscipy
versions relaxedSet objective function to be equal to data misfit if regularisation is not set
Better error message when building failed