Code Monkey home page Code Monkey logo

addons's Introduction




PyPI Status Badge Gitter chat

Official Builds

Build Type Status
Linux Py2 CPU Status
Linux Py3 CPU Status
Linux Py2 GPU Status
Linux Py3 GPU Status
Linux Sanity Check Status

TensorFlow Addons is a repository of contributions that conform to well-established API patterns, but implement new functionality not available in core TensorFlow. TensorFlow natively supports a large number of operators, layers, metrics, losses, and optimizers. However, in a fast moving field like ML, there are many interesting new developments that cannot be integrated into core TensorFlow (because their broad applicability is not yet clear, or it is mostly used by a smaller subset of the community).

Maintainers

Subpackage Maintainers Contact Info
tfa.activations SIG-Addons @facaiy @seanpmorgan
tfa.callbacks SIG-Addons @squadrick
tfa.image SIG-Addons @windqaq @facaiy
tfa.layers SIG-Addons @seanpmorgan @facaiy
tfa.losses SIG-Addons @facaiy @windqaq
tfa.metrics SIG-Addons @squadrick
tfa.optimizers SIG-Addons @facaiy @windqaq @squadrick
tfa.rnn Google @qlzh727
tfa.seq2seq Google/SIG-Addons @qlzh727 @guillaumekln
tfa.text SIG-Addons @seanpmorgan @facaiy

Installation

Stable Builds

To install the latest version, run the following:

pip install tensorflow-addons

To use addons:

import tensorflow as tf
import tensorflow_addons as tfa

Nightly Builds

There are also nightly builds of TensorFlow Addons under the pip package tfa-nightly, which is built against tf-nightly-2.0-preview. Nightly builds include newer features, but may be less stable than the versioned releases.

pip install tfa-nightly

Installing from Source

You can also install from source. This requires the Bazel build system.

git clone https://github.com/tensorflow/addons.git
cd addons

# If building GPU Ops (Requires CUDA 10.0 and CuDNN 7)
export TF_NEED_CUDA=1

# This script links project with TensorFlow dependency
./configure.sh

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl

Tutorials

See docs/tutorials/ for end-to-end examples of various addons.

Core Concepts

Standardized API within Subpackages

User experience and project maintainability are core concepts in TF-Addons. In order to achieve these we require that our additions conform to established API patterns seen in core TensorFlow.

GPU/CPU Custom-Ops

A major benefit of TensorFlow Addons is that there are precompiled ops. Should a CUDA 10 installation not be found then the op will automatically fall back to a CPU implementation.

Proxy Maintainership

Addons has been designed to compartmentalize subpackages and submodules so that they can be maintained by users who have expertise and a vested interest in that component.

Subpackage maintainership will only be granted after substantial contribution has been made in order to limit the number of users with write permission. Contributions can come in the form of issue closings, bug fixes, documentation, new code, or optimizing existing code. Submodule maintainership can be granted with a lower barrier for entry as this will not include write permissions to the repo.

For more information see the RFC on this topic.

Periodic Evaluation of Subpackages

Given the nature of this repository, subpackages and submodules may become less and less useful to the community as time goes on. In order to keep the repository sustainable, we'll be performing bi-annual reviews of our code to ensure everything still belongs within the repo. Contributing factors to this review will be:

  1. Number of active maintainers
  2. Amount of OSS use
  3. Amount of issues or bugs attributed to the code
  4. If a better solution is now available

Functionality within TensorFlow Addons can be categorized into three groups:

  • Suggested: well-maintained API; use is encouraged.
  • Discouraged: a better alternative is available; the API is kept for historic reasons; or the API requires maintenance and is the waiting period to be deprecated.
  • Deprecated: use at your own risk; subject to be deleted.

The status change between these three groups is: Suggested <-> Discouraged -> Deprecated.

The period between an API being marked as deprecated and being deleted will be 90 days. The rationale being:

  1. In the event that TensorFlow Addons releases monthly, there will be 2-3 releases before an API is deleted. The release notes could give user enough warning.

  2. 90 days gives maintainers ample time to fix their code.

Contributing

TF-Addons is a community led open source project. As such, the project depends on public contributions, bug-fixes, and documentation. Please see contribution guidelines for a guide on how to contribute. This project adheres to TensorFlow's code of conduct. By participating, you are expected to uphold this code.

Community

License

Apache License 2.0

addons's People

Contributors

aakashkumarnain avatar ageron avatar andreasmadsen avatar armando-fandango avatar autoih avatar cyberzhg avatar facaiy avatar fsx950223 avatar gokkulnath avatar guillaumekln avatar helinwang avatar howl-anderson avatar kazemnejad avatar kyleabeauchamp avatar mainak431 avatar mels630 avatar parth-p avatar pkan2 avatar qlzh727 avatar sayoojbk avatar seanccho avatar seanpmorgan avatar shashvatshahi1998 avatar shreyashub avatar sjmielke avatar smokrow avatar squadrick avatar ssaishruthi avatar tabshaikh avatar windqaq avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.