Operatorët kryesorë të TensorFlow
Më poshtë është një listë shteruese e operacioneve thelbësore të TensorFlow që mbështeten nga koha e ekzekutimit të LiteRT me veçorinë Select TensorFlow Ops.
- raw_ops.TokenizerFromLogits
Operatorët TensorFlow Text dhe SentencePiece
Operatorët e mëposhtëm TensorFlow Text dhe SentencePiece mbështeten nëse përdorni Python API për konvertimin dhe importimin e këtyre bibliotekave.
TF.Operatorët e tekstit:
-  CaseFoldUTF8
-  ConstrainedSequence
-  MaxSpanningTree
-  NormalizeUTF8
-  NormalizeUTF8WithOffsetsMap
-  RegexSplitWithOffsets
-  RougeL
-  SentenceFragments
-  SentencepieceOp
-  SentencepieceTokenizeOp
-  SentencepieceTokenizeWithOffsetsOp
-  SentencepieceDetokenizeOp
-  SentencepieceVocabSizeOp
-  SplitMergeTokenizeWithOffsets
-  UnicodeScriptTokenizeWithOffsets
-  WhitespaceTokenizeWithOffsets
-  WordpieceTokenizeWithOffsets
Operatorët SentencePiece:
-  SentencepieceGetPieceSize
-  SentencepiecePieceToId
-  SentencepieceIdToPiece
-  SentencepieceEncodeDense
-  SentencepieceEncodeSparse
-  SentencepieceDecode
Snippeti i mëposhtëm tregon se si të konvertohen modelet me operatorët e mësipërm:
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()
Në anën e kohës së funksionimit, kërkohet gjithashtu të lidhni bibliotekën TensorFlow Text ose SentencePiece në aplikacionin përfundimtar ose binar.
Operatorët e përcaktuar nga përdoruesi
 Nëse keni krijuar operatorët tuaj TensorFlow , ju gjithashtu mund t'i konvertoni modelet që i përmbajnë në LiteRT duke renditur operatorët e kërkuar në experimental_select_user_tf_ops si më poshtë:
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()
Në anën e kohës së funksionimit, kërkohet gjithashtu të lidhni bibliotekën tuaj të operatorëve në aplikacionin përfundimtar ose binar.
Shtoni operatorët kryesorë TensorFlow në listën e lejuar.
Nëse e goditni rastin kur operatorët kryesorë TensorFlow nuk janë në listën e mësipërme të lejuar, mund ta raportoni kërkesën e veçorive këtu me emrat e operatorëve kryesorë TensorFlow, që nuk janë të listuar në listën e lejuar.
 Ju gjithashtu mund të krijoni kërkesën tuaj për tërheqje nga kodi burimor. Për shembull, nëse doni të shtoni op raw_ops.StringToNumber në listën e lejuar, ka tre vende për të përditësuar si ky commit .
 (1) Shtoni kodin burimor të kernelit të operatorit te rregulli portable_extended_ops_group2 BUILD.
filegroup(
    name = "portable_extended_ops_group2",
    srcs = [
        ...
+   "string_to_number_op.cc",
        ...
    ],
)
 Për të gjetur skedarin burimor përkatës të kernelit të operatorit nën drejtorinë tensorflow/core/kernels , mund të kërkoni vendndodhjen e kodit burimor, i cili përmban deklaratën e mëposhtme të kernelit me emrin e operatorit:
REGISTER_KERNEL_BUILDER(Name("StringToNumber")                 \
                            .Device(DEVICE_CPU)                \
                            .TypeConstraint<type>("out_type"), \
                        StringToNumberOp<type>)
 Nëse ka ndonjë skedar header nën direktorinë tensorflow/core/kernels , të kërkuar në kodin burimor të kernelit të operatorit, ju duhet të shtoni skedarin e kokës në rregullin portable_extended_ops_headers BUILD si më poshtë:
filegroup(
    name = "portable_extended_ops_headers",
    srcs = [
        ...
+   "string_util.h",
        ...
    ],
)
(2) Shtoni emrin e operatorit në listën e lejuar.
 Lista e lejuar përcaktohet në tensorflow/lite/delegates/flex/allowlisted_flex_ops.cc . Emri i operatorit kryesor TensorFlow duhet të renditet në mënyrë që të lejohet përmes opsionit Select TF.
static const std::set<std::string>* allowlisted_flex_ops =
    new std::set<std::string>({
        ...
+   "StringToNumber",
        ...
    });
Meqenëse lista e mësipërme është renditur sipas rendit alfabetik, sigurohet që të vendoset emri në vendin e duhur.
(3) Shtoni emrin e operatorit në këtë faqe udhëzuese.
 Për të treguar përfshirjen e operatorit te zhvilluesit e tjerë, kjo faqe udhëzuese duhet gjithashtu të përditësohet. Kjo faqe ndodhet në 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`
...
Meqenëse lista e mësipërme është renditur sipas rendit alfabetik, sigurohet që të vendoset emri në vendin e duhur.