آینده افزونه های 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 (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-12-2018 با هدف اعلام شده ایجاد یک مخزن مدیریت شده توسط جامعه برای مشارکت‌هایی که با الگوهای API به خوبی تثبیت شده مطابقت دارد، اما عملکرد جدیدی را که در TensorFlow هسته تعریف شده در گروه علاقه ویژه ما تعریف شده است، پیاده‌سازی می‌کند. منشور (SIG) .

با گذشت سال ها، مخازن جدید با جوامع مشارکت کننده سالم (Keras-CV، Keras-NLP، و غیره) با اهداف مشابه ما ایجاد شده اند و معیارهای پذیرش مشارکت به طور قابل توجهی همپوشانی دارند (به عنوان مثال تعداد نقل قول های مورد نیاز). علاوه بر این، از زمانی که Keras در سال 2020 از هسته TensorFlow جدا شد ، مانع مشارکت جامعه به میزان قابل توجهی کاهش یافته است.

قابل درک است که ابهامات فزاینده ای در مورد اینکه کمک ها باید در کجا فرود آیند و کجا به بهترین نحو نگهداری می شوند وجود داشته است. بسیاری از ویژگی های موجود در TFA به طور همزمان در مخازن دیگر انجمن TensorFlow در دسترس هستند. فقط به عنوان چند نمونه:

به عنوان بخشی از RFC اصلی، گروه علاقه ویژه ما با انتقال کد از مخازن tf.contrib و keras.contrib موافقت کرد. با انجام این کار، TFA عملیات سفارشی C++ را به ارث برد، که TFA را به مکانی منحصربفرد در جامعه TensorFlow برای کمک به عملیات سفارشی C++ برای ساخت و توزیع تبدیل کرد. با این حال، ما اخیراً بسیاری از این زیرساخت‌ها را به Keras-CV منتقل کرده‌ایم تا بتوانند عملیات سفارشی را به دلخواه خود جمع‌آوری و توزیع کنند.

بعد چه می شود:

  • نسخه های تعمیر و نگهداری به مدت 1 سال (تا می 2024) ادامه خواهند داشت.
  • هشدارهای واردات در نسخه 0.20 TFA.
  • این اطلاعات همچنین در مورد مشکل ردیابی GitHub منتشر شده است
  • فهرستی از عملکردهای معادل در اینجا موجود است.