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 по этой теме.
Периодическая оценка подпакетов
Учитывая характер этого репозитория, подпакеты и подмодули со временем могут становиться все менее и менее полезными для сообщества. Чтобы поддерживать устойчивость репозитория, мы будем проводить проверки нашего кода два раза в год, чтобы убедиться, что все по-прежнему находится в репозитории. Факторами, способствующими такому обзору, будут:
- Количество активных сопровождающих
- Объем использования OSS
- Количество проблем или ошибок, связанных с кодом
- Если теперь доступно лучшее решение
Функциональность дополнений TensorFlow можно разделить на три группы:
- Предлагается : хорошо поддерживаемый API; использование поощряется.
- Разочарован : доступна лучшая альтернатива; API сохранен по историческим причинам; или API требует обслуживания, и период ожидания считается устаревшим.
- Устарело : используйте на свой страх и риск; подлежит удалению.
Изменение статуса между этими тремя группами: Предлагается <-> Не рекомендуется -> Устарело.
Период между пометкой API как устаревшего и удалением составит 90 дней. Обоснование следующее:
Если дополнения TensorFlow выпускаются ежемесячно, перед удалением API будет выпущено 2–3 выпуска. Примечания к выпуску могут дать пользователю достаточно предупреждений.
90 дней дают сопровождающим достаточно времени, чтобы исправить свой код.
Содействие
TF-Addons — это проект с открытым исходным кодом, возглавляемый сообществом. Таким образом, проект зависит от участия общественности, исправлений ошибок и документации. Пожалуйста, ознакомьтесь с правилами внесения вкладов , чтобы узнать, как внести свой вклад. Этот проект придерживается кодекса поведения TensorFlow . Ожидается, что, участвуя, вы будете соблюдать этот кодекс.
Сообщество
- Публичный список рассылки
- Заметки о ежемесячных собраниях SIG
- Подпишитесь на нашу рассылку и получайте календарные приглашения на встречу