'tfl' 方言

TensorFlow Lite 方言。

此方言對應至 TensorFlow Lite 運算。

不變量

  • 所有值皆為 Tensor 類型 (特別是,純量會使用零維張量表示);

運算

tfl.abs (TFL::AbsOp)

絕對值運算子

給定張量 x,此運算會傳回包含 x 中每個元素的絕對值的張量。例如,如果 x 是輸入元素,而 y 是輸出元素,則此運算會計算 \(y = |x|\)。

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 16 位元無號整數或 32 位元無號整數或 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

結果

結果 說明
y 16 位元無號整數或 32 位元無號整數或 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

tfl.add (TFL::AddOp)

加法運算子

元素級加法運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeQuantizableResultResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
lhs 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
rhs 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
output 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.add_n (TFL::AddNOp)

_Addn 運算子

以元素級方式新增所有輸入張量。

特性:AlwaysSpeculatableImplTraitCommutative

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
inputs 任何類型值的張量的變數引數

結果

結果 說明
sum 32 位元浮點數或 32 位元無號整數值的張量

tfl.arg_max (TFL::ArgMaxOp)

ArgMax 運算子

傳回張量維度中具有最大值的索引。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
output_type::mlir::Attribute衍生屬性

運算元

運算元 說明
input 1 位元無號整數或 32 位元浮點數或 32 位元無號整數或 8 位元無號整數或 8 位元無正負號整數或 QI8 類型或 QUI8 類型值的張量
dim 32/64 位元無號整數值的張量

結果

結果 說明
output 32/64 位元無號整數值的張量

tfl.arg_min (TFL::ArgMinOp)

ArgMin 運算子

傳回張量維度中具有最小值的索引。a = [1, 10, 26.9, 2.8, 166.32, 62.3] b = tf.math.argmin(input = a) c = tf.keras.backend.eval(b)

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
output_type::mlir::Attribute衍生屬性

運算元

運算元 說明
input 1 位元無號整數或 32 位元浮點數或 32 位元無號整數或 8 位元無號整數或 8 位元無正負號整數或 QI8 類型或 QUI8 類型值的張量
dim 32/64 位元無號整數值的張量

結果

結果 說明
output 32/64 位元無號整數值的張量

tfl.assign_variable (TFL::AssignVariableOp)

為變數指派新值。

任何對此運算具有控制依附性的 ReadVariableOp 保證會傳回此值,或是變數後續更新的值。

介面:TflRuntimeVerifyOpInterface

運算元

運算元 說明
resource_id 資源值的張量
value 32 位元浮點數或 64 位元浮點數或 1 位元無號整數或 8 位元無正負號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 32 位元無號整數或 64 位元無號整數或 QI16 類型或具有 32 位元浮點數元素的複數類型或具有 64 位元浮點數元素的複數類型值的張量

tfl.atan2 (TFL::Atan2Op)

Atan2 運算

"atan2" 運算會以元素級方式計算 y/x 的反正切值,並考量引數的正負號。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultElementTypeSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
y 32 位元浮點數或 64 位元浮點數值的張量
x 32 位元浮點數或 64 位元浮點數值的張量

結果

結果 說明
output 32 位元浮點數或 64 位元浮點數值的張量

tfl.average_pool_2d (TFL::AveragePool2DOp)

_Average_pool2d 運算子

對輸入執行平均池化運算。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
filter_height::mlir::IntegerAttr32 位元無號整數屬性
filter_width::mlir::IntegerAttr32 位元無號整數屬性
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_h::mlir::IntegerAttr32 位元無號整數屬性
stride_w::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.basic_lstm (TFL::BasicLSTMOp)

基本 lstm 運算子

基本 LSTM 儲存格運算子。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
cell_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
proj_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
kernel_type::mlir::TFL::LSTMKernelTypeAttrlstm_kernel_type,其值為 mlir::TFL::LSTMKernelType::BASIC

運算元

運算元 說明
data_input 32 位元浮點數或 QUI8 類型值的張量
prev_activ_input 32 位元浮點數或 QUI8 類型值的張量
weights_input 32 位元浮點數或 QUI8 類型值的張量
biases_input 32 位元浮點數或 QI32 類型值的張量
prev_state_input 32 位元浮點數或 QI16 類型值的張量

結果

結果 說明
activ_output 任何類型值的 2D 張量
state_output 任何類型值的 2D 張量
concat_temp 任何類型值的 2D 張量
activ_temp 任何類型值的 2D 張量

tfl.batch_matmul (TFL::BatchMatMulOp)

批次矩陣乘法運算子

對輸入執行批次矩陣乘法。遵循 TensorFlow BatchMatMulV2 的慣例,支援批次維度和廣播中的未知維度。

Inputs:
  `inputs[0]`: required: input LHS
  `inputs[1]`: required: input RHS
  `adjoint_lhs`: optional: Transpose LHS (default false)
  `adjoint_lhs`: optional: Transpose LHS (default false)

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
adj_x::mlir::BoolAttr布林值屬性
adj_y::mlir::BoolAttr布林值屬性
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性

運算元

運算元 說明
x 32 位元浮點數或 QI8 類型或 QI16 類型或 8 位元無號整數值的張量
y 32 位元浮點數或 QI8 類型或 QI16 類型或 8 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QI16 類型或 32 位元無號整數值的張量

tfl.batch_to_space_nd (TFL::BatchToSpaceNdOp)

BatchToSpaceNd 運算子

此運算會將「批次」維度 0 重新塑形為空間維度。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無正負號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
block_shape 32 位元無號整數值的張量
indices 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無正負號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.bidirectional_sequence_lstm (TFL::BidirectionalSequenceLSTMOp)

雙向序列 lstm 運算子

雙向 lstm 本質上是兩個 lstm,一個向前執行,另一個向後執行。而輸出是兩個 lstm 的串連。

特性:QuantizableResult

介面:DynamicRangeQuantizedOpInterfaceTFL_StatefulOpTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
cell_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
proj_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
merge_outputs::mlir::BoolAttr布林值屬性
time_major::mlir::BoolAttr布林值屬性
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數值的張量
fw_input_to_input_weights 任何類型值或無類型值的張量
fw_input_to_forget_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_input_to_cell_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_input_to_output_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_recurrent_to_input_weights 任何類型值或無類型值的張量
fw_recurrent_to_forget_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_recurrent_to_cell_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_recurrent_to_output_weights 32 位元浮點數或 8 位元無號整數值的張量
fw_cell_to_input_weights 任何類型值或無類型值的張量
fw_cell_to_forget_weights 任何類型值或無類型值的張量
fw_cell_to_output_weights 任何類型值或無類型值的張量
fw_input_gate_bias 任何類型值或無類型值的張量
fw_forget_gate_bias 32 位元浮點數值的張量
fw_cell_bias 32 位元浮點數值的張量
fw_output_gate_bias 32 位元浮點數值的張量
fw_projection_weights 任何類型值或無類型值的張量
fw_projection_bias 任何類型值或無類型值的張量
bw_input_to_input_weights 任何類型值或無類型值的張量
bw_input_to_forget_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_input_to_cell_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_input_to_output_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_recurrent_to_input_weights 任何類型值或無類型值的張量
bw_recurrent_to_forget_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_recurrent_to_cell_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_recurrent_to_output_weights 32 位元浮點數或 8 位元無號整數值的張量
bw_cell_to_input_weights 任何類型值或無類型值的張量
bw_cell_to_forget_weights 任何類型值或無類型值的張量
bw_cell_to_output_weights 任何類型值或無類型值的張量
bw_input_gate_bias 任何類型值或無類型值的張量
bw_forget_gate_bias 32 位元浮點數值的張量
bw_cell_bias 32 位元浮點數值的張量
bw_output_gate_bias 32 位元浮點數值的張量
bw_projection_weights 任何類型值或無類型值的張量
bw_projection_bias 任何類型值或無類型值的張量
fw_input_activation_state 具狀態張量
fw_input_cell_state 具狀態張量
bw_input_activation_state 具狀態張量
bw_input_cell_state 具狀態張量
aux_input 任何類型值或無類型值的張量
fw_aux_input_to_input_weights 任何類型值或無類型值的張量
fw_aux_input_to_forget_weights 任何類型值或無類型值的張量
fw_aux_input_to_cell_weights 任何類型值或無類型值的張量
fw_aux_input_to_output_weights 任何類型值或無類型值的張量
bw_aux_input_to_input_weights 任何類型值或無類型值的張量
bw_aux_input_to_forget_weights 任何類型值或無類型值的張量
bw_aux_input_to_cell_weights 任何類型值或無類型值的張量
bw_aux_input_to_output_weights 任何類型值或無類型值的張量

結果

結果 說明
fw_output 任何類型值的張量
bw_output 任何類型值的張量

tfl.bitcast (TFL::BitcastOp)

Bitcast 運算子

將張量的類型從一種轉換為另一種。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 任何類型值的張量

結果

結果 說明
output 任何類型值的張量

tfl.bitwise_xor (TFL::BitwiseXorOp)

位元 XOR 運算子

以元素級方式計算 lhsrhs 的位元 XOR。

特性:AlwaysSpeculatableImplTraitCommutativeSameOperandsAndResultElementType

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量
rhs 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量

結果

結果 說明
output 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量

tfl.broadcast_args (TFL::BroadcastArgsOp)

傳回透過廣播的 s0 op s1 的形狀。

給定代表形狀的張量 s0s1,計算廣播形狀 r0s0s1r0 都是整數向量。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
s0 32/64 位元無號整數值的張量
s1 32/64 位元無號整數值的張量

結果

結果 說明
r0 32/64 位元無號整數值的張量

tfl.broadcast_to (TFL::BroadcastToOp)

將陣列廣播為相容的形狀。

廣播是使陣列具有相容形狀以進行算術運算的過程。如果每個維度對不是相等,就是其中一個為一,則兩個形狀是相容的。當嘗試將張量廣播為形狀時,它會從尾隨維度開始,然後向前推進。

例如:

x = tf.constant([1, 2, 3]) y = tf.broadcast_to(x, [3, 3]) print(y) tf.Tensor( [[1 2 3] [1 2 3] [1 2 3]], shape=(3, 3), dtype=int32)

在上述範例中,形狀為 [1, 3] 的輸入張量會廣播為形狀為 [3, 3] 的輸出張量。

當執行廣播運算 (例如將張量乘以純量) 時,廣播 (通常) 會帶來一些時間或空間優勢,因為廣播張量永遠不會實體化。

但是,broadcast_to 不具備任何此類優勢。新建立的張量會佔用廣播形狀的完整記憶體。(在圖表環境中,broadcast_to 可能會融合到後續運算,然後被最佳化掉,但情況並非總是如此。)

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 1 位元無號整數或 4 位元無號整數或 8 位元無號整數或 QI8 類型或 8 位元無正負號整數或 32 位元無正負號整數或 QUI8 類型或 16 位元無號整數或 QI16 類型或 64 位元無號整數或具有 32 位元浮點數元素的複數類型值的張量
shape 32/64 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 1 位元無號整數或 4 位元無號整數或 8 位元無號整數或 QI8 類型或 8 位元無正負號整數或 32 位元無正負號整數或 QUI8 類型或 16 位元無號整數或 QI16 類型或 64 位元無號整數或具有 32 位元浮點數元素的複數類型值的張量

