Desteklenen Select TensorFlow operatörleri

TensorFlow temel operatörleri

Aşağıda, TensorFlow temel işlemlerinin kapsamlı bir listesi verilmiştir Select TensorFlow Ops özelliğiyle TensorFlow Lite çalışma zamanı tarafından desteklenir.

TensorFlow Text ve SentencePiece operatörleri

Aşağıdaki TensorFlow Text ve SentencePiece operatörleri desteklenir Python API'yi kullanıp bu kitaplıkları içe aktarırsanız

TF.Text operatörleri:

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

SentencePiece operatörleri:

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

Aşağıdaki snippet'te, yukarıdaki operatörlerle modellerin nasıl dönüştürüleceği gösterilmektedir:

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()

Çalışma zamanı tarafında, TensorFlow Text veya SentencePiece kitaplığını son uygulamaya veya ikili program hâline getirin.

Kullanıcının tanımlı Operatörleri

Kendi TensorFlow'unuzu oluşturduysanız operatörleri kullanıyorsanız bunları içeren modelleri TensorFlow Lite'a eklemek Şu şekilde 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()

Çalışma zamanı tarafında, operatör kitaplığınızın son uygulama veya ikili program.

İzin verilenler listesine TensorFlow temel operatörlerini ekleyin.

Temel TensorFlow operatörlerinin yukarıdakiler arasında olmadığı bir durumla karşılaşırsanız izin verilenler listesini görüyorsanız özellik isteğini bildirebilirsiniz. burada bulabilirsiniz İzin verilenler listesinde olmayan TensorFlow temel operatörleri.

Kendi pull isteğinizi kaynak kodundan da oluşturabilirsiniz. Örneğin, raw_ops.StringToNumber işlemini izin verilenler listesine eklemek istiyorsanız bunun gibi güncellenecek üç yer taahhüt.

(1) Operatör çekirdek kaynak kodunu portable_extended_ops_group2 BUILD kuralı.

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

        ...
    ],
)

Şunun altında ilgili operatör çekirdeği kaynak dosyasını bulmak için: tensorflow/core/kernels dizininden kaynak kodu konumunda arama yapabilirsiniz. aşağıdaki çekirdek bildirimini içerir:

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

tensorflow/core/kernels dizininin altında üstbilgi dosyası varsa operatör çekirdeği kaynak kodunda gerekliyse başlık dosyasını portable_extended_ops_headers BUILD kuralına şu şekilde ekleyin:

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

        ...
    ],
)

(2) Operatör adını izin verilenler listesine ekleyin.

İzin verilenler listesi tensorflow/lite/delegates/flex/allowlisted_flex_ops.cc TensorFlow'un temel yapısı Select TF aracılığıyla izin verilebilmesi için operatör adının listelenmesi gerekir seçeneğini belirleyin.

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

        ...
    });

Yukarıdaki liste alfabetik olarak sıralandığı için doğru yere koyduğunuzdan emin olun.

(3) Operatör adını bu kılavuz sayfasına ekleyin.

Operatör dahil etme işlemini diğer geliştiricilere göstermek için bu kılavuz sayfasında da güncellenir. Bu sayfa şuradadır: 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 TensorFlow Lite runtime with the Select TensorFlow Ops feature.

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

Yukarıdaki liste alfabetik olarak sıralandığı için doğru yere koyduğunuzdan emin olun.