إضافات 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. من أجل تحقيق ذلك ، نطلب أن تتوافق إضافاتنا مع أنماط واجهة برمجة التطبيقات (API) المعمول بها في TensorFlow الأساسي.

GPU / CPU Custom-Ops

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

الوكيل صيانة

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

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

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

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

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

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

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

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

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

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

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

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

المساهمة

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

تواصل اجتماعي

رخصة

رخصة أباتشي 2.0