tfl.bucketize (TFL::BucketizeOp)

根據「boundaries」將「input」分桶。

範例

如果輸入為 boundaries = [0, 10, 100]input = [[-5, 10000][150, 10][5, 100]],則輸出將為 output = [[0, 3][3, 2][1, 3]]

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
boundaries::mlir::ArrayAttr32 位元浮點數陣列屬性

運算元

運算元 說明
input 32 位元浮點數或 64 位元浮點數或 32 位元無號整數或 64 位元無號整數值的張量

結果

結果 說明
output 32 位元無號整數值的張量

tfl.call_once (TFL::CallOnceOp)

叫用初始化函式

此運算會在 tf 已儲存模型方言中,為工作階段初始化程式叫用指定的初始化函式。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
session_init_function::mlir::StringAttr字串屬性

tfl.cast (TFL::CastOp)

Cast 運算子

將輸入從輸入類型轉換為輸出類型。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 16 位元浮點數或 bfloat16 類型或 32 位元浮點數或 64 位元浮點數或 1 位元無號整數或 4 位元無號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數或 64 位元無號整數或 TFLite quint8 類型或 8 位元無正負號整數或 8 位元無號整數或具有 32 位元浮點數元素的複數類型值的張量

結果

結果 說明
output 16 位元浮點數或 bfloat16 類型或 32 位元浮點數或 64 位元浮點數或 1 位元無號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數或 64 位元無號整數或 TFLite quint8 類型或 8 位元無正負號整數或 8 位元無號整數或具有 32 位元浮點數元素的複數類型值的張量

tfl.ceil (TFL::CeilOp)

Ceil 運算子

傳回輸入的元素級上限值。

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.complex_abs (TFL::ComplexAbsOp)

計算張量的複數絕對值。

給定複數的張量 x,此運算會傳回類型為 floatdouble 的張量,其為 x 中每個元素的絕對值。x 中的所有元素都必須是 \(a + bj\) 形式的複數。絕對值計算為 \( \sqrt{a^2 + b^2}\)。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 具有 32 位元浮點數元素的複數類型或具有 64 位元浮點數元素的複數類型值的張量

結果

結果 說明
output 32 位元浮點數或 64 位元浮點數值的張量

tfl.concatenation (TFL::ConcatenationOp)

Concatenation 運算子

沿一個維度串連張量

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
axis::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
values 任何類型值的張量的變數引數

結果

結果 說明
output 32 位元浮點數或 64 位元無號整數或 32 位元無號整數或 16 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 8 位元無正負號整數或 32 位元無正負號整數或 1 位元無號整數值的張量

tfl.control_node (TFL::ControlNodeOp)

TFL.control_node 運算會包裝單區塊運算,以便附加控制邊緣。

這用於包裝區域並將控制依附性附加至這些區域。通常,這會在發出平面緩衝區模型之前的最後步驟之一中發生,以便啟用依賴於固定運算順序的最佳化 (例如重新具體化)。平面緩衝區匯出器會解開包裝的區域,並以中繼資料註解產生的模型,以便任何執行階段重新排序都會遵循控制依附性給定的順序。

特性:HasParent<mlir::func::FuncOp>RecursiveMemoryEffectsSingleBlockImplicitTerminator<YieldOp>SingleBlock

運算元

運算元 說明
controlInputs 控制的變數引數

結果

結果 說明
outputs 任何類型值的張量的變數引數
control control

tfl.conv_2d (TFL::Conv2DOp)

Convolution 運算子

對輸入執行 convolution 運算。

輸入:inputs[0]:必要:輸入啟動張量 inputs[1]:必要:濾波器權重張量 inputs[2]:選用:偏差張量

特性:AlwaysSpeculatableImplTraitQuantizableResultquant::AccumulatorUniformScale<2, 0, 1>quant::AffineOpCoefficient<0, 1>

介面:AffineQuantizedOpInterfaceConditionallySpeculatableDynamicRangeQuantizedOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TFL_SparseOpTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
dilation_h_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_w_factor::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_h::mlir::IntegerAttr32 位元無號整數屬性
stride_w::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
filter 32 位元浮點數或 QI4 類型或 QI8 類型或 QUI8 類型值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.conv_3d (TFL::Conv3DOp)

Convolution 3D 運算子

對 3D 輸入執行 convolution 運算。輸入:inputs[0]:必要:輸入啟動張量 inputs[1]:必要:濾波器權重張量 inputs[2]:選用:偏差張量

特性:AlwaysSpeculatableImplTraitquant::AccumulatorUniformScale<2, 0, 1>

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
dilation_d_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_h_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_w_factor::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_d::mlir::IntegerAttr32 位元無號整數屬性
stride_h::mlir::IntegerAttr32 位元無號整數屬性
stride_w::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
input 32 位元浮點數值的張量
filter 32 位元浮點數值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.conv_3d_transpose (TFL::Conv3DTransposeOp)

轉置 Convolution 3D 運算子

對 3D 輸入執行轉置 convolution 運算。輸入:inputs[0]:必要:輸出張量的形狀 inputs[1]:必要:濾波器權重張量 inputs[2]:必要:輸入啟動張量 inputs[3]:選用:偏差張量

特性:AlwaysSpeculatableImplTraitquant::AccumulatorUniformScale<2, 0, 1>

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
dilation_d_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_h_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_w_factor::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_d::mlir::IntegerAttr32 位元無號整數屬性
stride_h::mlir::IntegerAttr32 位元無號整數屬性
stride_w::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
output_shape 32 位元無號整數值的張量
filter 32 位元浮點數值的張量
input 32 位元浮點數值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.cos (TFL::CosOp)

Cosine 運算子

計算輸入的元素級 Cosine

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.cumsum (TFL::CumsumOp)

Cumsum 運算子

計算張量 x 沿軸的累計總和。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
exclusive::mlir::BoolAttr布林值屬性
reverse::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 64 位元無號整數值的張量
axis 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數值的張量

tfl.custom (TFL::CustomOp)

自訂運算

適用於任何 TFLite 自訂運算的通用運算。

input:原始運算中的輸入清單。custom_code:用於識別此運算具體為何的字串,對應於平面緩衝區中的 operator_codes.custom_code。custom_option:用於以位元組方式儲存運算屬性的持有者。output:原始運算中的輸出清單。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
custom_code::mlir::StringAttr字串屬性
custom_option::mlir::TFL::ConstBytesAttr已編譯位元組的字串屬性表示法

運算元

運算元 說明
input 任何類型值或無類型值的張量的變數引數

結果

結果 說明
output 任何類型值的張量的變數引數

tfl.custom_tf (TFL::CustomTfOp)

TF 自訂運算的包裝函式運算。

任何自訂 TF 運算的包裝函式運算。這些包括使用 custom_opdefs 定義或連結,但未在 TF 方言中定義的運算。此運算只會將自訂運算包裝在區域內。注意 1:此運算不會包含使用 CustomOp 定義的 TF Lite 自訂運算。注意 2:此運算只是轉換器內部的表示法,在將模型匯出至 Flatbuffer 時不會公開/匯出。

特性:IsolatedFromAboveRecursiveMemoryEffectsSingleBlockImplicitTerminator<YieldOp>SingleBlock

介面:InferTypeOpInterfaceTflRuntimeVerifyOpInterface

運算元

運算元 說明
input 任何類型值或無類型值的張量的變數引數

結果

結果 說明
output 任何類型值的張量的變數引數

tfl.densify (TFL::DensifyOp)

Densify 運算子

將稀疏張量轉換為密集格式。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無號整數值的張量

tfl.depth_to_space (TFL::DepthToSpaceOp)

DepthToSpace 運算子

將資料從深度重新排列到空間資料區塊中。這是 SpaceToDepth 的反向轉換。更具體來說,此運算會輸出輸入張量的副本,其中 depth 維度的值會以空間區塊方式移動到 heightwidth 維度。屬性 block_size 表示輸入區塊大小以及資料的移動方式。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
block_size::mlir::IntegerAttr32 位元無號整數屬性,其值為正數

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 TFLite quint8 類型或 8 位元無正負號整數或 QI8 類型或 QUI8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 TFLite quint8 類型或 8 位元無正負號整數或 QI8 類型或 QUI8 類型值的張量

tfl.depthwise_conv_2d (TFL::DepthwiseConv2DOp)

深度可分離 convolution 運算子

對輸入執行 convolution 運算。

輸入:inputs[0]:必要:輸入啟動張量 inputs[1]:必要:濾波器權重張量 inputs[2]:選用:偏差張量

特性:AlwaysSpeculatableImplTraitQuantizableResultquant::AccumulatorUniformScale<2, 0, 1>quant::AffineOpCoefficient<3, 1>

介面:AffineQuantizedOpInterfaceConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TFL_SparseOpTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
dilation_h_factor::mlir::IntegerAttr32 位元無號整數屬性
dilation_w_factor::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_h::mlir::IntegerAttr32 位元無號整數屬性
stride_w::mlir::IntegerAttr32 位元無號整數屬性
depth_multiplier::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
filter 32 位元浮點數或 QI4 類型或 QI8 類型或 QUI8 類型值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.dequantize (TFL::DequantizeOp)

Dequantize 運算子

根據量化參數,將量化整數陣列轉換為浮點數。

介面:NoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input QI4 類型或 QI8 類型或 QUI8 類型或 QI16 類型或 16 位元浮點數值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.dilate (TFL::DilateOp)

Dilation 運算子

透過在現有元素之間新增元素來擴充張量。特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無正負號整數或 16 位元無正負號整數或 32 位元無正負號整數或 64 位元無正負號整數或 32 位元浮點數或 64 位元浮點數值的張量
dilations 32 位元無號整數值的張量
padding_value 任何類型值的 0D 張量

結果

結果 說明
output 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無正負號整數或 16 位元無正負號整數或 32 位元無正負號整數或 64 位元無正負號整數或 32 位元浮點數或 64 位元浮點數值的張量

tfl.div (TFL::DivOp)

Division 運算子

元素級除法運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無號整數或 QUI8 類型值的張量
rhs 32 位元浮點數或 32 位元無號整數或 QUI8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 QUI8 類型值的張量

tfl.dynamic_update_slice (TFL::DynamicUpdateSliceOp)

DynamicUpdateSlice。

DynamicUpdateSlice 運算,其語意與 XLA DynamicUpdateSlice 相同。產生一個結果,該結果是輸入陣列運算元的值,並在 start_indices 覆寫切片更新。

請參閱 https://tensorflow.dev.org.tw/xla/operation_semantics#dynamicupdateslice

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
operand 1 位元無號整數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元浮點數值的張量
update 1 位元無號整數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元浮點數值的張量
start_indices 32 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數或 8 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元浮點數值的張量

tfl.elu (TFL::EluOp)

指數線性單元運算子

