|
| 1 | +# Release 1.4.0 |
| 2 | + |
| 3 | +## Major Features and Improvements |
| 4 | + |
| 5 | +* Add `params` as an optional third argument to the `embedding_fn` argument of |
| 6 | + `nsl.estimator.add_graph_regularization`. This is similar to the `params` |
| 7 | + argument of an Estimator's `model_fn`, which allows users to pass arbitrary |
| 8 | + states through. Adding this as an argument to `embedding_fn` will allow |
| 9 | + users to access that state in the implementation of `embedding_fn`. |
| 10 | +* Both `nsl.keras.AdversarialRegularization` and |
| 11 | + `nsl.keras.GraphRegularization` now support the `save` method which will |
| 12 | + save the base model. |
| 13 | +* `nsl.keras.AdversarialRegularization` now supports a `tf.keras.Sequential` |
| 14 | + base model with a `tf.keras.layers.DenseFeatures` layer. |
| 15 | +* `nsl.configs.AdvNeighborConfig` has a new field `random_init`. If set to |
| 16 | + `True`, a random perturbation will be performed before FGSM/PGD steps. |
| 17 | +* `nsl.lib.gen_adv_neighbor` now has a new parameter `use_while_loop`. If set |
| 18 | + to `True`, the PGD steps are done in a `tf.while_loop` which is potentially |
| 19 | + more memory efficient but has some restrictions. |
| 20 | +* New library functions: |
| 21 | + * `nsl.lib.random_in_norm_ball` for generating random tensors in a norm |
| 22 | + ball. |
| 23 | + * `nsl.lib.project_to_ball` for projecting tensors onto a norm ball. |
| 24 | + |
| 25 | +## Bug Fixes and Other Changes |
| 26 | + |
| 27 | +* Dropped Python 2 support (which was deprecated 2+ years ago). |
| 28 | +* `nsl.keras.AdversarialRegularization` and `nsl.lib.gen_adv_neighbor` will |
| 29 | + not attempt to calculate gradients for tensors with a non-differentiable |
| 30 | + `dtype`. This doesn’t change the functionality, but only suppresses excess |
| 31 | + warnings. |
| 32 | +* Both `estimator/adversarial_regularization.py` and |
| 33 | + `estimator/graph_regularization.py` explicitly import `estimator` from |
| 34 | + `tensorflow` as a separate import instead of accessing it via `tf.estimator` |
| 35 | + and depend on the tensorflow `estimator` target. |
| 36 | +* The new top-level `workshops` directory contains presentation materials from |
| 37 | + tutorials we organized on NSL at KDD 2020, WSDM 2021, and WebConf 2021. |
| 38 | +* The new `usage.md` page describes featured usage of NSL, external talks, |
| 39 | + blog posts, media coverage, and more. |
| 40 | +* End-to-end examples under the `examples` directory: |
| 41 | + * New examples about graph neural network modules with graph-regularizer |
| 42 | + and graph convolution. |
| 43 | + * New README file providing an overview of the examples. |
| 44 | +* New tutorial examples under the `examples/notebooks` directory: |
| 45 | + * Graph regularization for image classification using synthesized graphs |
| 46 | + * Adversarial Learning: Building Robust Image Classifiers |
| 47 | + * Saving and loading NSL models |
| 48 | + |
| 49 | +## Thanks to our Contributors |
| 50 | + |
| 51 | +This release contains contributions from many people at Google Research and from |
| 52 | +TF community members: @angela-wang1 , @dipanjanS, @joshchang1112, @SamuelMarks, |
| 53 | +@sayakpaul, @wangbingnan136, @zoeyz101 |
| 54 | + |
1 | 55 | # Release 1.3.1
|
2 | 56 |
|
3 | 57 | ## Major Features and Improvements
|
|
0 commit comments