Skip to content

Commit

Permalink
Added limitations and future dev sections
Browse files Browse the repository at this point in the history
  • Loading branch information
andreped committed Jan 21, 2024
1 parent a86627d commit 261252e
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,22 @@ GradientAccumulator has already been used in several research studies [@pedersen
`GradientAccumulator` implements two main approaches to add gradient accumulation support to an existing TensorFlow model. GA support can either be added through model or optimizer wrapping. By wrapping the model, the `train_step` of a given Keras [@chollet2015keras] model is updated such that the gradients are updated only after a user-defined number of backward steps. Wrapping the optimizer works somewhat similar, but this update control is handled directly in the optimizer itself. This is done in such a way that _any_ optimizer can be used with this approach.


The package solely depends on `TensorFlow`, hence adds no additional dependencing to your projects.


More details and tutorials on getting started with the `GradientAccumulator` package, can be found in the `GradientAccumulator `\href{(https://gradientaccumulator.readthedocs.io/}{documentation}.


# Limitations and caveats

As `TensorFlow` is a highly evolving library and tend to introduce breaking changes between minor releases, it makes it challenging to have complete support for all `TensorFlow` versions. As the `train_step` overriding solution used in the model wrapper approach was only introduced in `TensorFlow` v2.2, `TensorFlow` versions < 2.2 are not supported. Furthermore, the optimizer has had a breaking changes, and due to this we chose we are not able to support `TensorFlow` < 2.7 for the optimizer wrapper.


# Future developments

`GradientAccumulator` is in active development. However, `TensorFlow` has likely made their last release of version 2, as Keras 3 has made its first official release. It is likely that the research community will move to Keras 3 in the future, but Keras 3 has yet to add as broad support for gradient accumulation as our package offers. Keras 3 also seems to favour `Jax` [@deepmind2020jax] for gradient accumulation instead of `TensorFlow`.


# Acknowledgements

This work was supported by The Liaison Committee for Education, Research and Innovation in Central Norway [Grant Number 2018/42794]; The Joint Research Committee between St. Olavs Hospital and the Faculty of Medicine and Health Sciences, NTNU (FFU) [Grant Number 2019/38882]; and The Cancer Foundation, St. Olavs Hospital, Trondheim University Hospital [Grant Number 13/2021].
Expand Down

0 comments on commit 261252e

Please sign in to comment.