|
| 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