| 
 | 1 | +# Release 1.2.0  | 
 | 2 | + | 
 | 3 | +## Major Features and Improvements  | 
 | 4 | + | 
 | 5 | +*   Changed `nsl.tools.build_graph(...)` to be more efficient and use far less  | 
 | 6 | +    memory. In particular, the memory consumption is now proportional only to  | 
 | 7 | +    the size of the input, not the size of the input plus the size of the  | 
 | 8 | +    output. Since the size of the output can be quadratic in the size of the  | 
 | 9 | +    input, this can lead to large memory savings. `nsl.tools.build_graph(...)`  | 
 | 10 | +    now also produces a log message every 1M edges it writes to indicate  | 
 | 11 | +    progress.  | 
 | 12 | +*   Introduces `nsl.lib.strip_neighbor_features`, a function to remove graph  | 
 | 13 | +    neighbor features from a feature dictionary.  | 
 | 14 | +*   Restricts the expectation of graph neighbor features being present in the  | 
 | 15 | +    input to the training mode for both the Keras and Estimator graph  | 
 | 16 | +    regularization wrappers. So, during evaluation, prediction, etc, neighbor  | 
 | 17 | +    features need not be fed to the model anymore.  | 
 | 18 | +*   Change the default value of `keep_rank` from `False` to `True` as well as  | 
 | 19 | +    flip its semantics in `nsl.keras.layers.NeighborFeatures.call` and  | 
 | 20 | +    `nsl.utils.unpack_neighbor_features`  | 
 | 21 | +*   Supports feature value constraints for adversarial neighbors. See  | 
 | 22 | +    `clip_value_min` and `clip_value_max` in `nsl.configs.AdvNeighborConfig`.  | 
 | 23 | +*   Supports adversarial regularization with PGD in Keras and estimator models.  | 
 | 24 | +*   Support for generating adversarial neighbors using Projected Gradient  | 
 | 25 | +    Descent (PGD) via the `nsl.lib.adversarial_neighbor.gen_adv_neighbor` API.  | 
 | 26 | + | 
 | 27 | +## Bug Fixes and Other Changes  | 
 | 28 | + | 
 | 29 | +*   Clarifies the meaning of the `nsl.AdvNeighborConfig.feature_mask` field.  | 
 | 30 | +*   Updates notebooks to avoid invoking the `nsl.tools.build_graph` and  | 
 | 31 | +    `nsl.tools.pack_nbrs` utilities as binaries.  | 
 | 32 | +*   Replace deprecated API in notebooks when testing for GPU availability.  | 
 | 33 | +*   Fix typos in documentation and notebooks.  | 
 | 34 | +*   Improvements to example trainers.  | 
 | 35 | +*   Fixed the metric string to 'acc' to be compatible with both TF1.x and 2.x.  | 
 | 36 | +*   Allow passing dictionaries to sequential base models in adversarial  | 
 | 37 | +    regularization.  | 
 | 38 | +*   Supports input feature list in `nsl.lib.gen_adv_neighbor`.  | 
 | 39 | +*   Supports input with a collection of tensors in  | 
 | 40 | +    `nsl.lib.maximize_within_unit_norm`.  | 
 | 41 | +*   Adds an optional parameter `base_with_labels_in_features` to  | 
 | 42 | +    `nsl.keras.AdversarialRegularization` for passing label features to the base  | 
 | 43 | +    model.  | 
 | 44 | +*   Fixes the tensor ordering issue in `nsl.keras.AdversarialRegularization`  | 
 | 45 | +    when used with a functional Keras base model.  | 
 | 46 | + | 
 | 47 | +## Thanks to our Contributors  | 
 | 48 | + | 
 | 49 | +This release contains contributions from many people at Google as well as  | 
 | 50 | +@mzahran001.  | 
 | 51 | + | 
1 | 52 | # Release 1.1.0  | 
2 | 53 | 
 
  | 
3 | 54 | ## Major Features and Improvements  | 
 | 
0 commit comments