計算指數線性 f(x) -> exp(x) - 1 (x < 0 時)、x (x >= 0 時)。元素級。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 8 位元無號整數值的張量

結果

結果 說明
y 32 位元浮點數或 8 位元無號整數值的張量

tfl.embedding_lookup (TFL::EmbeddingLookupOp)

Embedding lookup 運算子

在嵌入張量清單中查閱 ID。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lookup 32 位元無號整數值的張量
value 32 位元浮點數或 8 位元無號整數或 8 位元無正負號整數值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無號整數或 8 位元無正負號整數值的張量

tfl.equal (TFL::EqualOp)

Equal 運算子

傳回 x == y 元素級的真值元素

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeQuantizableResultResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 1 位元無號整數或 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 8 位元無正負號整數或 TFLite 字串類型值的張量
y 1 位元無號整數或 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 8 位元無正負號整數或 TFLite 字串類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.exp (TFL::ExpOp)

自然指數運算子

對輸入執行元素級自然指數運算。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

tfl.expand_dims (TFL::ExpandDimsOp)

在張量的形狀中插入維度 1。

給定張量 input,此運算會在 input 形狀的維度索引 axis 處插入維度 1。維度索引 axis 從零開始;如果您為 axis 指定負數,則會從結尾倒數。

如果您想要將批次維度新增至單一元素,則此運算非常有用。例如,如果您有形狀為 [height, width, channels] 的單一影像,您可以透過 expand_dims(image, 0) 將其設為 1 個影像的批次,這會使形狀成為 [1, height, width, channels]

其他範例

# 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]

# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

此運算需要

-1-input.dims() <= dim <= input.dims()

此運算與 squeeze() 相關,後者會移除大小為 1 的維度。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 任何類型值的張量
dim 32/64 位元無號整數值的張量

結果

結果 說明
output 任何類型值的張量

tfl.external_const (TFL::ExternalConstOp)

外部常數運算。

外部常數運算會保留指向平面緩衝區中常數的 buffer_index

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
buffer_index::mlir::IntegerAttr32 位元無號整數屬性

結果

結果 說明
output 任何類型值的張量

tfl.fake_quant (TFL::FakeQuantOp)

FakeQuant 運算子

透過浮點數純量最小值和最大值,將浮點數類型的「inputs」張量假量化為與輸入形狀相同的「outputs」張量。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
min::mlir::FloatAttr32 位元浮點數屬性
max::mlir::FloatAttr32 位元浮點數屬性
num_bits::mlir::IntegerAttr32 位元無號整數屬性,其最小值為 2,最大值為 16
narrow_range::mlir::BoolAttrbool 屬性,其值為 false

運算元

運算元 說明
input 32 位元浮點數值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.fill (TFL::FillOp)

用給定值填充張量。

用給定值填充張量。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
維度 32/64 位元無號整數值的張量
input 32 位元浮點數或 16 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 1 位元無符號整數或 QI8 類型或 QI16 類型或 TFLite 字串類型值的張量

結果

結果 說明
結果 32 位元浮點數或 16 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 1 位元無符號整數或 QI8 類型或 QI16 類型或 TFLite 字串類型值的張量

tfl.floor (TFL::FloorOp)

Floor 運算子

傳回輸入的逐元素 floor 值。

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.floor_div (TFL::FloorDivOp)

Floor 除法運算子

逐元素 floor 除法運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數值的張量
rhs 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數值的張量

tfl.floor_mod (TFL::FloorModOp)

除法餘數

逐元素除法餘數運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 32 位元浮點數值的張量
rhs 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 32 位元浮點數值的張量

結果

結果 說明
output 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 32 位元浮點數值的張量

tfl.fully_connected (TFL::FullyConnectedOp)

全連接運算

特性:AlwaysSpeculatableImplTraitQuantizableResultquant::AccumulatorUniformScale<2, 0, 1>quant::AffineOpCoefficient<0, 1>

介面:AffineQuantizedOpInterfaceConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TFL_SparseOpTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
weights_format::mlir::StringAttr字串屬性,其值為 DEFAULT 或 SHUFFLED4x16INT8
keep_num_dims::mlir::BoolAttr布林值屬性
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型或 QUI16 類型值的張量
filter 32 位元浮點數或 QI4 類型或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 任何類型值的張量的變數引數

tfl.gather (TFL::GatherOp)

Gather 運算子

根據 indicesparamsaxis 收集切片。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatable, DynamicRangeQuantizedOpInterface, NoMemoryEffect (MemoryEffectOpInterface), SameOperandsAndResultsScale, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
axis::mlir::IntegerAttr32 位元無號整數屬性
batch_dims::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
params 32 位元浮點數或 1 位元無符號整數或 4 位元無符號整數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 TFLite 字串類型或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
indices 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數值的張量

結果

結果 說明
output 32 位元浮點數或 1 位元無符號整數或 4 位元無符號整數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 TFLite 字串類型或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.gather_nd (TFL::GatherNdOp)

_Gathernd 運算子

params 收集切片到形狀由 indices 指定的張量中。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
params 32 位元浮點數或 1 位元無符號整數或 8 位元無符號整數或 16 位元無符號整數或 64 位元無符號整數或 32 位元無符號整數或 8 位元無號整數或 QI8 類型或 TFLite 字串類型值的張量
indices 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數值的張量

結果

結果 說明
output 32 位元浮點數或 1 位元無符號整數或 8 位元無符號整數或 16 位元無符號整數或 64 位元無符號整數或 32 位元無符號整數或 8 位元無號整數或 QI8 類型或 TFLite 字串類型值的張量

tfl.gelu (TFL::GeluOp)

GELU 激活函數。

逐元素計算 GELU 激活函數。

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
approximate::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型值的張量

tfl.greater (TFL::GreaterOp)

Greater 運算子

逐元素 greater 運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量
rhs 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.greater_equal (TFL::GreaterEqualOp)

_Greaterequal 運算子

逐元素 greater_equal 運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型值的張量
rhs 32 位元浮點數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.hard_swish (TFL::HardSwishOp)

Hardswish 激活函數。

逐元素計算 hard-swish 激活函數 f(x) -> (x * relu6(x+3))/6。

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

tfl.hashtable (TFL::HashtableOp)

建立未初始化的哈希表。

此運算建立一個哈希表,指定其鍵和值的類型。在使用表格之前,您必須先初始化它。初始化之後,表格將變為不可變。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
table_id::mlir::IntegerAttr32 位元無號整數屬性
key_dtype::mlir::TypeAttr任何類型屬性
value_dtype::mlir::TypeAttr任何類型屬性

結果

結果 說明
out 資源值的張量

tfl.hashtable_find (TFL::HashtableFindOp)

在表格中查找鍵,輸出對應的值。

張量 keys 的類型必須與表格的鍵類型相同。輸出 values 的類型與表格值的類型相同。

純量 default_value 是表格中不存在的鍵的輸出值。它的類型也必須與表格值的類型相同。

介面:TflRuntimeVerifyOpInterface

運算元

運算元 說明
hash_table 資源值的張量
keys 32 位元無符號整數或 TFLite 字串類型或 64 位元無符號整數值的張量
default_value 32 位元浮點數或 32 位元無符號整數或 TFLite 字串類型或 64 位元無符號整數值的張量

結果

結果 說明
out 32 位元浮點數或 32 位元無符號整數或 TFLite 字串類型或 64 位元無符號整數值的張量

tfl.hashtable_import (TFL::HashtableImportOp)

用指定的鍵和值替換表格的內容。

張量 keys 的類型必須與表格的鍵類型相同。張量 values 的類型必須與表格值的類型相同。

介面:TflRuntimeVerifyOpInterface

運算元

運算元 說明
hash_table 資源值的張量
keys 32 位元無符號整數或 TFLite 字串類型或 64 位元無符號整數值的張量
values 32 位元浮點數或 32 位元無符號整數或 TFLite 字串類型或 64 位元無符號整數值的張量

tfl.hashtable_size (TFL::HashtableSizeOp)

計算給定表格中的元素數量。

介面:TflRuntimeVerifyOpInterface

運算元

運算元 說明
hash_table 資源值的張量

結果

結果 說明
out 64 位元無符號整數值的張量

tfl.if (TFL::IfOp)

If-then-else 運算

tfl.if 運算表示用於條件式執行兩個程式碼區域的 if-then-else 結構。if 運算的運算元是布林值。例如

tfl.if %b  {
  ...
} else {
  ...
}

tfl.if 也可能傳回在其區域中定義的結果。定義的值取決於採取的執行路徑。

範例

%x, %y = tfl.if %b -> (tensor<f32>, tensor<f32>) {
  %x_true = ...
  %y_true = ...
  tfl.yield %x_true, %y_true : tensor<f32>, tensor<f32>
} else {
  %x_false = ...
  %y_false = ...
  tfl.yield %x_false, %y_false : tensor<f32>, tensor<f32>
}

tfl.if 區域始終以「tfl.yield」終止。如果「tfl.if」未定義任何值,則可以省略「tfl.yield」,並將隱式插入。否則,它必須是顯式的。此外,如果「tfl.if」定義一個或多個值,則不能省略「else」區塊。

範例

tfl.if %b  {
  ...
}

特性:NoRegionArguments, RecursiveMemoryEffects, SingleBlockImplicitTerminator<YieldOp>, SingleBlock

介面:RegionBranchOpInterface, TflRuntimeVerifyOpInterface

運算元

運算元 說明
cond 1 位元無號整數值的張量

結果

結果 說明
results 任何類型值的張量的變數引數

tfl.imag (TFL::ImagOp)

傳回複數的虛部。

給定複數的張量 input,此運算傳回類型為 float 的張量,該張量是 input 中每個元素的虛部。input 中的所有元素都必須是 \(a + bj\) 形式的複數,其中 a 是實部,而 b 是此運算傳回的虛部。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 具有 32 位元浮點數元素的複數類型或具有 64 位元浮點數元素的複數類型值的張量

結果

結果 說明
output 32 位元浮點數或 64 位元浮點數值的張量

tfl.l2_normalization (TFL::L2NormalizationOp)

L2 正規化運算子

L2Normalization 運算

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatable, FixedOutputRangeInterface, NoMemoryEffect (MemoryEffectOpInterface), TflArithmeticCountOpInterface, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
input 32 位元浮點數或 QUI8 類型或 QI8 類型或 QUI16 類型或 QI16 類型或 8 位元無符號整數值的張量

結果

結果 說明
output 32 位元浮點數或 QUI8 類型或 QI8 類型或 QUI16 類型或 QI16 類型或 8 位元無符號整數值的張量

tfl.leaky_relu (TFL::LeakyReluOp)

Leaky Relu 運算子

逐元素 Leaky ReLU 運算子 x -> x >= 0 ? x : (alpha * x)

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
alpha::mlir::FloatAttr32 位元浮點數屬性

運算元

運算元 說明
input 32 位元浮點數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.less (TFL::LessOp)

Less 運算子

逐元素 less 運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量
rhs 32 位元浮點數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.less_equal (TFL::LessEqualOp)

_Lessequal 運算子

