افزونه های TensorFlow




TensorFlow اضافه یک مخزن از کمک های که مطابق با الگوهای API به خوبی تثبیت، اما پیاده سازی قابلیت های جدید در TensorFlow هسته در دسترس نیست. TensorFlow به صورت بومی از تعداد زیادی عملگر، لایه ها، معیارها، ضررها و بهینه سازها پشتیبانی می کند. با این حال، در زمینه‌ای در حال حرکت سریع مانند ML، بسیاری از پیشرفت‌های جالب جدید وجود دارد که نمی‌توان آنها را در هسته TensorFlow ادغام کرد (زیرا کاربرد گسترده آنها هنوز مشخص نیست، یا بیشتر توسط زیرمجموعه کوچک‌تری از جامعه استفاده می‌شود).

نصب و راه اندازی

ساختمان های پایدار

برای نصب آخرین نسخه، موارد زیر را اجرا کنید:

pip install tensorflow-addons

برای استفاده از افزونه ها:

import tensorflow as tf
import tensorflow_addons as tfa

ساختمان های شبانه

همچنین می شبانه می سازد از TensorFlow اضافه زیر بسته پیپ وجود دارد tfa-nightly ، که در برابر آخرین نسخه پایدار از TensorFlow ساخته شده است. ساخت‌های شبانه دارای ویژگی‌های جدیدتری هستند، اما ممکن است نسبت به نسخه‌های نسخه‌شده پایدارتر باشند.

pip install tfa-nightly

نصب از منبع

شما همچنین می توانید از منبع نصب کنید. این امر مستلزم بازل سیستم ساخت.

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 Custom-Ops

یکی از مزایای اصلی افزونه های TensorFlow این است که عملیات از پیش کامپایل شده وجود دارد. اگر نصب CUDA 10 پیدا نشود، عملیات به طور خودکار به یک پیاده سازی CPU برمی گردد.

پروکسی Maintainership

افزونه‌ها برای تقسیم بسته‌های فرعی و زیر ماژول‌ها طراحی شده‌اند تا بتوانند توسط کاربرانی که تخصص و علاقه خاصی به آن جزء دارند نگهداری شوند.

نگهداری از بسته فرعی تنها پس از مشارکت قابل توجه به منظور محدود کردن تعداد کاربران دارای مجوز نوشتن، اعطا خواهد شد. مشارکت ها می توانند به شکل بسته شدن مشکل، رفع اشکال، اسناد، کد جدید یا بهینه سازی کد موجود باشد. نگهداری زیر ماژول را می توان با یک مانع کمتر برای ورود اعطا کرد زیرا این شامل مجوزهای نوشتن به مخزن نمی شود.

برای اطلاعات بیشتر به در RFC در این موضوع.

ارزیابی دوره ای بسته های فرعی

با توجه به ماهیت این مخزن، بسته های فرعی و زیر ماژول ها ممکن است با گذشت زمان کمتر و کمتر برای جامعه مفید باشند. به منظور پایدار نگه داشتن مخزن، ما هر دو سال یک بار کد خود را بررسی خواهیم کرد تا مطمئن شویم که همه چیز همچنان در مخزن قرار دارد. عوامل مؤثر در این بررسی عبارتند از:

  1. تعداد نگهبانان فعال
  2. میزان استفاده از OSS
  3. تعداد مشکلات یا اشکالات نسبت داده شده به کد
  4. اگر اکنون راه حل بهتری در دسترس است

عملکرد در افزونه های TensorFlow را می توان به سه گروه طبقه بندی کرد:

  • های پیشنهادی: API به خوبی نگهداری؛ استفاده تشویق می شود.
  • دلسرد: یک جایگزین بهتر در دسترس است؛ API به دلایل تاریخی نگهداری می شود. یا API نیاز به نگهداری دارد و دوره انتظار منسوخ شدن است.
  • توصیه: استفاده از در معرض خطر خود شما. موضوع حذف شدن

تغییر وضعیت بین این سه گروه عبارت است از: پیشنهادی <-> دلسرد -> منسوخ شده.

فاصله زمانی بین علامت گذاری یک API به عنوان منسوخ شده و حذف شدن 90 روز خواهد بود. منطق این است:

  1. در صورتی که TensorFlow Addons ماهانه منتشر شود، قبل از حذف یک API، 2-3 نسخه وجود خواهد داشت. یادداشت های انتشار می تواند به کاربر هشدار کافی بدهد.

  2. 90 روز به نگهبانان زمان کافی برای اصلاح کد خود می دهد.

کمک کردن

TF-Addons یک پروژه منبع باز تحت رهبری جامعه است. به این ترتیب، پروژه به مشارکت عمومی، رفع اشکال و مستندات بستگی دارد. لطفا نگاه کنید به دستورالعمل سهم برای یک راهنمای در مورد چگونگی کمک می کند. این پروژه پایبند به کد TensorFlow در مورد رفتار . با شرکت، از شما انتظار می رود که این کد را حفظ کنید.

انجمن

مجوز

مجوز آپاچی 2.0