Operator core TensorFlow
Berikut adalah daftar lengkap operasi inti TensorFlow yang didukung oleh runtime LiteRT dengan fitur Select TensorFlow Ops.
raw_ops.TokenizerFromLogits
Operator TensorFlow Text dan SentencePiece
TensorFlow berikut Teks dan Operator SentencePiece didukung jika Anda menggunakan Python API untuk konversi dan mengimpor library tersebut.
Operator TF.Text:
CaseFoldUTF8
ConstrainedSequence
MaxSpanningTree
NormalizeUTF8
NormalizeUTF8WithOffsetsMap
RegexSplitWithOffsets
RougeL
SentenceFragments
SentencepieceOp
SentencepieceTokenizeOp
SentencepieceTokenizeWithOffsetsOp
SentencepieceDetokenizeOp
SentencepieceVocabSizeOp
SplitMergeTokenizeWithOffsets
UnicodeScriptTokenizeWithOffsets
WhitespaceTokenizeWithOffsets
WordpieceTokenizeWithOffsets
Operator sentencePiece:
SentencepieceGetPieceSize
SentencepiecePieceToId
SentencepieceIdToPiece
SentencepieceEncodeDense
SentencepieceEncodeSparse
SentencepieceDecode
Cuplikan berikut menunjukkan cara mengonversi model dengan operator di atas:
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()
Di sisi runtime, Anda juga harus menautkan TensorFlow Text atau Library sentencePiece ke dalam aplikasi final atau biner.
Operator yang ditentukan pengguna
Jika Anda membuat TensorFlow sendiri
operator tertentu, Anda juga dapat mengonversi
berisi model yang memuatnya ke LiteRT dengan mencantumkan operator yang diperlukan di
experimental_select_user_tf_ops
sebagai berikut:
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()
Di sisi runtime, Anda juga perlu menautkan library operator ke aplikasi final atau biner.
Tambahkan operator inti TensorFlow ke daftar yang diizinkan.
Jika Anda mengalami kasus jika operator inti TensorFlow tidak termasuk di atas list yang diizinkan, Anda dapat melaporkan permintaan fitur di sini dengan nama-nama Operator inti TensorFlow, tidak tercantum dalam daftar yang diizinkan.
Anda juga dapat membuat permintaan pull Anda sendiri dari kode sumber. Misalnya, jika
Anda ingin menambahkan operasi raw_ops.StringToNumber
dalam daftar yang diizinkan, ada
tiga tempat untuk memperbarui seperti ini
commit.
(1) Tambahkan kode sumber kernel operator ke portable_extended_ops_group2
BUILD.
filegroup(
name = "portable_extended_ops_group2",
srcs = [
...
+ "string_to_number_op.cc",
...
],
)
Untuk menemukan file sumber {i>kernel<i} operator yang relevan di bawah
tensorflow/core/kernels
, Anda dapat menelusuri lokasi kode sumber,
yang berisi deklarasi kernel berikut dengan nama operator:
REGISTER_KERNEL_BUILDER(Name("StringToNumber") \
.Device(DEVICE_CPU) \
.TypeConstraint<type>("out_type"), \
StringToNumberOp<type>)
Jika ada file header
di bawah direktori tensorflow/core/kernels
,
diperlukan dalam kode sumber {i>kernel<i} operator, Anda perlu menambahkan file
ke dalam aturan portable_extended_ops_headers
BUILD sebagai berikut:
filegroup(
name = "portable_extended_ops_headers",
srcs = [
...
+ "string_util.h",
...
],
)
(2) Tambahkan nama operator ke daftar yang diizinkan.
Daftar yang diizinkan didefinisikan dalam
tensorflow/lite/delegates/flex/allowlisted_flex_ops.cc
. TensorFlow Core
nama operator harus dicantumkan agar diizinkan melalui Select TF
sebelumnya.
static const std::set<std::string>* allowlisted_flex_ops =
new std::set<std::string>({
...
+ "StringToNumber",
...
});
Karena daftar di atas diurutkan dalam urutan abjad, pastikan Anda menempatkan di tempat yang tepat.
(3) Tambahkan nama operator ke halaman panduan ini.
Untuk menunjukkan penyertaan operator kepada developer lain, halaman panduan ini harus
diperbarui juga. Halaman ini terletak pada
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`
...
Karena daftar di atas diurutkan dalam urutan abjad, pastikan Anda menempatkan di tempat yang tepat.