Есть вопрос? Присоединяйтесь к сообществу на форуме TensorFlow. Посетите форум.

Дополнения TensorFlow




TensorFlow Addons - это хранилище вкладов, которые соответствуют устоявшимся шаблонам API, но реализуют новые функции, недоступные в основном TensorFlow. TensorFlow изначально поддерживает большое количество операторов, уровней, показателей, потерь и оптимизаторов. Однако в быстро меняющейся области, такой как ML, есть много интересных новых разработок, которые нельзя интегрировать в ядро ​​TensorFlow (поскольку их широкая применимость еще не ясна или в основном используется небольшой группой сообщества).

Монтаж

Стабильные сборки

Чтобы установить последнюю версию, запустите следующее:

pip install tensorflow-addons

Чтобы использовать аддоны:

import tensorflow as tf
import tensorflow_addons as tfa

Ночные сборки

Есть также ночные сборки tfa-nightly пакете pip tfa-nightly , который построен на основе последней стабильной версии 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_TOOLKIT_PATH="/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. Для этого мы требуем, чтобы наши дополнения соответствовали установленным шаблонам API, представленным в ядре TensorFlow.

Пользовательские операции GPU / CPU

Основным преимуществом надстроек TensorFlow является наличие предварительно скомпилированных операций. Если установка CUDA 10 не будет найдена, операция автоматически вернется к реализации ЦП.

Доверенность

Надстройки были разработаны для разделения подпакетов и подмодулей, чтобы они могли поддерживаться пользователями, имеющими опыт и заинтересованность в этом компоненте.

Сопровождение подпакета будет предоставлено только после того, как будет внесен существенный вклад, чтобы ограничить количество пользователей с разрешением на запись. Вклад может быть в форме закрытия проблем, исправления ошибок, документации, нового кода или оптимизации существующего кода. Сопровождение подмодуля может быть предоставлено с более низким барьером для входа, поскольку это не будет включать разрешения на запись в репо.

Для получения дополнительной информации см. RFC по этой теме.

Периодическая оценка подпакетов

Учитывая характер этого репозитория, подпакеты и подмодули могут становиться все менее и менее полезными для сообщества с течением времени. Чтобы репозиторий оставался устойчивым, мы будем проводить два раза в год обзоры нашего кода, чтобы убедиться, что все по-прежнему принадлежит репозиторию. Факторами, способствующими этому обзору, будут:

  1. Количество активных сопровождающих
  2. Количество использования OSS
  3. Количество проблем или ошибок, связанных с кодом
  4. Если теперь доступно лучшее решение

Функциональность в надстройках TensorFlow можно разделить на три группы:

  • Предлагается : хорошо поддерживаемый API; использование приветствуется.
  • Обескуражен : доступна лучшая альтернатива; API сохраняется по историческим причинам; или API требует обслуживания, и это период ожидания, который будет исключен.
  • Не рекомендуется : используйте на свой страх и риск; подлежит удалению.

Изменение статуса между этими тремя группами: Предлагаемое <-> Не рекомендуется -> Устарело.

Период между пометкой API как устаревшей и удалением составляет 90 дней. Обоснование:

  1. Если TensorFlow Addons выпускается ежемесячно, перед удалением API будет выпущено 2–3 выпуска. Примечания к выпуску могут дать пользователю достаточно предупреждений.

  2. 90 дней дают разработчикам достаточно времени, чтобы исправить свой код.

Содействие

TF-Addons - это проект с открытым исходным кодом, возглавляемый сообществом. Таким образом, проект зависит от общественного участия, исправлений ошибок и документации. Пожалуйста, ознакомьтесь с инструкциями по взносам, чтобы узнать, как внести свой вклад Этот проект придерживается кодекса поведения TensorFlow . Участвуя, вы должны соблюдать этот кодекс.

Сообщество

Лицензия

Лицензия Apache 2.0