साथ काम करने वाले चुनिंदा TensorFlow ऑपरेटर

TensorFlow कोर ऑपरेटर

TensorFlow के कोर ऑपरेशन की पूरी सूची नीचे दी गई है यह चुनिंदा TensorFlow Ops सुविधा के साथ, LiteRT रनटाइम के साथ काम करता है.

TensorFlow Text और SendencePiece ऑपरेटर

नीचे दिया गया TensorFlow टेक्स्ट और इसके साथ काम करने वाले SentencePiece ऑपरेटर इस्तेमाल किए जा सकते हैं का इस्तेमाल करें, तो कन्वर्ज़न के लिए Python API का इस्तेमाल करके उन लाइब्रेरी को इंपोर्ट करें.

TF.Text ऑपरेटर:

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

SendencePiece ऑपरेटर:

  • 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 टेक्स्ट को लिंक करना या सेंटेंसपीस लाइब्रेरी को फ़ाइनल ऐप्लिकेशन या बाइनरी में.

उपयोगकर्ता के तय किए गए ऑपरेटर

अगर आपने अपना 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) portable_extended_ops_group2 में ऑपरेटर कर्नेल सोर्स कोड जोड़ें नियम बनाएं.

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

        ...
    ],
)

इससे संबंधित ऑपरेटर कर्नेल सोर्स फ़ाइल को tensorflow/core/kernels डायरेक्ट्री में, सोर्स कोड की जगह की जानकारी खोजी जा सकती है, जिसमें ऑपरेटर के नाम के साथ यह कर्नेल एलान शामिल है:

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

अगर tensorflow/core/kernels डायरेक्ट्री में कोई हेडर फ़ाइल मौजूद है, तो ऑपरेटर कर्नेल स्रोत कोड में आवश्यक है, तो आपको हेडर फ़ाइल जोड़नी होगी portable_extended_ops_headers बिल्ड के नियम में इस तरह शामिल करें:

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`
...

चूंकि ऊपर दी गई सूची वर्णमाला के क्रम में है, इसलिए यह नाम सही स्थान पर रखें.