逐元素 less_equal 運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型值的張量
rhs 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.local_response_normalization (TFL::LocalResponseNormalizationOp)

局部響應正規化。

4 維 input 張量被視為 1 維向量(沿著最後一個維度)的 3 維陣列,並且每個向量都是獨立正規化的。在給定向量中,每個分量都除以 depth_radius 範圍內的輸入的加權平方和。詳細來說,

sqr_sum[a, b, c, d] =
    sum(input[a, b, c, d - depth_radius : d + depth_radius + 1] ** 2)
output = input / (bias + alpha * sqr_sum) ** beta

詳情請參閱 Krizhevsky 等人,《使用深度卷積神經網路的 ImageNet 分類》(NIPS 2012)

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
radius::mlir::IntegerAttr32 位元無號整數屬性
bias::mlir::FloatAttr32 位元浮點數屬性
alpha::mlir::FloatAttr32 位元浮點數屬性
beta::mlir::FloatAttr32 位元浮點數屬性

運算元

運算元 說明
input 32 位元浮點數值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.log (TFL::LogOp)

自然對數運算子

對輸入執行逐元素自然對數運算。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QI8 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QI8 類型值的張量

tfl.log_softmax (TFL::LogSoftmaxOp)

Log softmax 運算子

使用以下公式計算逐元素 log softmax 激活值

input - log(reduce_sum(exp(input), dim))

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatable, FixedOutputRangeInterface, NoMemoryEffect (MemoryEffectOpInterface), TflArithmeticCountOpInterface, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

tfl.logical_and (TFL::LogicalAndOp)

邏輯 AND 運算子

逐元素邏輯 AND 運算。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 1 位元無號整數值的張量
rhs 1 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.logical_not (TFL::LogicalNotOp)

邏輯 NOT 運算子

逐元素邏輯 NOT 運算。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 1 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.logical_or (TFL::LogicalOrOp)

邏輯 OR 運算子

逐元素邏輯 OR 運算。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 1 位元無號整數值的張量
rhs 1 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.logistic (TFL::LogisticOp)

Logistic 運算子

計算輸入的逐元素 Sigmoid

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatable, FixedOutputRangeInterface, NoMemoryEffect (MemoryEffectOpInterface), TflArithmeticCountOpInterface, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.lstm (TFL::LSTMOp)

完整的 lstm 運算子

長短期記憶單元 (LSTM) 循環網路層。預設非窺孔實作基於:http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter 和 J. Schmidhuber。《長短期記憶》。Neural Computation,9(8):1735-1780, 1997。窺孔實作基於:https://research.google.com/pubs/archive/43905.pdf Hasim Sak、Andrew Senior 和 Francoise Beaufays。《用於大規模聲學建模的長短期記憶循環神經網路架構》。INTERSPEECH,2014。輸入和遺忘門耦合 (CIFG) 基於:http://arxiv.org/pdf/1503.04069.pdf Greff 等人。《LSTM:搜尋空間奧德賽》。層正規化基於:https://arxiv.org/pdf/1607.06450.pdf Ba 等人。《層正規化》

特性:QuantizableResult

介面:DynamicRangeQuantizedOpInterfaceTFL_StatefulOpTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
cell_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
proj_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
kernel_type::mlir::TFL::LSTMKernelTypeAttrlstm_kernel_type,其值為 mlir::TFL::LSTMKernelType::FULL
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性
input_to_input_intermediate::mlir::TypeAttr任何類型屬性
input_to_forget_intermediate::mlir::TypeAttr任何類型屬性
input_to_cell_intermediate::mlir::TypeAttr任何類型屬性
input_to_output_intermediate::mlir::TypeAttr任何類型屬性
effective_hidden_scale_intermediate::mlir::TypeAttr任何類型屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QI16 類型值的張量
input_to_input_weights 任何類型值或無類型值的張量
input_to_forget_weights 32 位元浮點數或 QI8 類型值的張量
input_to_cell_weights 32 位元浮點數或 QI8 類型值的張量
input_to_output_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_input_weights 任何類型值或無類型值的張量
recurrent_to_forget_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_cell_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_output_weights 32 位元浮點數或 QI8 類型值的張量
cell_to_input_weights 任何類型值或無類型值的張量
cell_to_forget_weights 任何類型值或無類型值的張量
cell_to_output_weights 任何類型值或無類型值的張量
input_gate_bias 任何類型值或無類型值的張量
forget_gate_bias 32 位元浮點數或 QI32 類型值的張量
cell_bias 32 位元浮點數或 QI32 類型值的張量
output_gate_bias 32 位元浮點數或 QI32 類型值的張量
projection_weights 任何類型值或無類型值的張量
projection_bias 任何類型值或無類型值的張量
input_activation_state 具狀態張量
input_cell_state 具狀態張量
input_layer_norm_coefficients 任何類型值或無類型值的張量
forget_layer_norm_coefficients 任何類型值或無類型值的張量
cell_layer_norm_coefficients 任何類型值或無類型值的張量
output_layer_norm_coefficients 任何類型值或無類型值的張量

結果

結果 說明
output 任何類型值的張量

tfl.matrix_diag (TFL::MatrixDiagOp)

傳回一個張量,其中包含提供的對角線,其餘部分用零填充。

給定對角線,傳回一個張量,其中包含對角線,其餘部分用零填充。假設對角線具有 k 個維度 [I, J, K, ..., N],則輸出是秩為 k+1 的張量,其維度為 [I, J, K, ..., N, N],其中:output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
diagonal 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型值的張量

tfl.matrix_set_diag (TFL::MatrixSetDiagOp)

傳回具有新批次對角線值的批次矩陣張量。

給定 inputdiagonal,此運算傳回的張量具有與 input 相同的形狀和值,但最內層矩陣的主對角線除外。這些將被 diagonal 中的值覆寫。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QI16 類型或 QUI8 類型或 TFLite quint8 類型值的張量
diagonal 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QI16 類型或 QUI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
結果 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QI16 類型或 QUI8 類型或 TFLite quint8 類型值的張量

tfl.max_pool_2d (TFL::MaxPool2DOp)

最大池化 2D 運算

對輸入執行最大池化 2D。

輸入:inputs[0]:必要:輸入張量

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_w::mlir::IntegerAttr32 位元無號整數屬性
stride_h::mlir::IntegerAttr32 位元無號整數屬性
filter_width::mlir::IntegerAttr32 位元無號整數屬性
filter_height::mlir::IntegerAttr32 位元無號整數屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
input 32 位元浮點數或 QUI8 類型或 QI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QUI8 類型或 QI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.maximum (TFL::MaximumOp)

最大值運算子

逐元素最大值運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeQuantizableResultResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
rhs 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
max 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.mean (TFL::MeanOp)

平均值運算子

計算張量維度上的元素平均值。沿著 axis 中給定的維度縮減 input_tensor。除非 keepdims 為 true,否則張量的秩會針對 axis 中的每個條目減少 1。如果 keepdims 為 true,則縮減的維度會保留,長度為 1。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 8 位元無號整數或 QI16 類型值的張量
axis 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 8 位元無號整數或 QI16 類型值的張量

tfl.minimum (TFL::MinimumOp)

最小值運算子

逐元素最小值運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeQuantizableResultResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
rhs 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
min 32 位元浮點數或 32/64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.mirror_pad (TFL::MirrorPadOp)

MirrorPad 運算子。用鏡像值填充張量。

此運算根據您指定的填充用鏡像值填充輸入。paddings 是一個形狀為 [n, 2] 的整數張量,其中 n 是輸入的秩。對於輸入的每個維度 D,paddings[D, 0] 表示在該維度中輸入的內容之前要新增多少個值,而 paddings[D, 1] 表示在該維度中輸入的內容之後要新增多少個值。

如果 copy_border 為 true(如果為 false,則分別為 input.dim_size(D) - 1),則 paddings[D, 0] 和 paddings[D, 1] 都必須不大於 input.dim_size(D)。

輸出每個維度 D 的填充大小為

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
mode::mlir::TFL::MirrorPaddingTypeAttrmirror_pad_enum

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無符號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
pad 32 位元無符號整數或 64 位元無符號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無符號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.mul (TFL::MulOp)

乘法運算子

逐元素乘法運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeQuantizableResultResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無符號整數或 32 位元無號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 16 位元無符號整數或具有 32 位元浮點數元素值的複數類型張量
rhs 32 位元浮點數或 32 位元無符號整數或 32 位元無號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 16 位元無符號整數或具有 32 位元浮點數元素值的複數類型張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 32 位元無號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 16 位元無符號整數或具有 32 位元浮點數元素值的複數類型張量

tfl.multinomial (TFL::MultinomialOp)

從類別分佈中抽取樣本。

產生值的類別分佈將基於為所有類別提供的 logits 或未正規化的對數機率。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
seed::mlir::IntegerAttr64 位元無符號整數屬性
seed2::mlir::IntegerAttr64 位元無符號整數屬性

運算元

運算元 說明
logits 32 位元浮點數值的張量
num_samples 32 位元無號整數值的張量

結果

結果 說明
out 32 位元無符號整數或 64 位元無符號整數值的張量

tfl.neg (TFL::NegOp)

取反運算子

計算輸入的逐元素取反

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 32 位元無號整數或 64 位元無號整數值的張量

結果

結果 說明
y 32 位元浮點數或 32 位元無號整數或 64 位元無號整數值的張量

tfl.no_value (TFL::NoValueOp)

表示無值的常數。

無值常數運算。

特性:AlwaysSpeculatableImplTrait, ConstantLike

介面:ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
value::mlir::UnitAttr單元屬性

結果

結果 說明
none_val 無類型

tfl.non_max_suppression_v4 (TFL::NonMaxSuppressionV4Op)

貪婪地選擇邊界框的子集,依分數降序排列,

剪除與先前選定的框具有高度交並比 (IOU) 重疊的框。分數低於 score_threshold 的邊界框將被移除。邊界框以 [y1, x1, y2, x2] 形式提供,其中 (y1, x1) 和 (y2, x2) 是任何對角框角點的坐標,並且坐標可以標準化(即,位於區間 [0, 1] 中)或絕對值。請注意,此演算法與坐標系統中原點的位置無關,並且更普遍地對坐標系統的正交變換和平移是不變的;因此,坐標系統的平移或反射會導致演算法選擇相同的框。此運算的輸出是一組整數,索引到表示選定框的邊界框輸入集合中。然後可以使用 tf.gather operation 獲得與選定索引對應的邊界框坐標。例如:selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices)

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
boxes 32 位元浮點數值的張量
scores 32 位元浮點數值的張量
max_output_size 32 位元無號整數值的張量
iou_threshold 32 位元浮點數值的張量
score_threshold 32 位元浮點數值的張量

結果

結果 說明
selected_indices 32 位元無號整數值的張量
valid_outputs 32 位元無號整數值的張量

tfl.non_max_suppression_v5 (TFL::NonMaxSuppressionV5Op)

貪婪地選擇邊界框的子集,依分數降序排列,

