عوامل التشغيل الأساسية TensorFlow
في ما يلي قائمة شاملة بالعمليات الأساسية لمنصة TensorFlow يتوافق مع وقت تشغيل LiteRT مع ميزة Select TensorFlow Ops.
raw_ops.TokenizerFromLogits
عاملا تشغيل 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`
...
نظرًا لأن القائمة أعلاه يتم فرزها بترتيب أبجدي، فإنها تتأكد من وضع في المكان الصحيح.