عوامل تشغيل محدَّدة من TensorFlow

عوامل التشغيل الأساسية TensorFlow

في ما يلي قائمة شاملة بالعمليات الأساسية لمنصة TensorFlow يتوافق مع وقت تشغيل LiteRT مع ميزة Select TensorFlow Ops.

عاملا تشغيل TensorFlow Text وSentencePiece

محتوى TensorFlow التالي النص عوامل التشغيل SentencePiece المتوافقة إذا كنت تستخدم Python API لتحويل هذه المكتبات واستيرادها

عوامل تشغيل النص TF.Text:

  • CaseFoldUTF8
  • ConstrainedSequence
  • MaxSpanningTree
  • NormalizeUTF8
  • NormalizeUTF8WithOffsetsMap
  • RegexSplitWithOffsets
  • RougeL
  • SentenceFragments
  • SentencepieceOp
  • SentencepieceTokenizeOp
  • SentencepieceTokenizeWithOffsetsOp
  • SentencepieceDetokenizeOp
  • SentencepieceVocabSizeOp
  • SplitMergeTokenizeWithOffsets
  • UnicodeScriptTokenizeWithOffsets
  • WhitespaceTokenizeWithOffsets
  • WordpieceTokenizeWithOffsets

عوامل تشغيل SentencePiece:

  • SentencepieceGetPieceSize
  • SentencepiecePieceToId
  • SentencepieceIdToPiece
  • SentencepieceEncodeDense
  • SentencepieceEncodeSparse
  • SentencepieceDecode

يوضّح المقتطف التالي كيفية تحويل النماذج باستخدام عوامل التشغيل المذكورة أعلاه:

import tensorflow as tf
# These imports are required to load operators' definition.
import tensorflow_text as tf_text
import sentencepiece as spm

converter = tf.lite.TFLiteConverter.from_keras_model(your_model)
converter.target_spec.supported_ops = [
  tf.lite.OpsSet.TFLITE_BUILTINS, tf.lite.OpsSet.SELECT_TF_OPS
]
model_data = converter.convert()

من جانب بيئة التشغيل، يجب أيضًا ربط TensorFlow Text أو مكتبة SentencePiece في التطبيق النهائي أو البرنامج الثنائي.

عوامل التشغيل التي حدّدها المستخدم

.

إذا أنشأت TensorFlow خاص بك ، يمكنك أيضًا تحويل تحتوي عليها إلى LiteRT عن طريق إدراج العوامل المطلوبة في experimental_select_user_tf_ops على النحو التالي:

import tensorflow as tf

ops_module = tf.load_op_library('./your_ops_library.so')

converter = tf.lite.TFLiteConverter.from_saved_model(your_model)
converter.target_spec.supported_ops = [
  tf.lite.OpsSet.TFLITE_BUILTINS, tf.lite.OpsSet.SELECT_TF_OPS
]
converter.target_spec.experimental_select_user_tf_ops = [
    'your_op_name1',
    'your_op_name2'
]
model_data = converter.convert()

من جانب بيئة التشغيل، يجب أيضًا ربط مكتبة المشغّلين التطبيق النهائي أو البرنامج الثنائي.

أضِف عوامل التشغيل الأساسية TensorFlow إلى القائمة المسموح بها.

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

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

(1) إضافة رمز المصدر kernel عامل التشغيل إلى portable_extended_ops_group2 إنشاء القاعدة.

filegroup(
    name = "portable_extended_ops_group2",
    srcs = [
        ...
+   "string_to_number_op.cc",

        ...
    ],
)

للعثور على ملف مصدر kernel ذي الصلة ضمن tensorflow/core/kernels، يمكنك البحث في موقع رمز المصدر الذي يحتوي على تعريف النواة التالي مع اسم عامل التشغيل:

REGISTER_KERNEL_BUILDER(Name("StringToNumber")                 \
                            .Device(DEVICE_CPU)                \
                            .TypeConstraint<type>("out_type"), \
                        StringToNumberOp<type>)

إذا كانت هناك أي ملفات عناوين ضمن الدليل tensorflow/core/kernels، المطلوبة في رمز مصدر نواة المشغل، تحتاج إلى إضافة ملف العنوان في قاعدة portable_extended_ops_headers BUILD على النحو التالي:

filegroup(
    name = "portable_extended_ops_headers",
    srcs = [
        ...
+   "string_util.h",

        ...
    ],
)

(2) أضِف اسم عامل التشغيل إلى القائمة المسموح بها.

يتم تحديد القائمة المسموح بها في tensorflow/lite/delegates/flex/allowlisted_flex_ops.cc جوهر TensorFlow يجب إدراج اسم عامل التشغيل لكي يُسمح باستخدامه من خلال مربّع اختيار TF .

static const std::set<std::string>* allowlisted_flex_ops =
    new std::set<std::string>({
        ...
+   "StringToNumber",

        ...
    });

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

(3) أضِف اسم عامل التشغيل إلى صفحة الدليل هذه.

لتوضيح خيار تضمين عامل التشغيل للمطوّرين الآخرين، يجب أن تكون صفحة الدليل هذه يتم تحديثها أيضًا. توجد هذه الصفحة في tensorflow/lite/g3doc/guide/op_select_allowlist.md

## TensorFlow core operators

The following is an exhaustive list of TensorFlow core operations that are
supported by LiteRT runtime with the Select TensorFlow Ops feature.

...
+*   `raw_ops.StringToNumber`
...

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