Будущее дополнений TensorFlow
import tensorflow as tf import tensorflow_addons as tfa train,test = tf.keras.datasets.mnist.load_data() x_train, y_train = train x_train = x_train[..., tf.newaxis] / 255.0 # TFA layers and activations model = tf.keras.Sequential([ tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3), activation=tfa.activations.gelu), tfa.layers.GroupNormalization(groups=5, axis=3), tf.keras.layers.Flatten(), tf.keras.layers.Dense(10, activation='softmax') ]) # TFA optimizers, losses and metrics model.compile( optimizer=tfa.optimizers.RectifiedAdam(0.001), loss=tfa.losses.TripletSemiHardLoss(), metrics=[tfa.metrics.MultiLabelConfusionMatrix(num_classes=10)]) history = model.fit(x_train, y_train, epochs=10)
TensorFlow Addons (TFA) — это репозиторий поддерживаемых и предоставленных сообществом расширений для TensorFlow, впервые созданный в 2018 году и поддерживаемый сообществом SIG-Addons . В течение 4 лет 200 участников превратили репозиторий TFA в успех, принадлежащий и управляемый сообществом, который используется более чем 8000 репозиториями GitHub в соответствии с нашим графиком зависимостей. Мы хотели бы воспользоваться моментом, чтобы искренне поблагодарить всех, кто принял участие в качестве участника или члена сообщества за их усилия.
В последнее время наблюдается увеличение совпадения вкладов и объема между TFA и библиотеками Keras-CV и Keras-NLP . Чтобы предотвратить дублирование в будущем, мы считаем, что новые и существующие дополнения к TensorFlow лучше всего хранить в репозиториях проектов Keras, где это возможно.
Решение о прекращении использования надстроек TensorFlow
Мы считаем, что в интересах сообщества TensorFlow объединить возможности использования, поддержки и внедрения расширений TensorFlow. Из-за этого нам горько и приятно объявлять о наших планах по переводу надстроек TensorFlow в режим минимального обслуживания и выпуска.
TFA SIG Addons прекратит разработку и внедрение новых функций в этот проект. TFA перейдет в режим минимального обслуживания и выпуска на один год (до мая 2024 года), чтобы дать вам подходящее время для настройки любых зависимостей от перекрывающихся репозиториев в нашем сообществе TensorFlow ( Keras , Keras-CV и Keras-NLP). ). В дальнейшем, пожалуйста, рассмотрите возможность участия в проектах Keras-CV и Keras-NLP.
Фон:
Исходное предложение RFC для TFA было датировано 14 декабря 2018 г., в нем была заявлена цель создания управляемого сообществом репозитория для вкладов, которые соответствуют устоявшимся шаблонам API, но реализуют новые функции, недоступные в ядре TensorFlow, как определено в нашей специальной группе по интересам. (SIG) устав .
С течением времени были созданы новые репозитории со здоровыми сообществами участников (Keras-CV, Keras-NLP и т. д.) с теми же целями, что и наши, и критерии принятия вкладов значительно совпадают (например, количество необходимых цитирований). Кроме того, с тех пор, как Keras отделился от ядра TensorFlow в 2020 году , барьер для вклада сообщества был существенно снижен.
Понятно, что растет неясность относительно того, куда должны поступать взносы и где их лучше всего хранить. Многие функции, доступные в TFA, одновременно доступны в других репозиториях сообщества TensorFlow. Вот лишь несколько примеров:
В рамках исходного RFC наша специальная группа по интересам согласилась перенести код из репозиториев tf.contrib
и keras.contrib
. При этом TFA унаследовала пользовательские операции C++, что сделало TFA уникальным местом в сообществе TensorFlow, позволяющим создавать и распространять пользовательские операции C++. Однако недавно мы перенесли большую часть этой инфраструктуры на Keras-CV, чтобы они могли компилировать и распространять пользовательские операции по своему усмотрению.
Что дальше:
- Выпуски обновлений будут продолжаться в течение 1 года (до мая 2024 г.).
- Предупреждения об импорте в версии 0.20 TFA.
- Эта информация также публикуется в выпуске отслеживания GitHub.
- Перечень эквивалентного функционала доступен здесь .