Notes regarding the released versions of EnergyFlow will be published here.



  • Set allow_pickle to True explicitly in Generator (recently changed default in NumPy).
  • Added Herwig7.1 dataset to qg_jets. A big thanks to Aditya Pathak for generating these Herwig samples!
  • Quark and gluon dataset files can now be obtained from Zenodo in addition to Dropbox.
  • Changed internals of EFN to use standalone functions for easier use of subnetwork components.
  • Added some particle utility functions to deal with PDGIDs.
  • Added particle utilities to deal with pseudorapidities.
  • Changed gen_random_events_mcom to have positive energies (momenta still sum to zero).
  • Added l2 regularization to layers in EFN and PFN architectures. Thanks to Anders Andreassen for submiting this pull request!
  • Added tests for particle utils.
  • Particle utilities now accept arrays of events.


  • Added another periodic phi test for event EMD.
  • Changed gdim default to None (to reduce potentially unexpected behavior).
  • Increased numerical stability of EMD computation by including an internal change of units.
  • Added verbosity functionality to EFP Generator.


  • Named lambda functions inside EFNs and PFNs (necessary for saving models).
  • Fixed typo in archbase code.
  • Added tests for architecture code.


  • Fixed potential issue involving the Keras Masking layer not functioning as documented. This is not expected to affect any EFN models that were padded with zeros, nor any PFN models for which the padding was consistent across training and testing sets. Thanks to Anders Andreassen for pointing this out!
  • Added arbitrary attribute lookup in the underlying model for all EnergyFlow architectures.
  • Deprecated old EFN/PFN parameter names.
  • Built-in support for ModelCheckpoint and EarlyStopping callbacks for neural network models.
  • Made naming of neural network layers optional, allowing pieces to be reused more easily.
  • Support for periodic phi values in EMD module.
  • Added support for passing arbitrary compilation options to Keras models.
  • Added EMD Demo notebook



  • Added advanced activations support for neural network architectures. Thanks to Kevin Bauer for this suggestion!


  • Fixed issue when using Python 2 caused by not importing division in dataset loading code. Thanks to Matt LeBlanc for pointing this out!
  • Added n_iter_max option to EMD functions.


  • Added emd module to EnergyFlow. This new module is not imported by default and relies on the Python Optimal Transport library and SciPy.
  • Included binder support for the jupyter notebook demos. Thanks to Matthew Feickert for contributing this feature!



  • Minor improvement and fixes. Thanks to Preksha Naik for pointing out a typo!


  • Updates to the documentation and enhanced examples provided.


  • Finalized initial documentation pages.
  • Minor improvement and fixes.


  • Minor improvement and fixes.


  • Minor improvement and fixes.


  • Added archs module containing EFN, PFN, DNN, CNN, and Linear models.


  • Rapid development of EFP code.