Skip to content

Neural Structured Learning v1.2.0

Compare
Choose a tag to compare
@arjung arjung released this 10 Jun 22:08
· 321 commits to master since this release

Release 1.2.0

Major Features and Improvements

  • Changed nsl.tools.build_graph(...) to be more efficient and use far less
    memory. In particular, the memory consumption is now proportional only to
    the size of the input, not the size of the input plus the size of the
    output. Since the size of the output can be quadratic in the size of the
    input, this can lead to large memory savings. nsl.tools.build_graph(...)
    now also produces a log message every 1M edges it writes to indicate
    progress.
  • Introduces nsl.lib.strip_neighbor_features, a function to remove graph
    neighbor features from a feature dictionary.
  • Restricts the expectation of graph neighbor features being present in the
    input to the training mode for both the Keras and Estimator graph
    regularization wrappers. So, during evaluation, prediction, etc, neighbor
    features need not be fed to the model anymore.
  • Change the default value of keep_rank from False to True as well as
    flip its semantics in nsl.keras.layers.NeighborFeatures.call and
    nsl.utils.unpack_neighbor_features.
  • Supports feature value constraints for adversarial neighbors. See
    clip_value_min and clip_value_max in nsl.configs.AdvNeighborConfig.
  • Supports adversarial regularization with PGD in Keras and estimator models.
  • Support for generating adversarial neighbors using Projected Gradient
    Descent (PGD) via the nsl.lib.adversarial_neighbor.gen_adv_neighbor API.

Bug Fixes and Other Changes

  • Clarifies the meaning of the nsl.AdvNeighborConfig.feature_mask field.
  • Updates notebooks to avoid invoking the nsl.tools.build_graph and
    nsl.tools.pack_nbrs utilities as binaries.
  • Replace deprecated API in notebooks when testing for GPU availability.
  • Fix typos in documentation and notebooks.
  • Improvements to example trainers.
  • Fixed the metric string to 'acc' to be compatible with both TF1.x and 2.x.
  • Allow passing dictionaries to sequential base models in adversarial
    regularization.
  • Supports input feature list in nsl.lib.gen_adv_neighbor.
  • Supports input with a collection of tensors in
    nsl.lib.maximize_within_unit_norm.
  • Adds an optional parameter base_with_labels_in_features to
    nsl.keras.AdversarialRegularization for passing label features to the base
    model.
  • Fixes the tensor ordering issue in nsl.keras.AdversarialRegularization
    when used with a functional Keras base model.

Thanks to our Contributors

This release contains contributions from many people at Google as well as
@mzahran001.