剪除與先前選定的框具有高度交並比 (IOU) 重疊的框。分數低於 score_threshold 的邊界框將被移除。邊界框以 [y1, x1, y2, x2] 形式提供,其中 (y1, x1) 和 (y2, x2) 是任何對角框角點的坐標,並且坐標可以標準化(即,位於區間 [0, 1] 中)或絕對值。請注意,此演算法與坐標系統中原點的位置無關,並且更普遍地對坐標系統的正交變換和平移是不變的;因此,坐標系統的平移或反射會導致演算法選擇相同的框。此運算的輸出是一組整數,索引到表示選定框的邊界框輸入集合中。然後可以使用 tf.gather operation 獲得與選定索引對應的邊界框坐標。例如:selected_indices = tf.image.non_max_suppression_v2( boxes, scores, max_output_size, iou_threshold, score_threshold) selected_boxes = tf.gather(boxes, selected_indices) 此運算也支援 Soft-NMS(使用高斯加權)模式(參見 Bodla 等人,https://arxiv.org/abs/1704.04503),其中框會降低其他重疊框的分數,而不是直接導致它們被剪除。若要啟用此 Soft-NMS 模式,請將 soft_nms_sigma 參數設定為大於 0。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
boxes 32 位元浮點數值的張量
scores 32 位元浮點數值的張量
max_output_size 32 位元無號整數值的張量
iou_threshold 32 位元浮點數值的張量
score_threshold 32 位元浮點數值的張量
soft_nms_sigma 32 位元浮點數值的張量

結果

結果 說明
selected_indices 32 位元無號整數值的張量
selected_scores 32 位元浮點數值的張量
valid_outputs 32 位元無號整數值的張量

tfl.not_equal (TFL::NotEqualOp)

_Notequal 運算子

逐元素 not_equal 運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, Commutative, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 1 位元無符號整數或 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 TFLite 字串類型值的張量
rhs 1 位元無符號整數或 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 TFLite 字串類型值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.NumericVerify (TFL::NumericVerifyOp)

驗證兩個運算元的數值

NumericVerify 運算是一個除錯運算,用於驗證兩個激活值的數值。它是 TFLite 中的自訂運算。如果 log_if_failed 為 true,則 NumericVerify 運算會計算浮點數和量化激活值之間差異的統計資訊、輸出日誌、將差異設定為輸出張量,並且如果存在超出容忍度的錯誤,則會拋出錯誤。如果 log_if_failed = false,則它不在意錯誤。

特性:QuantizableResult, SameOperandsShape

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
tolerance::mlir::FloatAttr32 位元浮點數屬性
log_if_failed::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input QI8 類型或 QUI8 類型或 QI16 類型或 16 位元浮點數或 TFLite quint8 類型值的張量
ref 32 位元浮點數值的張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.one_hot (TFL::OneHotOp)

OneHot 運算子

傳回 one-hot 張量。由 indices 中的索引表示的位置取值 on_value,而所有其他位置取值 off_value

如果輸入 indices 的秩為 N,則輸出的秩將為 N+1。新軸在維度 axis 上建立(預設值:新軸附加在末尾)。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
axis::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
indices 32 位元無符號整數或 64 位元無符號整數值的張量
depth 32 位元無號整數值的張量
on_value 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 1 位元無符號整數或 8 位元無符號整數或 8 位元無號整數值的張量
off_value 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 1 位元無符號整數或 8 位元無符號整數或 8 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 1 位元無符號整數或 8 位元無符號整數或 8 位元無號整數值的張量

tfl.pack (TFL::PackOp)

沿著維度將張量列表打包成一個張量

values_count 個秩為 R 的張量打包成一個秩為 (R+1) 的張量。

透過沿著 axis 維度打包 values 中的 values_count 個張量,將它們打包成秩比 values 中每個張量高一級的張量。

給定形狀為 (A, B, C) 的張量列表;

如果 axis == 0,則 output 張量的形狀將為 (N, A, B, C)。如果 axis == 1,則 output 張量的形狀將為 (A, N, B, C)。等等。

例如

# 'x' is [1, 4]
# 'y' is [2, 5]
# 'z' is [3, 6]
pack([x, y, z]) => [[1, 4], [2, 5], [3, 6]]  # Pack along first dim.
pack([x, y, z], axis=1) => [[1, 2, 3], [4, 5, 6]]

這與 unpack 相反。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
values_count::mlir::IntegerAttr32 位元無號整數屬性,其值為正數
axis::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
values 任何類型值的張量的變數引數

結果

結果 說明
output 32 位元浮點數或 8 位元無符號整數或 16 位元無符號整數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.pad (TFL::PadOp)

填充運算子

此運算根據您指定的 paddings 用零填充 inputpaddings 是一個形狀為 [Dn, 2] 的整數張量,其中 n 是 input 的秩。對於 input 的每個維度 D,paddings[D, 0] 表示在該維度中 input 的內容之前要新增多少個零,而 paddings[D, 1] 表示在該維度中 input 的內容之後要新增多少個零。

輸出每個維度 D 的填充大小為

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

例如

# 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
padding 32/64 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.padv2 (TFL::PadV2Op)

填充運算子 v2

此運算根據您指定的 paddingsconstant_values 填充 inputpaddings 是一個形狀為 [Dn, 2] 的整數張量,其中 n 是 input 的秩。對於 input 的每個維度 D,paddings[D, 0] 表示在該維度中 input 的內容之前要新增多少個零,而 paddings[D, 1] 表示在該維度中 input 的內容之後要新增多少個零。constant_values 是一個與 input 類型相同的純量張量,指示用於填充 input 的值。

輸出每個維度 D 的填充大小為

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

例如

# 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量
padding 32/64 位元無號整數值的張量
constant_values 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

tfl.poly_call (TFL::PolyCallOp)

多型調用

針對相同的計算具有多個函數體。這允許程式編譯器/直譯器根據哪個選項最適合目標後端來選擇要執行的可用選項之一。

input:類型為 T 的輸入張量列表。output:類型為 T 的輸出張量列表。

call:多個區域,每個區域都封裝了相同的語義計算,但形式不同。

特性:SingleBlockImplicitTerminator<YieldOp>, SingleBlock

介面:RegionBranchOpInterface

運算元

運算元 說明
input 任何類型值的張量的變數引數

結果

結果 說明
output 任何類型值的張量的變數引數

tfl.pow (TFL::PowOp)

冪運算子

逐元素冪運算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無號整數值的張量
rhs 32 位元浮點數或 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.prelu (TFL::PReluOp)

參數化 Relu 運算子

參數化 Relu 運算子 x -> x >= 0 ? x : (alpha * x),其中 alpha 是可訓練張量。input 和 alpha 應與輸入大小相同或可廣播。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape, quant::AffineOpCoefficient<-1, 1>

介面:AffineQuantizedOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量
alpha 32 位元浮點數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

tfl.pseudo_const (TFL::ConstOp)

常數偽運算。

表示 TensorFlow Lite 方言中的常數值。這不是實際的運算,而是會降低到緩衝區。

允許運算具有與 tf.Const 相同的所有屬性類型(例如,允許不透明的 TF 屬性)。

特性:AlwaysSpeculatableImplTrait, ConstantLike, FirstAttrDerivedResultType, QuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
value::mlir::ElementsAttr常數向量/張量屬性

結果

結果 說明
output 任何類型值的張量

tfl.pseudo_qconst (TFL::QConstOp)

量化常數偽運算

表示 TensorFlow Lite 方言中的量化常數值。這不是實際的運算,而是會降低到緩衝區。量化參數儲存為此常數中的類型屬性。

特性:AlwaysSpeculatableImplTrait, FirstAttrDerivedResultType

介面:ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
qtype::mlir::TypeAttr張量類型屬性
value::mlir::ElementsAttr常數向量/張量屬性

結果

結果 說明
output QUI8 類型或 QI8 類型或 QI16 類型或 QUI16 類型或 TFLite quint8 類型值的張量

tfl.pseudo_sparse_const (TFL::SparseConstOp)

稀疏常數偽運算。

表示 TensorFlow Lite 方言中的稀疏常數值。這不是實際的運算,而是會降低到緩衝區。

特性:AlwaysSpeculatableImplTrait, FirstAttrDerivedResultType, QuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
value::mlir::ElementsAttr常數向量/張量屬性
s_param::mlir::TFL::SparsityParameterAttr稀疏參數。
compressed_data::mlir::ElementsAttr常數向量/張量屬性

結果

結果 說明
output 任何類型值的張量

tfl.pseudo_sparse_qconst (TFL::SparseQConstOp)

稀疏量化常數偽運算

表示 TensorFlow Lite 方言中的稀疏量化常數值。這不是實際的運算,而是會降低到緩衝區。量化參數儲存為此常數中的類型屬性。

特性:AlwaysSpeculatableImplTrait, FirstAttrDerivedResultType

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
qtype::mlir::TypeAttr張量類型屬性
value::mlir::ElementsAttr常數向量/張量屬性
s_param::mlir::TFL::SparsityParameterAttr稀疏參數。
compressed_data::mlir::ElementsAttr常數向量/張量屬性

結果

結果 說明
output QUI8 類型或 QI8 類型或 QI16 類型或 QUI16 類型或 TFLite quint8 類型值的張量

tfl.quantize (TFL::QuantizeOp)

量化運算子

根據類型屬性中定義的量化參數,將浮點張量轉換為量化整數張量。

特性:FirstAttrDerivedResultType, SameOperandsAndResultShape

介面:NoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
qtype::mlir::TypeAttr張量類型屬性

運算元

運算元 說明
input 32 位元浮點數或 QI4 類型或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output QI4 類型或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.random_standard_normal (TFL::RandomStandardNormalOp)

從常態分佈輸出隨機值。

產生值的平均值為 0,標準差為 1。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
seed::mlir::IntegerAttr64 位元無符號整數屬性
seed2::mlir::IntegerAttr64 位元無符號整數屬性

運算元

運算元 說明
shape 32 位元無號整數值的張量

結果

結果 說明
out 32 位元浮點數值的張量

tfl.random_uniform (TFL::RandomUniformOp)

從均勻分佈輸出隨機值。

產生值遵循範圍 [0, 1) 中的均勻分佈。範圍中包含下限 0,而排除上限 1。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
seed::mlir::IntegerAttr64 位元無符號整數屬性
seed2::mlir::IntegerAttr64 位元無符號整數屬性

運算元

運算元 說明
shape 32 位元無號整數值的張量

結果

結果 說明
out 32 位元浮點數值的張量

tfl.range (TFL::RangeOp)

範圍運算子

傳回由從 startlimit 的序列定義,並給定 delta 的 1 維張量。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
start 32 位元無符號整數或 32 位元浮點數或 64 位元無符號整數值的張量
limit 32 位元無符號整數或 32 位元浮點數或 64 位元無符號整數值的張量
delta 32 位元無符號整數或 32 位元浮點數或 64 位元無符號整數值的張量

結果

結果 說明
結果 32 位元無符號整數或 32 位元浮點數或 64 位元無符號整數值的張量

tfl.rank (TFL::RankOp)

Rank 運算子。

傳回張量的秩。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 任何類型值的張量

結果

結果 說明
output 任何整數類型的張量

tfl.read_variable (TFL::ReadVariableOp)

讀取變數值。

讀取由 'resource_id' 識別的變數資料。

介面:TflRuntimeVerifyOpInterface

運算元

運算元 說明
resource_id 資源值的張量

結果

結果 說明
結果 32 位元浮點數或 64 位元浮點數或 1 位元無號整數或 8 位元無正負號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 32 位元無號整數或 64 位元無號整數或 QI16 類型或具有 32 位元浮點數元素的複數類型或具有 64 位元浮點數元素的複數類型值的張量

tfl.real (TFL::RealOp)

傳回複數的實部。

給定複數的張量 input,此運算會傳回 float 類型的張量,該張量是 input 中每個元素的實部。input 中的所有元素都必須是 \(a + bj\) 形式的複數,其中 a 是此運算傳回的實部,而 b 是虛部。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 具有 32 位元浮點數元素的複數類型或具有 64 位元浮點數元素的複數類型值的張量

結果

結果 說明
output 32 位元浮點數或 64 位元浮點數值的張量

tfl.reduce_all (TFL::ReduceAllOp)

計算張量維度中元素的「邏輯 AND」。

沿著 axis 中指定的維度縮減 input。除非 keep_dims 為 true,否則張量的秩會針對 axis 中的每個項目減 1。如果 keep_dims 為 true,則縮減後的維度會保留長度 1。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 1 位元無號整數值的張量
reduction_indices 32 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.reduce_any (TFL::ReduceAnyOp)

計算張量維度中元素的「邏輯 OR」。

沿著 axis 中指定的維度縮減 input。除非 keep_dims 為 true,否則張量的秩會針對 axis 中的每個項目減 1。如果 keep_dims 為 true,則縮減後的維度會保留長度 1。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 1 位元無號整數值的張量
reduction_indices 32 位元無號整數值的張量

結果

結果 說明
output 1 位元無號整數值的張量

tfl.reduce_max (TFL::ReduceMaxOp)

最大值縮減運算子

計算沿指定軸的最大值縮減

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
axes 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.reduce_min (TFL::ReduceMinOp)

最小值縮減運算子

計算沿指定軸的最小值縮減

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
axes 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.reduce_prod (TFL::ReduceProdOp)

乘積縮減運算子

計算沿指定軸的乘積

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
axes 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.relu (TFL::ReluOp)

Relu 運算子

逐元素 Relu 運算子 x -> max(0, x)

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QUI8 類型或 QI8 類型或 QI16 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QUI8 類型或 QI8 類型或 QI16 類型值的張量

tfl.relu6 (TFL::Relu6Op)

Relu6 運算子

逐元素 Relu6 運算子 x -> max(0, min(6, x))

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

tfl.relu_0_to_1 (TFL::Relu0To1Op)

Relu0To1 運算子

逐元素 Relu0To1 運算子 x -> max(0, min(1, x))

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

tfl.relu_n1_to_1 (TFL::Relu1Op)

Relu1 運算子

逐元素 Relu1 運算子 x -> max(-1, min(1, x))

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QUI8 類型或 QI8 類型值的張量

tfl.reshape (TFL::ReshapeOp)

Reshape 運算子

產生具有相同值但靜態形狀不同的張量,由輸出類型定義。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 任何類型值的張量
shape 32 位元無號整數值的張量

結果

結果 說明
output 任何類型值的張量

tfl.resize_bilinear (TFL::ResizeBilinearOp)

ResizeBilinear Op

使用雙線性內插法將 images 調整大小為 size

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
align_corners::mlir::BoolAttr布林值屬性
half_pixel_centers::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 TFLite quint8 類型或 QUI8 類型或 QI8 類型或 QI16 類型值的張量
size 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 TFLite quint8 類型或 QUI8 類型或 QI8 類型或 QI16 類型值的張量

tfl.resize_nearest_neighbor (TFL::ResizeNearestNeighborOp)

ResizeNearestNeighbor Op

使用最近鄰內插法將 images 調整大小為 size

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
align_corners::mlir::BoolAttr布林值屬性
half_pixel_centers::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 TFLite quint8 類型或 QUI8 類型或 QI8 類型或 QI16 類型值的張量
size 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 TFLite quint8 類型或 QUI8 類型或 QI8 類型或 QI16 類型值的張量

tfl.reverse_sequence (TFL::ReverseSequenceOp)

反轉可變長度切片。

此運算首先沿著維度 batch_dim 切割 input,然後針對每個切片 i,沿著維度 seq_dim 反轉前 seq_lengths[i] 個元素。

seq_lengths 的元素必須遵守 seq_lengths[i] <= input.dims[seq_dim],且 seq_lengths 必須是長度為 input.dims[batch_dim] 的向量。

沿著維度 batch_dim 的輸出切片 i 接著由輸入切片 i 給定,其中沿著維度 seq_dim 的前 seq_lengths[i] 個切片已反轉。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
seq_dim::mlir::IntegerAttr32 位元無號整數屬性,其值為非負數
batch_dim::mlir::IntegerAttr32 位元無號整數屬性,其值為非負數

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI16 類型或 QUI8 類型或 TFLite quint8 類型值的張量
seq_lengths 32/64 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI16 類型或 QUI8 類型或 TFLite quint8 類型值的張量

tfl.reverse_v2 (TFL::ReverseV2Op)

ReverseV2 運算子

反轉張量的特定維度。

給定張量和 int32/int64 張量軸,表示要反轉的張量維度集。此運算會反轉每個維度 i,其中存在 j 使得 axis[j] == i。

Args: tensor: 張量。必須是下列類型之一:uint8、int8、int16、int32、int64、float32、bool,最多 8 維。

axis: 張量。必須是下列類型之一:int32、int64,且僅有 1 個元素,即軸索引。TODO:新增對多個元素的支援。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI16 類型或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 1 位元無號整數值的張量
axis 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 QI16 類型或 QUI8 類型或 QI8 類型或 TFLite quint8 類型或 1 位元無號整數值的張量

tfl.rfft2d (TFL::RFFT2dOp)

2D 實值快速傅立葉轉換。

計算 input 最內層 2 個維度的實值訊號的二維離散傅立葉轉換。

由於實值訊號的 DFT 是 Hermitian 對稱的,因此 RFFT2D 僅傳回 output 最內層維度的 FFT 的 fft_length / 2 + 1 個唯一成分:零頻項,後接 fft_length / 2 個正頻項。

沿著計算 RFFT2D 的每個軸,如果 fft_length 小於 input 的對應維度,則會裁剪該維度。如果較大,則會以零填補該維度。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數值的張量
fft_length 32 位元無號整數值的張量

結果

結果 說明
output 具有 32 位元浮點元素值的複數類型張量

tfl.right_shift (TFL::RightShiftOp)

右移運算子

逐元素計算 lhsrhs 的位元右移。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultElementType

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量
rhs 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量

結果

結果 說明
output 8 位元無號整數或 8 位元無正負號整數或 16 位元無號整數或 16 位元無正負號整數或 32 位元無號整數或 32 位元無正負號整數值的張量

tfl.round (TFL::RoundOp)

Round 運算子

將張量的值四捨五入到最接近的整數,逐元素。

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.rsqrt (TFL::RsqrtOp)

平方根倒數運算子

計算輸入的逐元素反平方根

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

結果

結果 說明
y 32 位元浮點數或 QI8 類型或 QI16 類型值的張量

tfl.scatter_nd (TFL::ScatterNdOp)

_Scatternd 運算子

根據 indicesupdates 散佈到新張量中

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
indices 32 位元無號整數值的張量
updates 32 位元浮點數或 8 位元無號整數或 64 位元無號整數或 32 位元無號整數或 8 位元無號整數或 1 位元無號整數值的張量
shape 任何類型值的 1D 張量

結果

結果 說明
output 32 位元浮點數或 8 位元無號整數或 64 位元無號整數或 32 位元無號整數或 8 位元無號整數或 1 位元無號整數值的張量

tfl.segment_sum (TFL::SegmentSumOp)

SegmentSum 運算子

計算張量分段的總和。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數值的張量
segment_ids 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.select (TFL::SelectOp)

Select 運算子

如果 'condition' 的對應值為 true,則選取 'x' 的值,如果為 false,則選取 'y' 的值。存在有效的條件輸入大小

  1. 相同形狀 (在此情況下,選取是逐元素的),或
  2. condition 必須是秩 1,且在第一個維度上符合。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
condition 1 位元無號整數值的張量
x 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量
y 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.select_v2 (TFL::SelectV2Op)

SelectV2 運算子

如果 'condition' 的對應值為 true,則選取 'x' 的值,如果為 false,則選取 'y' 的值。存在有效的條件輸入大小

  1. 相同形狀 (在此情況下,選取是逐元素的),或
  2. 'condition'、'x' 和 'y' 之間可廣播的形狀。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
condition 1 位元無號整數值的張量
x 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量
y 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.shape (TFL::ShapeOp)

Shape 運算子

傳回張量的形狀。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
out_type::mlir::Attribute衍生屬性

運算元

運算元 說明
input 任何類型值的張量

結果

結果 說明
output 32 位元無符號整數或 64 位元無符號整數值的張量

tfl.sign (TFL::SignOp)

Sign 運算

如果 x 是 NaN,則傳回 NaN;如果 x 是 0,則傳回 0;如果 x < 0,則傳回 -1;如果 x > 0,則傳回 1。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultElementTypeSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數或 64 位元浮點數或 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 64 位元浮點數或 32 位元無號整數值的張量

tfl.sin (TFL::SinOp)

Sine 運算子

計算輸入的逐元素 Sine

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.slice (TFL::SliceOp)

從 'input' 傳回切片。

輸出張量是具有 'size' 所述維度的張量,其值從 'begin' 中的偏移量開始從 'input' 中擷取。

begin 是從零開始的;size 是從一開始的。如果 size[i] 為 -1,則維度 i 中的所有剩餘元素都包含在切片中。換句話說,這相當於設定:size[i] = input.dim_size(i) - begin[i]

需求:0 <= begin[i] <= begin[i] + size[i] <= Di,適用於 i in [0, n)

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數或 1 位元無號整數或 TFLite 字串類型或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
begin 32/64 位元無號整數值的張量
size 32/64 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數或 1 位元無號整數或 TFLite 字串類型或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.softmax (TFL::SoftmaxOp)

Softmax 運算子

使用下列公式計算逐元素 softmax 啟動

exp(input) / tf.reduce_sum(exp(input * beta), dim)

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatable, FixedOutputRangeInterface, NoMemoryEffect (MemoryEffectOpInterface), TflArithmeticCountOpInterface, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
beta::mlir::FloatAttr32 位元浮點數屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.space_to_batch_nd (TFL::SpaceToBatchNdOp)

SpaceToBatchNd 運算子

此運算將空間維度重塑為「批次」維度 0

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
block_shape 32 位元無號整數值的張量
paddings 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.space_to_depth (TFL::SpaceToDepthOp)

SpaceToDepth 運算子

將空間資料區塊重新排列為深度。更具體來說,此運算會輸出輸入張量的副本,其中 heightwidth 維度的值會移至 depth 維度。block_size 指出輸入區塊大小。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
block_size::mlir::IntegerAttr32 位元無號整數屬性,其值為正數

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型值的張量

tfl.sparse_to_dense (TFL::SparseToDenseOp)

將稀疏表示法轉換為密集張量。

建構具有形狀 output_shape 的陣列 dense,使得

# If sparse_indices is scalar
dense[i] = (i == sparse_indices ? sparse_values : default_value)

# If sparse_indices is a vector, then for each i
dense[sparse_indices[i]] = sparse_values[i]

# If sparse_indices is an n by d matrix, then for each i in [0, n)
dense[sparse_indices[i][0], ..., sparse_indices[i][d-1]] = sparse_values[i]

dense 中的所有其他值都設定為 default_value。如果 sparse_values 是純量,則所有稀疏索引都設定為此單一值。

索引應依字典順序排序,且索引不得包含任何重複項。如果 validate_indices 為 true,則會在執行期間檢查這些屬性。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
sparse_indices 32/64 位元無號整數值的張量
output_shape 32/64 位元無號整數值的張量
sparse_values 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 8 位元無號整數或 QUI8 類型或 TFLite quint8 類型或 32 位元浮點數值的張量
default_value 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 8 位元無號整數或 QUI8 類型或 TFLite quint8 類型或 32 位元浮點數值的張量

結果

結果 說明
dense 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 8 位元無號整數或 QUI8 類型或 TFLite quint8 類型或 32 位元浮點數值的張量

tfl.split (TFL::SplitOp)

沿著一個維度將張量分割成 num_split 個張量。

沿著 split_dimvalue 張量分割成多個子張量,這些子張量與原始張量具有相同的形狀,但 split_dim 除外。與 tf.Split 相同。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
num_splits::mlir::IntegerAttr32 位元無號整數屬性,其值為正數

運算元

運算元 說明
split_dim 32 位元無號整數值的張量
value 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 8 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
outputs 任何類型值的張量的變數引數

tfl.split_v (TFL::SplitVOp)

沿著一個維度將張量分割成 num_split 個張量。

沿著 split_dimvalue 張量分割成多個子張量,這些子張量與原始張量具有相同的形狀,但 split_dim 除外。產生的子張量的分組由 size-splits 決定。與 tf.SplitV 相同。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
num_splits::mlir::IntegerAttr32 位元無號整數屬性,其值為正數

運算元

運算元 說明
value 32 位元浮點數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
size_splits 32 位元無號整數值的 1D 張量
split_dim 32 位元無號整數值的 0D 張量

結果

結果 說明
outputs 任何類型值的張量的變數引數

tfl.sqrt (TFL::SqrtOp)

平方根運算子

計算輸入的逐元素平方根

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.square (TFL::SquareOp)

Square 運算子

計算輸入的逐元素平方

特性:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

介面:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
x 32 位元浮點數值的張量

結果

結果 說明
y 32 位元浮點數值的張量

tfl.squared_difference (TFL::SquaredDifferenceOp)

平方差運算子

逐元素平方差運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無號整數或 QI8 類型值的張量
rhs 32 位元浮點數或 32 位元無號整數或 QI8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 QI8 類型值的張量

tfl.squeeze (TFL::SqueezeOp)

從張量的形狀中移除大小為 1 的維度。

給定張量 input,此運算會傳回相同類型的張量,並移除所有大小為 1 的維度。如果您不想移除所有大小為 1 的維度,您可以透過指定 squeeze_dims 來移除特定的大小為 1 的維度。

例如

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t)) ==> [2, 3]

