From fbaf23980ad5890dffdcbeb8f0c39a66c35376e3 Mon Sep 17 00:00:00 2001 From: n2cholas Date: Sun, 20 Dec 2020 17:44:29 -0500 Subject: [PATCH] initial awesome list --- .gitattributes | 2 ++ README.md | 2 -- code-of-conduct.md | 74 ++++++++++++++++++++++++++++++++++++++++++ contributing.md | 24 ++++++++++++++ readme.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 .gitattributes delete mode 100644 README.md create mode 100644 code-of-conduct.md create mode 100644 contributing.md create mode 100644 readme.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9e25297 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +readme.md merge=union diff --git a/README.md b/README.md deleted file mode 100644 index b9b26d7..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# awesome-jax -JAX - A curated list of resources https://github.com/google/jax diff --git a/code-of-conduct.md b/code-of-conduct.md new file mode 100644 index 0000000..25f8d78 --- /dev/null +++ b/code-of-conduct.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at nicholas.vadivelu@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..50db903 --- /dev/null +++ b/contributing.md @@ -0,0 +1,24 @@ +# Contribution Guidelines + +Please note that this project is released with a [Contributor Code of Conduct](code-of-conduct.md). By participating in this project you agree to abide by its terms. + +## Adding something to an awesome list + +If you have something awesome to contribute to this awesome list, this is how you do it. + +You'll need a [GitHub account](https://github.com/join)! + +1. Click on the `readme.md` file: ![Step 2 Click on Readme.md](https://cloud.githubusercontent.com/assets/170270/9402920/53a7e3ea-480c-11e5-9d81-aecf64be55eb.png) +2. Now click on the edit icon. ![Step 3 - Click on Edit](https://cloud.githubusercontent.com/assets/170270/9402927/6506af22-480c-11e5-8c18-7ea823530099.png) +3. You can start editing the text of the file in the in-browser editor. Make sure you follow guidelines above. You can use [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/). ![Step 4 - Edit the file](https://cloud.githubusercontent.com/assets/170270/9402932/7301c3a0-480c-11e5-81f5-7e343b71674f.png) +4. Say why you're proposing the changes, and then click on "Propose file change". ![Step 5 - Propose Changes](https://cloud.githubusercontent.com/assets/170270/9402937/7dd0652a-480c-11e5-9138-bd14244593d5.png) +5. Submit the [pull request](https://help.github.com/articles/using-pull-requests/)! + +## Updating your Pull Request + +Sometimes, a maintainer of an awesome list will ask you to edit your Pull Request before it is included. This is normally due to spelling errors or because your PR didn't match the awesome-* list guidelines. + +[Here](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md) is a write up on how to change a Pull Request, and the different ways you can do that. + + +These guidelines are based on the [awesome contribution guidelines](https://github.com/sindresorhus/awesome/blob/main/contributing.md). \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..2438bcf --- /dev/null +++ b/readme.md @@ -0,0 +1,80 @@ +# Awesome Jax [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) + +A curated list of awesome JAX libraries, projects, and other resources. Inspired by [Awesome TensorFlow](https://github.com/jtoy/awesome-tensorflow). + +## What is JAX? + +JAX brings automatic differentiation and the XLA compiler together through a numpy-like API for high performance machine learning research on accelerators like GPUs and TPUs. More info [here](https://github.com/google/jax). + + +## Table of Contents + +- [Libraries](#libraries) +- [Models/Projects](#projects) +- [Videos](#videos) +- [Papers](#papers) +- [Blog Posts](#posts) +- [Community](#community) +- [Contribute](#contribute) + + + + +## Libraries + +- Neural Network Libraries + - [Flax](https://github.com/google/flax) - a flexible library with the largest user base of all JAX NN libraries. + - [Haiku](https://github.com/deepmind/dm-haiku) - focused on simplicity, created by the authors of Sonnet at DeepMind. + - [Objax](https://github.com/google/objax) - has an object oriented design similar to PyTorch. + - [Elegy](https://poets-ai.github.io/elegy/) - implements the Keras API with some improvements. + - [RLax](https://github.com/deepmind/rlax) - library for implementing reinforcement learning agent. + - [Trax](https://github.com/google/trax) - a "batteries included" deep learning library focused on providing solutions for common workloads. + - [Jraph](https://github.com/deepmind/jraph) - a lightweight graph neural network library. +- [NumPyro](https://github.com/pyro-ppl/numpyro) - probabilistic programming based on the Pyro library. +- [Chex](https://github.com/deepmind/chex) - utilities to write and test reliable JAX code. +- [Optax](https://github.com/deepmind/optax) - a gradient processing and optimization library. +- [JAX, M.D.](https://github.com/google/jax-md) - accelerated, differential molecular dynamics. + + + +## Models/Projects + +- [Reformer](https://github.com/google/trax/tree/master/trax/models/reformer) - an implementation of the Reformer (efficient transformer) architecture. + + + +## Videos + +- [Introduction to JAX](https://youtu.be/0mVmRHMaOJ4) - a simple neural network from scratch in JAX. +- [JAX: Accelerated Machine Learning Research | SciPy 2020 | VanderPlas](https://youtu.be/z-WSrQDXkuM) - JAX’s core design, how it’s powering new research, and how you can start using it. +- [Bayesian Programming with JAX + NumPyro — Andy Kitchen](https://youtu.be/CecuWGpoztw) - introduction to Bayesian modelling using NumPyro. + + + +## Papers + +- [Compiling machine learning programs via high-level tracing. Roy Frostig, Matthew James Johnson, Chris Leary. _MLSys 2018_.](https://mlsys.org/Conferences/doc/2018/146.pdf) - this white paper describes an early version of JAX, detailing how computation is traced and compiled. +- [Reformer: The Efficient Transformer. Nikita Kitaev, Łukasz Kaiser, Anselm Levskaya. _ICLR 2020_.](https://arxiv.org/abs/2001.04451) - introduces the Reformer architecture with O(nlogn) self attention via locality sensitive hashing, providing significant gains in memory efficiency and speed on long sequences. +- [JAX, M.D.: A Framework for Differentiable Physics. Samuel S. Schoenholz, Ekin D. Cubuk. _NeurIPS 2020_.](https://arxiv.org/abs/1912.04232) - introduces JAX, M.D., a differentiable physics library which includes simulation environments, interaction potentials, neural networks, and more. +- [Enabling Fast Differentially Private SGD via Just-in-Time Compilation and Vectorization. Pranav Subramani, Nicholas Vadivelu, Gautam Kamath. _arXiv 2020_.](https://arxiv.org/abs/2010.09063) - uses JAX's JIT and VMAP to achieve faster differentially private than existing libraries. + + + +## Blog Posts + +- [Using JAX to accelerate our research](https://deepmind.com/blog/article/using-jax-to-accelerate-our-research) - describes the state of JAX and the JAX ecosystem at DeepMind. +- [Getting started with JAX (MLPs, CNNs & RNNs)](https://roberttlange.github.io/posts/2020/03/blog-post-10/) - neural network building blocks from scratch with the basic JAX operators. +- [Plugging Into JAX](https://medium.com/swlh/plugging-into-jax-16c120ec3302) - compared Flax, Haiku, and Objax on the Kaggle flower classification challenge. + + + +## Community + +- [JAX GitHub Discussions](https://github.com/google/jax/discussions) +- [Reddit](https://www.reddit.com/r/JAX/) + + + +## Contribute + +Contributions welcome! Read the [contribution guidelines](contributing.md) first. \ No newline at end of file