Дополнения TensorFlow




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

Установка

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

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

pip install tensorflow-addons

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

import tensorflow as tf
import tensorflow_addons as tfa

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

Существуют также ночные сборки надстроек TensorFlow в пакете 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.

Пользовательские операции графического процессора/процессора

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

Обслуживание прокси

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

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

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

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

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

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

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

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

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

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

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

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

Содействие

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

Сообщество

Лицензия

Лицензия Апач 2.0