或者,移除特定的大小為 1 的維度

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
squeeze_dims::mlir::ArrayAttr大小最多為 8 的 64 位元整數陣列屬性

運算元

運算元 說明
input 任何類型值的張量

結果

結果 說明
output 任何類型值的張量

tfl.strided_slice (TFL::StridedSliceOp)

StridedSlice Op

input 傳回步幅切片。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
begin_mask::mlir::IntegerAttr32 位元無號整數屬性
end_mask::mlir::IntegerAttr32 位元無號整數屬性
ellipsis_mask::mlir::IntegerAttr32 位元無號整數屬性
new_axis_mask::mlir::IntegerAttr32 位元無號整數屬性
shrink_axis_mask::mlir::IntegerAttr32 位元無號整數屬性
offset::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 1 位元無號整數或 16 位元無號整數或 QI16 類型或 TFLite quint8 類型或 TFLite 字串類型值的張量
begin 32 位元無號整數值的張量
end 32 位元無號整數值的張量
strides 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 1 位元無號整數或 16 位元無號整數或 QI16 類型或 TFLite quint8 類型或 TFLite 字串類型值的張量

tfl.sub (TFL::SubOp)

減法運算子

逐元素減法運算。

特性:::mlir::OpTrait::TFLRuntimeOpTrait, AlwaysSpeculatableImplTrait, QuantizableResult, ResultsBroadcastableShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
lhs 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
rhs 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數或 64 位元無號整數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.sum (TFL::SumOp)

