Skip to content

v0.16.0

Choose a tag to compare

@amkrajewski amkrajewski released this 04 Apr 16:23
· 29 commits to main since this release
c7e965b

This version introduces 3 exciting changes! (1) The all new ModelAdjusters submodule automates tuning and can fetch data directly from OPTIMADE API; (2) A new manuscript detailing advantages of our featurization tools has been put on arXiv:2404.02849; and (3) the name of the software was updated to python toolset for Structure-Informed Property and Feature Engineering with Neural Networks to retain the pySIPFENN acronym but better reflect our strengths and development direction.

Major Changes:

  • Submodule of ModelAdjusters has been set up for all kinds of model adjusting efforts.
  • The LocalAdjuster implements local model tuning, plotting of results, and hyperparameter matrix search.
  • The OPTIMADEAdjuster class combines it with the powerful OPTIMADE API to automate data fetching. Now, you can quickly
    from pysipfenn import Calculator, OPTIMADEAdjuster
    c = Calculator(autoLoad=False)
    c.loadModels("SIPFENN_Krajewski2022_NN30")
    ma = OPTIMADEAdjuster(c, 
      model="SIPFENN_Krajewski2022_NN30",  
      provider="mp",
      targetPath=("attributes", "_mp_stability", "gga_gga+u", "formation_energy_per_atom"),
      device="mps"  # MPS is for Apple M-series GPU
      )
    
    ma.fetchAndFeturize(
        'elements HAS "Hf" AND elements HAS "Mo" AND NOT elements HAS ANY "O","C","F","Cl","S"',
        parallelWorkers=4)
    ma.adjust()
    
    ma.plotStarting() # See the starting performance
    ma.plotAdjusted() # See the adjusted performance
    or to perform a hyperparameter search, replace the ma.adjust() with:
    ma.matrixHyperParameterSearch()
    ma.adjust(learningRate=0.0001, optimizer='AdamW', weightDecay=1e-05, epochs=37)
  • The new manuscript on Efficient Structure-Informed Featurization and Property Prediction of Ordered, Dilute, and Random Atomic Structures has been uploaded to arXiv:2404.02849 and will be submitted to journal in a couple days after comments from collaborators.

Minor Changes:

  • Added writeDescriptorsToNPY function to streamline persisting feature data into NumPy for our end-users. Appropriate tests were added. Thanks @rdamaral for making this contribution!
  • Improved numerous docstrings.
  • Random solution featurizer now exits gently on KeyboardInterrupt
  • The LocalAdjuster and OPTIMADEAdjuster were (optionally) connected to ClearML for neat tracking of ML training histories.
  • Minor bugfixes in several spots.

New Contributors

  • @rdamaral made their first contribution in #15

Full Changelog: v0.15.1...v0.16.0