TensorFlow temel operatörleri
Aşağıda, TensorFlow temel işlemlerinin kapsamlı bir listesi verilmiştir Select TensorFlow Ops özelliğiyle LiteRT çalışma zamanı tarafından desteklenir.
raw_ops.TokenizerFromLogits
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
gerekli operatörleri
Ş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 koddan 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 şurada yer alı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 LiteRT 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.