Sum 運算子

計算沿指定軸的總和縮減

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
keep_dims::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量
axes 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無符號整數或 64 位元無符號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 QI16 類型值的張量

tfl.svdf (TFL::SVDFOp)

單值分解濾波器運算子

SVDF 運算子是將密集連接的運算子分解為低秩濾波器。如需詳細資訊:https://research.google.com/pubs/pub43813.html https://arxiv.org/abs/1812.02802

特性:QuantizableResultquant::AccumulatorUniformScale<3, 2, 4>

介面:DynamicRangeQuantizedOpInterfaceTFL_StatefulOpTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
rank::mlir::IntegerAttr32 位元無號整數屬性,其值為正數
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型值的張量
feature_weights 32 位元浮點數或 QI8 類型或 QUI8 類型值的張量
time_weights 32 位元浮點數或 QI16 類型值的張量
input_gate_bias 任何類型值或無類型值的張量
activation_state 具狀態張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型值的張量

tfl.tanh (TFL::TanhOp)

雙曲正切運算子

計算輸入的逐元素雙曲正切

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

介面:ConditionallySpeculatable, FixedOutputRangeInterface, NoMemoryEffect (MemoryEffectOpInterface), TflArithmeticCountOpInterface, TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型或 TFLite quint8 類型值的張量

tfl.tile (TFL::TileOp)

Tile 運算子。

透過平鋪給定張量來建構張量。

此運算會透過複製輸入多次來建立新的張量。輸出張量的第 i 個維度具有 input.dims(i) * multiples[i] 個元素,且輸入的值會沿著第 'i' 個維度複製 multiples[i] 次。例如,將 [a b c d] 平鋪 [2] 會產生 [a b c d a b c d]。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 1 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite 字串類型值的張量
multiples 32/64 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 1 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite 字串類型值的張量

tfl.topk_v2 (TFL::TopKV2Op)

TopK 運算子

傳回 input 每個最後一個維度切片中前 k 個最大元素,以及輸入張量最後一個維度中值的索引。

結果始終以降序排序。

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型值的張量
k 16 位元無號整數或 32 位元無號整數值的張量

結果

結果 說明
values 32 位元浮點數或 8 位元無號整數或 16 位元無號整數或 32 位元無號整數或 64 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型值的張量
indices 16 位元無號整數或 32 位元無號整數值的張量

tfl.transpose (TFL::TransposeOp)

Transpose 運算子

傳回 x 的轉置

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元無號整數或 32 位元浮點數或 8 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 1 位元無號整數或 64 位元無號整數或 QI16 類型值的張量
perm 32 位元無號整數值的張量

結果

結果 說明
output 32 位元無號整數或 32 位元浮點數或 8 位元無號整數或 8 位元無號整數或 QI8 類型或 QUI8 類型或 TFLite quint8 類型或 1 位元無號整數或 64 位元無號整數或 QI16 類型值的張量

tfl.transpose_conv (TFL::TransposeConvOp)

轉置卷積運算子

對輸入執行轉置卷積運算。

特性:AlwaysSpeculatableImplTraitQuantizableResultquant::AccumulatorUniformScale<3, 1, 2>quant::AffineOpCoefficient<0, 1>

介面:AffineQuantizedOpInterfaceConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TFL_SparseOpTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
padding::mlir::StringAttr字串屬性,其值為 SAME 或 VALID
stride_h::mlir::IntegerAttr32 位元無號整數屬性,其值為正數
stride_w::mlir::IntegerAttr32 位元無號整數屬性,其值為正數
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

運算元

運算元 說明
output_shape 32 位元無號整數值的張量
weights 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
input 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量
bias 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型或 QUI8 類型或 QI16 類型值的張量

tfl.unidirectional_sequence_lstm (TFL::UnidirectionalSequenceLSTMOp)

單向序列 lstm 運算子

由 LSTM 儲存格指定的遞迴神經網路。此運算支援沿時間或批次維度展開輸入,並針對序列 s = 1...sequence_length 中的每個元素實作下列運算:outputs[s] = state = activation(LSTMOp(inputs[s]))

其中 LSTMOp 是 LSTM TF Lite 運算,而「activation」是作為「fused_activation_function」引數傳遞的函式 (如果不是「NONE」)。

特性:QuantizableResult

介面:DynamicRangeQuantizedOpInterfaceInferTypeOpInterfaceTFL_StatefulOpTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
cell_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
proj_clip::mlir::FloatAttr32 位元浮點數屬性,其值為非負數
time_major::mlir::BoolAttr布林值屬性
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性
diagonal_recurrent_tensors::mlir::BoolAttr布林值屬性
input_to_input_intermediate::mlir::TypeAttr任何類型屬性
input_to_forget_intermediate::mlir::TypeAttr任何類型屬性
input_to_cell_intermediate::mlir::TypeAttr任何類型屬性
input_to_output_intermediate::mlir::TypeAttr任何類型屬性
effective_hidden_scale_intermediate::mlir::TypeAttr任何類型屬性

運算元

運算元 說明
input 32 位元浮點數值的張量
input_to_input_weights 任何類型值或無類型值的張量
input_to_forget_weights 32 位元浮點數或 QI8 類型值的張量
input_to_cell_weights 32 位元浮點數或 QI8 類型值的張量
input_to_output_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_input_weights 任何類型值或無類型值的張量
recurrent_to_forget_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_cell_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_output_weights 32 位元浮點數或 QI8 類型值的張量
cell_to_input_weights 任何類型值或無類型值的張量
cell_to_forget_weights 任何類型值或無類型值的張量
cell_to_output_weights 任何類型值或無類型值的張量
input_gate_bias 任何類型值或無類型值的張量
forget_gate_bias 32 位元浮點數值的張量
cell_bias 32 位元浮點數值的張量
output_gate_bias 32 位元浮點數值的張量
projection_weights 任何類型值或無類型值的張量
projection_bias 任何類型值或無類型值的張量
input_activation_state 具狀態張量
input_cell_state 具狀態張量
input_layer_norm_coefficients 任何類型值或無類型值的張量
forget_layer_norm_coefficients 任何類型值或無類型值的張量
cell_layer_norm_coefficients 任何類型值或無類型值的張量
output_layer_norm_coefficients 任何類型值或無類型值的張量

