إضافات TensorFlow




TensorFlow Addons عبارة عن مستودع للمساهمات التي تتوافق مع أنماط واجهة برمجة التطبيقات (API) الراسخة، ولكنها تنفذ وظائف جديدة غير متوفرة في TensorFlow الأساسية. يدعم TensorFlow أصلاً عددًا كبيرًا من المشغلين والطبقات والمقاييس والخسائر والمحسنات. ومع ذلك، في مجال سريع الحركة مثل تعلم الآلة، هناك العديد من التطورات الجديدة المثيرة للاهتمام التي لا يمكن دمجها في TensorFlow الأساسي (لأن إمكانية تطبيقها على نطاق واسع ليست واضحة بعد، أو يتم استخدامها في الغالب من قبل مجموعة فرعية أصغر من المجتمع).

تثبيت

بنيات مستقرة

لتثبيت الإصدار الأحدث، قم بتشغيل ما يلي:

pip install tensorflow-addons

لاستخدام الإضافات:

import tensorflow as tf
import tensorflow_addons as tfa

يبني ليلا

هناك أيضًا إصدارات ليلية من TensorFlow Addons ضمن حزمة 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

المفاهيم الأساسية

واجهة برمجة التطبيقات الموحدة ضمن الحزم الفرعية

تعد تجربة المستخدم وقابلية صيانة المشروع من المفاهيم الأساسية في TF-Addons. من أجل تحقيق ذلك، نطلب أن تتوافق إضافاتنا مع أنماط واجهة برمجة التطبيقات (API) المثبتة في TensorFlow الأساسية.

العمليات المخصصة لوحدة معالجة الرسومات/وحدة المعالجة المركزية

الميزة الرئيسية لـ TensorFlow Addons هي وجود عمليات مجمعة مسبقًا. في حالة عدم العثور على تثبيت CUDA 10، ستعود العملية تلقائيًا إلى تنفيذ وحدة المعالجة المركزية.

صيانة الوكيل

تم تصميم الإضافات لتقسيم الحزم الفرعية والوحدات الفرعية بحيث يمكن صيانتها من قبل المستخدمين الذين لديهم خبرة واهتمام خاص بهذا المكون.

لن يتم منح صيانة الحزمة الفرعية إلا بعد تقديم مساهمة كبيرة من أجل الحد من عدد المستخدمين الذين لديهم إذن الكتابة. يمكن أن تأتي المساهمات في شكل إغلاق المشكلات، أو إصلاحات الأخطاء، أو الوثائق، أو التعليمات البرمجية الجديدة، أو تحسين التعليمات البرمجية الموجودة. يمكن منح صيانة الوحدة الفرعية مع حاجز أقل للدخول لأن هذا لن يشمل أذونات الكتابة إلى الريبو.

لمزيد من المعلومات، راجع RFC حول هذا الموضوع.

التقييم الدوري للحزم الفرعية

نظرًا لطبيعة هذا المستودع، قد تصبح الحزم الفرعية والوحدات الفرعية أقل فائدة للمجتمع مع مرور الوقت. من أجل الحفاظ على استدامة المستودع، سنقوم بإجراء مراجعات نصف سنوية للكود الخاص بنا للتأكد من أن كل شيء لا يزال ينتمي إلى الريبو. العوامل المساهمة في هذه المراجعة ستكون:

  1. عدد المشرفين النشطين
  2. مقدار استخدام OSS
  3. عدد المشكلات أو الأخطاء المنسوبة إلى الكود
  4. إذا كان الحل الأفضل متاحًا الآن

يمكن تصنيف الوظائف ضمن TensorFlow Addons إلى ثلاث مجموعات:

  • مقترح : واجهة برمجة التطبيقات (API) التي يتم صيانتها جيدًا؛ يتم تشجيع الاستخدام.
  • محبط : هناك بديل أفضل متاح؛ يتم الاحتفاظ بواجهة برمجة التطبيقات (API) لأسباب تاريخية؛ أو تتطلب واجهة برمجة التطبيقات الصيانة وهي فترة الانتظار التي سيتم إهمالها.
  • مهمل : استخدمه على مسؤوليتك الخاصة؛ الموضوع المراد حذفه

تغيير الحالة بين هذه المجموعات الثلاث هو: مقترح <-> محبط -> مهمل.

ستكون الفترة بين واجهة برمجة التطبيقات التي تم وضع علامة عليها كمهملة وحذفها 90 يومًا. الأساس المنطقي هو:

  1. في حالة إصدار TensorFlow Addons شهريًا، سيكون هناك 2-3 إصدارات قبل حذف واجهة برمجة التطبيقات. يمكن لملاحظات الإصدار أن تعطي المستخدم تحذيرًا كافيًا.

  2. 90 يومًا تمنح المشرفين وقتًا كافيًا لإصلاح التعليمات البرمجية الخاصة بهم.

المساهمة

TF-Addons هو مشروع مفتوح المصدر بقيادة المجتمع. على هذا النحو، يعتمد المشروع على المساهمات العامة وإصلاحات الأخطاء والوثائق. يرجى الاطلاع على إرشادات المساهمة للحصول على دليل حول كيفية المساهمة. يلتزم هذا المشروع بقواعد سلوك TensorFlow . من خلال المشاركة، يتوقع منك الحفاظ على هذا الرمز.

مجتمع

رخصة

ترخيص أباتشي 2.0