Skip to content

Releases: ESMS-Group-Public/FoKL-GPy

FoKL 3.4.4

19 Nov 22:04
d2222e5
Compare
Choose a tag to compare
  • .toml fixes

FoKL 3.4.3

19 Nov 21:36
dc4ace6
Compare
Choose a tag to compare
  • Added pyomo as optional dependency: pip install FoKL[pyomo]
  • Updated documentation

FoKL 3.4.2

29 Oct 14:54
7852746
Compare
Choose a tag to compare
  • draws of coefficients no longer re-selected with subsequent evaluate calls
  • draw selection more efficient, should have significant speed upgrade on high draw spaces or single instance evaluate calls (i.e integration)
  • fixed normalization bug where inputs in evaluate were normalized based on themselves and not the trained minmax

FoKL 3.4.1

21 Oct 18:47
40efcc6
Compare
Choose a tag to compare

Embedded GP Update

This update is for the Embedded GP approach. This includes updates to the following

  • Added beta priors with high variance
  • Removed autograd from dependencies
  • Added pandas as a dependency
  • Updated documentation of the Embedded GP tool
  • Updated LICENSE to include all contributors

FoKL 3.4.0

04 Sep 15:47
1aa4716
Compare
Choose a tag to compare
  • Model update methodology integrated into FoKL, see documentation for more details
  • Experimental Embedded GP
  • minax specification
  • normalized RMSE now available in coverage

FoKL 3.3.0

24 Jun 14:37
325ca36
Compare
Choose a tag to compare

Highlights

  • clean() split into _normalize() and _format() to provide more user-friendly normalization methods (e.g., new keywords minmax and pillow, ability to pass non-formatted non-normalized inputs to evaluate())
  • automatic tests of package now included in repo
  • isotherm benchmark comparison added as example
  • FoKL-to-Pyomo method received significant improvements (e.g., user-definable variable names, normalization within Pyomo s.t. variable name refers to true scale value)
  • multiple GP models in Pyomo added as example
  • updated documentation to reflect current changes

What's Changed

Full Changelog: v3.2.4...v3.3.0

FoKL 3.2.4

10 May 22:59
387831d
Compare
Choose a tag to compare
  • patch in 'to_pyomo'

FoKL 3.2.3

09 May 18:31
5e2e902
Compare
Choose a tag to compare

What's Changed

  • Optimized scaling of "Bernoulli Polynomials" basis functions to best align with "Cubic Splines" basis functions while preserving eigenvalue ratios of BSS-ANOVA kernel approaching infinite resolution; documentation for this method stored as 'docs/_dev/basis_functions/bernoulli_polynomials/main.ipynb'

For Developers

Full Changelog: v3.2.2...v3.2.3

FoKL 3.2.2

16 Apr 19:45
2662c13
Compare
Choose a tag to compare

What's Changed

  • Pyomo example using simple toy problem to demonstrate nonlinear optimization of a GP model trained by FoKL
  • Optimization of model attributes added so .fokl files require less memory
  • Support for large datasets added, where 16-bit or 32-bit floating point numbers (after normalization) are acceptable

For Developers

Bugs and Changes from v3.2.1:

ID Status Description Solution Notes Documentation Status
bug1 Complete (debug_16bit) Evaluate, e.g., causes 1x6 to become 6x1 despite there being 6 input vars in model; ‘AutoTranspose’ setting added during class initialization; complete
bug2 semi-urgent; will fix in later release README logo and links do not work in (at least) PyPI; PyTorch has same issue; consider https://docs.readthedocs.io/en/stable/; consider hosting ESMS website that links point to (like pyomo.org); n/a
change1 Complete (pyomo_dev) ‘to_pyomo’: multiple draws called ‘scenarios’ included in Pyomo model; 0=abs(f(x)-y) replaced with y=f(x);   complete
bug3 Complete (likely pyomo_dev but confirm) ‘Check_xaxis’ function in ‘coverage3’ fails for inputs as list; len(inputs[0]) updated to np.shape(inputs)[0]; n/a
bug4 Complete (pyomo_dev) ‘Draws’ keyword in ‘evaluate’ uses first models instead of last, so does not align with ‘to_pyomo’ method; Local variable ‘betas’ indexed by ‘draws’ so that only most recent samples (i.e., last models built) are used; Missing, but this functionality may be assumed implicit
bug5 Complete (likely pyomo_dev but confirm) ‘bounds[i, 1] = drawset[draws - cut]’ results in indexing error if ‘cut=0’, since ‘drawset’ has length of ‘draws’; Added 1 to value of ‘cut’, so ‘cut = int(np.floor(draws * .025))’ was updated with ‘cut = int(np.floor(draws * 0.025) + 1)’; also, minimum of ‘draws=40’ was added for ‘ReturnBounds=True’; n/a
change2 Complete (debug_16bit) ‘clean’ assumes 64 bit dataset which wastes memory for large 16 bit datasets; Keyword ‘bit’ added to ‘clean’ for defining bits used in floating point of ‘self.inputs’ and ‘self.data’; complete
change3 Complete (debug_16bit) Extraneous attributes such as ‘traininputs’, ‘rawdata’, etc. can cause unnecessary memory issues; ‘inputs’ made into numpy array for all FoKLRoutines; only ‘inputs’, ‘data’, ‘normalize’, and ‘trainlog’ kept in ‘clean’; now, ‘traininputs, traindata = self.trainset()’, ‘inputs_np = self.inputs’; Complete
bug6 Complete (debug_16bit) In fit/gibbs, ‘dtd=inf’ for large datasets causes ‘betas=nan’; ‘dtd’ re-calculated as 64-bit if ‘dtd=inf’ and ‘data.dtype’ is not ‘64-bit’ (i.e., large dataset) in a for loop with one element at a time such that any potential memory overflows are avoided; n/a
change4 Complete (debug_16bit) fit/gibbs (and fit in general) has repeat calculations, with at least ‘dtd’ being one; Some constants taken out of for loops; n/a
bug7 Complete (debug_16bit) In fit, ‘sigmasq = np.var(data)’ likely will equal inf if not 64-bit, so fails for large datasets where memory is crucial; Variance ‘sigmasq’ and mean ‘data_mean’ calculated manually in for loop if ‘data.dtype != np.float64’ such that any potential memory overflows are avoided; n/a
change5 Complete (debug_16bit) ‘clean’ defines ‘trainlog’, but it is inconvenient to call ‘clean’ every time for a large dataset when testing different ‘train’ values; ‘trainlog’ routine from within ‘clean’ moved to class method to decouple it from ‘clean’; complete
change6 complete ‘gibbs’ has for loop across instances which takes long time for large datasets, so progress indicator is useful; Percentage complete added to show progress of current model prior to printing ‘[ind, ev]’; complete
change7 complete ‘meen’ renamed to ‘mean’; For Python, ‘mean’ is not an internal function so the MATLAB workaround ‘meen’ is not needed; n/a

Full Changelog: v3.2.1...v3.2.2

FoKL 3.2.1

19 Mar 18:40
3260e87
Compare
Choose a tag to compare
  • Updated Dependencies to include Pyomo
  • Removed redundant files