結果

結果 說明
output 32 位元浮點數或 QI8 類型值的張量

tfl.unidirectional_sequence_rnn (TFL::UnidirectionalSequenceRNNOp)

單向序列 rnn 運算子

由 RNN 儲存格指定的遞迴神經網路。如果以時間為主,則此運算會以 {batch_size, seq_len, input_size} 或 {seq_len, batch_size, input_size} 格式接收輸入。

它針對序列 s = 1...sequence_length 中的每個元素實作下列運算:outputs[s] = state = activation(RNNOp(inputs[s]))

其中 RNNOp 是 RNNOp TF Lite 運算,而「activation」是作為「fused_activation_function」引數傳遞的函式 (如果不是「NONE」)。

特性:QuantizableResult

介面:DynamicRangeQuantizedOpInterfaceTFL_StatefulOpTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
time_major::mlir::BoolAttr布林值屬性
fused_activation_function::mlir::StringAttr字串屬性,其值為 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
asymmetric_quantize_inputs::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 32 位元浮點數值的張量
input_to_input_weights 32 位元浮點數或 QI8 類型值的張量
recurrent_to_input_weights 32 位元浮點數或 QI8 類型值的張量
input_gate_bias 32 位元浮點數值的張量
hidden_state 具狀態張量

結果

結果 說明
output 32 位元浮點數值的張量

tfl.unique (TFL::UniqueOp)

Unique Op。

此運算傳回張量 output,其中包含 input 的所有唯一元素,並以它們在 input 中出現的相同順序排序。此運算也會傳回與 x 大小相同的張量 idx,其中包含 input 的每個值在唯一輸出 output 中的索引。換句話說

特性:AlwaysSpeculatableImplTraitQuantizableResult

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
idx_out_type::mlir::Attribute衍生屬性

運算元

運算元 說明
input 8 位元無號整數或 QI8 類型或 8 位元無號整數或 QUI8 類型或 16 位元無號整數或 QI16 類型或 32 位元無號整數或 64 位元無號整數或 32 位元浮點數值的張量

結果

結果 說明
output 8 位元無號整數或 QI8 類型或 8 位元無號整數或 QUI8 類型或 16 位元無號整數或 QI16 類型或 32 位元無號整數或 64 位元無號整數或 32 位元浮點數值的張量
idx 32/64 位元無號整數值的張量

tfl.unpack (TFL::UnpackOp)

沿著維度將張量解壓縮成多個張量

將秩 R 張量的給定維度解壓縮成 num 個秩 (R-1) 張量。

透過沿著 axis 維度切割 value,從 value 解壓縮 num 個張量。例如,給定形狀為 (A, B, C, D) 的張量;

如果 axis == 0,則 output 中的第 i 個張量是切片 value[i, :, :, :],且 output 中的每個張量都將具有形狀 (B, C, D)。(請注意,與 split 不同,解壓縮沿著的維度已消失)。

如果 axis == 1,則 output 中的第 i 個張量是切片 value[:, i, :, :],且 output 中的每個張量都將具有形狀 (A, C, D)。依此類推。

這與 pack 相反。

特性:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultElementType

介面:ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

屬性

屬性MLIR 類型說明
num::mlir::IntegerAttr32 位元無號整數屬性,其值為非負數
axis::mlir::IntegerAttr32 位元無號整數屬性

運算元

運算元 說明
input 32 位元浮點數或 1 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數或 QI8 類型或 QUI8 類型或 16 位元無號整數或 QI16 類型值的張量

結果

結果 說明
outputs 任何類型值的張量的變數引數

tfl.unsorted_segment_max (TFL::UnsortedSegmentMaxOp)

UnsortedSegmentMax 運算子

計算張量分段的最大值,使得 output[i] = max(data[j....]),其中 segment_ids[j...] = i。如果給定分段 ID i 的最大值為空,則它會輸出特定數值類型的最小值,output[i] = numeric_limits::lowest()。請注意,segment_ids 的值始終經過驗證,以確保小於 num_segments,且對於超出範圍的索引會擲回錯誤。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數值的張量
segment_ids 32 位元無號整數值的張量
num_segments 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.unsorted_segment_min (TFL::UnsortedSegmentMinOp)

UnsortedSegmentMin 運算子

計算張量分段的最小值,使得 output[i] = min(data[j....]),其中 segment_ids[j...] = i。如果給定分段 ID i 的最小值為空,則它會輸出特定數值類型的最大值,output[i] = numeric_limits::max()。請注意,segment_ids 的值始終經過驗證,以確保小於 num_segments,且對於超出範圍的索引會擲回錯誤。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數值的張量
segment_ids 32 位元無號整數值的張量
num_segments 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.unsorted_segment_prod (TFL::UnsortedSegmentProdOp)

UnsortedSegmentProd 運算子

計算張量分段的乘積。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數值的張量
segment_ids 32 位元無號整數值的張量
num_segments 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.unsorted_segment_sum (TFL::UnsortedSegmentSumOp)

UnsortedSegmentSum 運算子

從張量分段中,計算將對應至相同 segment_id 的元素加總在一起所產生的 output。亦即,output[i] 等於從對應至 segment_id i 的輸入張量中所有元素的張量總和。如果沒有張量對應至特定的包含 segment_id,則該索引處的輸出將是具有適當形狀的零張量。請注意,segment_ids 的值始終經過驗證,以確保小於 num_segments,且對於超出範圍的索引會擲回錯誤

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 32 位元浮點數或 32 位元無號整數值的張量
segment_ids 32 位元無號整數值的張量
num_segments 32 位元無號整數值的張量

結果

結果 說明
output 32 位元浮點數或 32 位元無號整數值的張量

tfl.var_handle (TFL::VarHandleOp)

從變數資源的名稱傳回其控制代碼。

從變數資源的名稱傳回其控制代碼。container:此變數放置在其中的容器。shared_name:此變數所參照的名稱。

介面:TflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
container::mlir::StringAttr字串屬性
shared_name::mlir::StringAttr字串屬性

結果

結果 說明
resource_handle 資源值的張量

tfl.where (TFL::WhereOp)

傳回張量中非零/true 值的位置。

此運算會傳回 condition 中 true 元素的座標。座標會以 2D 張量傳回,其中第一個維度 (列) 表示 true 元素的數量,第二個維度 (欄) 表示 true 元素的座標。請記住,輸出張量的形狀可能會根據 condition 中 true 值的數量而有所不同。索引會依列優先順序輸出。

特性:AlwaysSpeculatableImplTrait

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
condition 1 位元無號整數或 32 位元浮點數或 32/64 位元無號整數或 8 位元無號整數或 8 位元無號整數或 32 位元無號整數值的張量

結果

結果 說明
index 64 位元無符號整數值的張量

tfl.while (TFL::WhileOp)

While 迴圈

output = input; while (cond(output)) { output = body(output) }

While 迴圈,其中所有值都透過具有隱含捕捉的引數傳遞。

input:類型為 T 的輸入張量清單。output:類型為 T 的輸出張量清單。cond:一個區域,接受 'input' 並傳回布林純量張量。body:一個區域,接受張量清單並傳回另一個張量清單。兩個清單都具有相同的類型。

特性:SingleBlockImplicitTerminator<YieldOp>, SingleBlock

介面:LoopLikeOpInterfaceTflRuntimeVerifyOpInterface

屬性

屬性MLIR 類型說明
is_stateless::mlir::BoolAttr布林值屬性

運算元

運算元 說明
input 任何類型值的張量的變數引數

結果

結果 說明
output 任何類型值的張量的變數引數

tfl.yield (TFL::YieldOp)

Yield 運算

「yield」運算表示結構化控制流程 (例如 while) 的條件和主體中的傳回運算,以及 ControlNodeOp 的終止符。此運算接受可變數量的運算元,且不產生結果。運算元數量和類型必須符合包含運算的區域的簽名。

特性:AlwaysSpeculatableImplTraitQuantizableResultTerminator

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
«unnamed» 任何類型的變數

tfl.zeros_like (TFL::ZerosLikeOp)

ZerosLike 運算子

傳回與輸入張量具有相同形狀和類型的零張量。

特性:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

介面:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

運算元

運算元 說明
input 64 位元無號整數或 32 位元無號整數或 32 位元浮點數值的張量

結果

結果 說明
output 64 位元無號整數或 32 位元無號整數或 32 位元浮點數值的張量

屬性

DimensionMetadataAttr

維度metadata。

語法

#tfl.dimension_metadata<
  ::mlir::TFL::DimensionTypeAttr,   # format
  int32_t,   # dense_size
  ::llvm::ArrayRef<int32_t>,   # segments
  ::llvm::ArrayRef<int32_t>   # indices
>

參數

參數 C++ 類型 說明
format ::mlir::TFL::DimensionTypeAttr dimension_type
dense_size int32_t
segments ::llvm::ArrayRef<int32_t>
indices ::llvm::ArrayRef<int32_t>

SparsityParameterAttr

稀疏參數。

語法

#tfl.sparsity_parameter<
  ::llvm::ArrayRef<int32_t>,   # traversal_order
  ::llvm::ArrayRef<int32_t>,   # block_map
  ::llvm::ArrayRef<DimensionMetadataAttr>   # dim_metadata
>

參數

參數 C++ 類型 說明
traversal_order ::llvm::ArrayRef<int32_t>
block_map ::llvm::ArrayRef<int32_t>
dim_metadata ::llvm::ArrayRef<DimensionMetadataAttr>

ConstBytesAttr

已編譯位元組的字串屬性表示法

語法範例

#tfl<const_bytes : "0xDEADBEEF">

參數

參數 C++ 類型 說明
value ::llvm::StringRef

DimensionTypeAttr

dimension_type

語法

#tfl.dimension_type_attr<
  ::mlir::TFL::DimensionType   # value
>

列舉案例

  • DENSE (DENSE)
  • SPARSE_CSR (SPARSE_CSR) #### 參數
參數 C++ 類型 說明
value ::mlir::TFL::DimensionType DimensionType 類型的列舉

LSTMKernelTypeAttr

lstm_kernel_type

語法

#tfl.lstm_kernel_type_attr<
  ::mlir::TFL::LSTMKernelType   # value
>

列舉案例

  • FULL (FULL)
  • BASIC (BASIC) #### 參數
參數 C++ 類型 說明
value ::mlir::TFL::LSTMKernelType LSTMKernelType 類型的列舉

MirrorPaddingTypeAttr

mirror_pad_enum

語法

#tfl.mirror_pad_attr<
  ::mlir::TFL::MirrorPaddingType   # value
>

列舉案例

  • REFLECT (REFLECT)
  • SYMMETRIC (SYMMETRIC) #### 參數
參數 C++ 類型 說明
value ::mlir::TFL::MirrorPaddingType MirrorPaddingType 類型的列舉