TensorFlow कोर ऑपरेटर
TensorFlow के कोर ऑपरेशन की पूरी सूची नीचे दी गई है यह चुनिंदा TensorFlow Ops सुविधा के साथ, LiteRT रनटाइम के साथ काम करता है.
raw_ops.TokenizerFromLogits
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`
...
चूंकि ऊपर दी गई सूची वर्णमाला के क्रम में है, इसलिए यह नाम सही स्थान पर रखें.