Skip to content

Releases: sandialabs/PyRIID

PyRIID v2.1.0

09 Aug 00:59
Compare
Choose a tag to compare

What's Changed

Enhancements

Data

  • Added data converters for some community datasets by @tymorrow in #49 and #58
  • Added SampleSet.SpectraType enum for better tracking of data state and enforcement in synthesizers by @alanjvano @tymorrow in #57
  • Added SampleSet.get_confidence() method by @alanjvano @tymorrow in #57
    • This method provides basic support for computing reconstruction-based confidence measures. It is intended as a post-processing step following model inference.
  • Added SampleSet.to_json() and read_json() for convenient reading/writing of spectral data from/to JSON by @tymorrow in #63

Synthesis

  • Refactored static and seed synthesis output by @tymorrow in #59 and #66
  • Refactored StaticSynthesizer SNR and live time sampling by @alanjvano @tymorrow in #57
  • Added "seed health" checks to synthesizers to better validate seeds before generating data by @tymorrow in #65
    • A health check is performed by default, but were later made optional in #40 so that you are able to intentionally perform synthesis with bad seeds for research purposes.
  • Seed synthesis now calculates dead time, both as a convenience to the user as well as to support the health check by @tymorrow #40
  • Seed synthesis now supports specifying whether to include of pile-up in the GADRAS Inject by @tymorrow in #40 (previously, whether pile-up could be included, like many parameters, was determined by the value in Detector.dat)
  • Real time and distance are now properly passed through some synthesizers by @alanjvano @tymorrow in #40

Models

  • Numerous LabelProportionEstimator improvements by @alanjvano in #42 and #57
  • Added two versions of the ARAD autoencoder as standalone TensorFlow models along with direct, optional PyRIID integration by @tymorrow @alanjvano in #64 (special thanks to Dr. James Ghawaly)
  • Added random sampling of seed synthesizer configurations to enable specifications of variation in detector, environment, and source in a single YAML file by @tymorrow @alanjvano @lcross-sandia in #40
  • Added ARADLatentPredictor for performing prediction tasks from an ARAD model's latent space by @tymorrow @alanjvano in #40

Docs

  • Numerous improvements to docstrings and docs by @tymorrow in #48

Bug fixes

  • Add missing support for GADRAS 18 by @tymorrow in #46
  • Fixed pyproject.toml to find subpackages so publishing to PyPI does not produce technically broken releases by @tymorrow in #61
  • Fixed typo for areal density info column by @tymorrow in #62
  • Fixed get_distribution_values() 'list' type by @tymorrow in #60
  • Fixed bug where neural net fitting was resorting source columns before training by @alanjvano @tymorrow in #57

Additional Notes

  • A consequence of Apple's switch to ARM-based M* processors is that TensorFlow is starting to stop putting pre-built wheels on PyPI targeting Intel-based MacOS with older Python versions (namely, Python 3.8). With the latest release of TensorFlow 2.17, there is no Intel wheel file at all. The next PyRIID release will likely target TensorFlow 2.16.2, which is available for Python 3.9 to 3.12 and retains Intel-based Mac support. The subsequent, major PyRIID release (sometime in 2025) will likely discontinue Intel-based Mac support, but there are no guarantees (we will just see how things play out).

Full Changelog: v2.0.0...v2.1.0

PyRIID v2.0.0

03 Aug 23:36
Compare
Choose a tag to compare

What's Changed

  • Development was moved to GitHub.
  • Supported Python versions, operating systems, and dependencies have been upgraded. Thank you to Aislinn Handley.
  • The structure of DataFrames in SampleSet, as well as methods contained within, were significantly changed, eliminating things that are no longer used and introducing new features.
  • Information present in saved models was expanded. Thank you to Aislinn Handley.
  • Static synthesis was reworked to provide better ground truth tracking for both single- and multi-isotope (i.e., mixture) spectra. Thank you to Paul Thelen for providing category mappings.
  • Static synthesis now returns net, background, and gross spectra.
  • Neutron synthesis, which was part of static synthesis, was removed (possibly returning in a future release).
  • Mixture synthesis was removed from static synthesis and implemented as a preliminary step of "seed mixing" which produces seeds you pass to a static synthesizer. Thank you to @alanjvano
  • Expanded tests for regression checking throughout the package, notably as it applies to getting labels and predictions.
  • Initial implementation of a Multi-Event Classifier. Thank you to Nathan Price.
  • Modification of MlpClassifier to support source spectra concatenated with background spectra as input. Thank you to Nathan Price.
  • Basic seed synthesis utilizing GADRAS Inject was introduced.
  • Added an anomaly detection algorithm for use on sequences of spectra.
  • Added visualizations and metrics were added. Thank you @tylerganter.
  • Added methods for describing and comparing SampleSets. Thank you to @anbusto and @lcross-sandia.
  • TensorFlow implementation of Poisson-Bayes classifier refactored. Thank you to @lcross-sandia.
  • Added methods for limited adding and subtracting of SampleSets.
  • A semi-supervised neural network approach using sparsemax activation and providing out-of-distribution detection was added based on @alanjvano's thesis work (https://dx.doi.org/10.7302/7200)
  • Expanded unit testing (and coverage), most notably for visualize module. Thank you to @anbusto
  • Examples and linting checks added to GitHub Actions workflows. Thank you to @anbusto and @alanjvano

Moving forward, with development having moved to GitHub, changes will be more easily enumerated here and more detailed credit will be given to authors.
Thank you again to everyone who contributed to this release; see the pyproject.toml for all authors.

Full Changelog: v1.0.2...v2.0.0

PyRIID v1.0.2 - PassbySynthesizer Hotfix

23 Nov 18:14
2686386
Compare
Choose a tag to compare

This release contains the following change:

  • PassbySynthesizer now looks at the proper property to check for the presence of a background seed.

Full Changelog: v1.0.1...v1.0.2

PyRIID v1.0.1 - SampleSet Hotfixes

22 Nov 22:11
Compare
Choose a tag to compare

This release contains the following changes:

  • Limits the h5py dependency version to < 3.0.0
  • Adds support to load some newer .smpl files
  • Changes the way the Python version is checked

Full Changelog: v1.0.0...v1.0.1

PyRIID v1.0.0 - Initial Release

07 Jul 22:14
Compare
Choose a tag to compare
Set up for PyPi deployment.