此页面由 Cloud Translation API 翻译。
Switch to English

TensorFlow插件




TensorFlow插件是符合标准的API模式但提供了核心TensorFlow中不可用的新功能的贡献库。 TensorFlow原生支持大量的运算符,层,指标,损失和优化器。但是,在像ML这样的快速发展的领域中,有许多有趣的新开发无法集成到核心TensorFlow中(因为它们的广泛适用性尚不明确,或者主要由社区的较小子集使用)。

安装

稳定的构建

要安装最新版本,请运行以下命令:

 pip install tensorflow-addons
 

要使用插件:

 import tensorflow as tf
import tensorflow_addons as tfa
 

每晚构建

tfa-nightly软件包tfa-nightly下还存在每晚的TensorFlow Addons构建,它是针对TensorFlow的最新稳定版本构建的。每晚构建包含较新的功能,但可能不如版本发布稳定。

 pip install tfa-nightly
 

从源安装

您也可以从源代码安装。这需要Bazel构建系统。

 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
export CUDA_HOME="/path/to/cuda10" (default: /usr/local/cuda)
export CUDNN_INSTALL_PATH="/path/to/cudnn" (default: /usr/lib/x86_64-linux-gnu)

# This script links project with TensorFlow dependency
python3 ./configure.py

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl
 

核心概念

子包中的标准化API

用户体验和项目可维护性是TF-Addons中的核心概念。为了实现这些目标,我们要求添加的内容符合核心TensorFlow中已建立的API模式。

GPU / CPU自定义操作

TensorFlow Addons的主要好处是可以预编译操作。如果找不到CUDA 10安装,则操作将自动退回到CPU实施。

代理维护

附加组件旨在将子包和子模块分隔开,以便对这些组件具有专业知识和既有兴趣的用户可以维护它们。

仅在做出实质性贡献后才能授予子软件包维护权,以限制具有写许可权的用户数量。贡献可以以问题结局,错误修复,文档,新代码或优化现有代码的形式出现。子模块维护权限的授予壁垒较低,因为它不包括对存储库的写权限。

有关更多信息,请参见RFC

子包装的定期评估

考虑到该存储库的性质,随着时间的流逝,子包和子模块对社区的用处可能越来越少。为了使存储库具有可持续性,我们将对代码进行半年一次的审核,以确保所有内容仍属于回购协议。导致此次审核的因素有:

  1. 活跃维护者数量
  2. OSS使用量
  3. 归因于代码的问题或错误数量
  4. 如果现在有更好的解决方案

TensorFlow插件中的功能可以分为三类:

  • 建议 :维护良好的API;鼓励使用。
  • 灰心 :有更好的选择。保留API是出于历史原因;或API需要维护,这是不建议使用的等待时间。
  • 弃用 :使用风险自负;被删除。

这三个组之间的状态更改为:建议<->不鼓励->不推荐使用。

将API标记为已弃用与删除之间的期限为90天。理由是:

  1. 如果TensorFlow插件每月发布一次,则在删除API之前将有2-3个版本发布。发行说明可能会给用户足够的警告。

  2. 90天为维护人员提供了充足的时间来修复其代码。

贡献

TF-Addons是一个社区主导的开源项目。因此,该项目取决于公共贡献,错误修复和文档。请参阅贡献准则以获取有关贡献方式的指南 。该项目遵守TensorFlow的行为准则 。通过参与,您应该坚持此代码。

社区

执照

Apache许可2.0