'tfl' 方言

TensorFlow Lite 方言。

此方言映射到 TensorFlow Lite 操作。

不变式

  • 所有值都是张量类型(特别是,标量使用零维张量表示);

操作

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 类型值的张量

结果

结果 描述
输出 32 位浮点数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量

tfl.add_n (TFL::AddNOp)

_Addn 运算符

逐元素添加所有输入张量。

特征:AlwaysSpeculatableImplTraitCommutative

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 任何类型值的张量的可变参数

结果

结果 描述
总和 32 位浮点数或 32 位无符号整数值的张量

tfl.arg_max (TFL::ArgMaxOp)

ArgMax 运算符

返回张量维度中具有最大值的索引。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
output_type::mlir::Attribute派生属性

操作数

操作数 描述
输入 1 位无符号整数或 32 位浮点数或 32 位无符号整数或 8 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型值的张量
dim 32/64 位无符号整数值的张量

结果

结果 描述
输出 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派生属性

操作数

操作数 描述
输入 1 位无符号整数或 32 位浮点数或 32 位无符号整数或 8 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型值的张量
dim 32/64 位无符号整数值的张量

结果

结果 描述
输出 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 位浮点数值的张量

结果

结果 描述
输出 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

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量

结果

结果 描述
输出 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 任何类型值的二维张量
state_output 任何类型值的二维张量
concat_temp 任何类型值的二维张量
activ_temp 任何类型值的二维张量

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 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QI16 类型或 32 位无符号整数值的张量

tfl.batch_to_space_nd (TFL::BatchToSpaceNdOp)

BatchToSpaceNd 运算符

此操作将“批次”维度 0 重塑为空间维度。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 8 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
block_shape 32 位无符号整数值的张量
indices 32 位无符号整数值的张量

结果

结果 描述
输出 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布尔属性

操作数

操作数 描述
输入 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{}

操作数

操作数 描述
输入 任何类型值的张量

结果

结果 描述
输出 任何类型值的张量

tfl.bitwise_xor (TFL::BitwiseXorOp)

按位异或运算符

逐元素计算 lhsrhs 的按位异或。

特征:AlwaysSpeculatableImplTraitCommutativeSameOperandsAndResultElementType

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 8 位无符号整数或 8 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数值的张量
rhs 8 位无符号整数或 8 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数值的张量

结果

结果 描述
输出 8 位无符号整数或 8 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数值的张量

tfl.broadcast_args (TFL::BroadcastArgsOp)

返回 s0 op s1 的形状,并进行广播。

给定 s0s1,表示形状的张量,计算 r0,即广播后的形状。 s0s1r0 都是整数向量。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
s0 32/64 位无符号整数值的张量
s1 32/64 位无符号整数值的张量

结果

结果 描述
r0 32/64 位无符号整数值的张量

tfl.broadcast_to (TFL::BroadcastToOp)

将数组广播到兼容的形状。

广播是使数组具有兼容形状以进行算术运算的过程。如果两个形状在每个维度对中都相等或其中一个为 1,则它们是兼容的。当尝试将张量广播到形状时,它从尾部维度开始,并向前工作。

例如,

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{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 1 位无符号整数或 4 位无符号整数或 8 位无符号整数或 QI8 类型或 8 位无符号整数或 32 位无符号整数或 QUI8 类型或 16 位无符号整数或 QI16 类型或 64 位无符号整数或具有 32 位浮点元素的复数类型的值的张量
shape 32/64 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 1 位无符号整数或 4 位无符号整数或 8 位无符号整数或 QI8 类型或 8 位无符号整数或 32 位无符号整数或 QUI8 类型或 16 位无符号整数或 QI16 类型或 64 位无符号整数或具有 32 位浮点元素的复数类型的值的张量

tfl.bucketize (TFL::BucketizeOp)

根据“边界”对“输入”进行分桶。

示例

如果输入是 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 位浮点数组属性

操作数

操作数 描述
输入 32 位浮点数或 64 位浮点数或 32 位无符号整数或 64 位无符号整数值的张量

结果

结果 描述
输出 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{}

操作数

操作数 描述
输入 16 位浮点数或 bfloat16 类型或 32 位浮点数或 64 位浮点数或 1 位无符号整数或 4 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数或 64 位无符号整数或 TFLite quint8 类型或 8 位无符号整数或 8 位无符号整数或具有 32 位浮点元素的复数类型的值的张量

结果

结果 描述
输出 16 位浮点数或 bfloat16 类型或 32 位浮点数或 64 位浮点数或 1 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数或 64 位无符号整数或 TFLite quint8 类型或 8 位无符号整数或 8 位无符号整数或具有 32 位浮点元素的复数类型的值的张量

tfl.ceil (TFL::CeilOp)

Ceil 运算符

返回输入的逐元素 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{}

操作数

操作数 描述
输入 具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量

结果

结果 描述
输出 32 位浮点数或 64 位浮点数值的张量

tfl.concatenation (TFL::ConcatenationOp)

串联运算符

沿一个维度串联张量

特征: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 任何类型值的张量的可变参数

结果

结果 描述
输出 32 位浮点数或 64 位无符号整数或 32 位无符号整数或 16 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 8 位无符号整数或 32 位无符号整数或 1 位无符号整数值的张量

tfl.control_node (TFL::ControlNodeOp)

TFL.control_node 操作包装单块操作,以便附加控制边。

这用于包装区域并将控制依赖项附加到它们。通常,这将在发出 flatbuffer 模型之前的最后几个步骤中发生,以便启用依赖于固定操作顺序的优化(例如重新物化)。flatbuffer 导出器将解开包装的区域,并使用元数据注释生成的模型,以便任何运行时重新排序都将尊重控制依赖项给出的顺序。

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

操作数

操作数 描述
controlInputs control 的可变参数

结果

结果 描述
outputs 任何类型值的张量的可变参数
control control

tfl.conv_2d (TFL::Conv2DOp)

卷积运算符

对输入执行卷积运算。

输入: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 位无符号整数属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
filter 32 位浮点数或 QI4 类型或 QI8 类型或 QUI8 类型值的张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量

tfl.conv_3d (TFL::Conv3DOp)

卷积 3D 运算符

对 3D 输入执行卷积运算。输入: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 位无符号整数属性

操作数

操作数 描述
输入 32 位浮点值的张量
filter 32 位浮点值的张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.conv_3d_transpose (TFL::Conv3DTransposeOp)

3D 转置卷积运算符

对 3D 输入执行转置卷积运算。输入: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 位浮点值的张量
输入 32 位浮点值的张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.cos (TFL::CosOp)

余弦运算符

计算输入的逐元素余弦。

特征:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

接口:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 32 位浮点值的张量

结果

结果 描述
y 32 位浮点值的张量

tfl.cumsum (TFL::CumsumOp)

累积和运算符

计算张量 x 沿轴的累积和。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
exclusive::mlir::BoolAttr布尔属性
reverse::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数的值张量
axis 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数的值张量

tfl.custom (TFL::CustomOp)

自定义运算符

任何 TFLite 自定义操作的通用运算符。

input:原始运算符中的输入列表。custom_code:用于标识此运算符的字符串,对应于 flatbuffer 中的 operator_codes.custom_code。custom_option:一个保存运算符属性的字节格式的占位符。output:原始运算符中的输出列表。

接口:TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
custom_code::mlir::StringAttr字符串属性
custom_option::mlir::TFL::ConstBytesAttr编译字节的字符串属性表示

操作数

操作数 描述
输入 任何类型值的张量或无类型值的变长参数

结果

结果 描述
输出 任何类型值的张量的可变参数

tfl.custom_tf (TFL::CustomTfOp)

TF 自定义运算符的包装运算符。

任何自定义 TF 运算符的包装运算符。这些包括使用 custom_opdefs 定义或链接的运算符,这些运算符未在 TF 方言中定义。此运算符只是将自定义运算符包装在一个区域中。注意 #1,此运算符不包括使用 CustomOp 定义的 TF Lite 自定义运算符。注意 #2,此运算符只是转换器内部的表示,在模型导出到 Flatbuffer 时不会公开/导出。

特征:IsolatedFromAboveRecursiveMemoryEffectsSingleBlockImplicitTerminator<YieldOp>SingleBlock

接口:InferTypeOpInterfaceTflRuntimeVerifyOpInterface

操作数

操作数 描述
输入 任何类型值的张量或无类型值的变长参数

结果

结果 描述
输出 任何类型值的张量的可变参数

tfl.densify (TFL::DensifyOp)

稠密化运算符

将稀疏张量转换为稠密格式。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 8 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 8 位无符号整数值的张量

tfl.depth_to_space (TFL::DepthToSpaceOp)

DepthToSpace 运算符

将数据从深度重新排列到空间数据块中。这是 SpaceToDepth 的逆变换。更具体地说,此运算符输出输入张量的副本,其中来自 depth 维度的值在空间块中移动到 heightwidth 维度。属性 block_size 指示输入块大小以及数据移动的方式。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
block_size::mlir::IntegerAttr值为正的 32 位无符号整数属性

操作数

操作数 描述
输入 32 位浮点数或 8 位无符号整数或 32 位无符号整数或 64 位无符号整数或 TFLite quint8 类型或 8 位无符号整数或 QI8 类型或 QUI8 类型的值张量

结果

结果 描述
输出 32 位浮点数或 8 位无符号整数或 32 位无符号整数或 64 位无符号整数或 TFLite quint8 类型或 8 位无符号整数或 QI8 类型或 QUI8 类型的值张量

tfl.depthwise_conv_2d (TFL::DepthwiseConv2DOp)

深度可分离卷积运算符

对输入执行卷积运算。

输入: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 位无符号整数属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
filter 32 位浮点数或 QI4 类型或 QI8 类型或 QUI8 类型值的张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量

tfl.dequantize (TFL::DequantizeOp)

反量化运算符

根据量化参数将量化的整数数组转换为浮点数。

接口:NoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 QI4 类型或 QI8 类型或 QUI8 类型或 QI16 类型或 16 位浮点数的值张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.dilate (TFL::DilateOp)

膨胀运算符

通过在现有元素之间添加新元素来扩展张量。特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 32 位浮点数或 64 位浮点数的值张量
dilations 32 位无符号整数值的张量
padding_value 任何类型值的 0D 张量

结果

结果 描述
输出 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 32 位浮点数或 64 位浮点数的值张量

tfl.div (TFL::DivOp)

除法运算符

逐元素除法运算。

特征:::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 类型的值张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 QUI8 类型的值张量

tfl.dynamic_update_slice (TFL::DynamicUpdateSliceOp)

DynamicUpdateSlice。

DynamicUpdateSlice 运算符,其语义与 XLA DynamicUpdateSlice 相同。生成一个结果,该结果是输入数组操作数的值,其中在 start_indices 处覆盖了切片更新。

参见 https://tensorflowcn.cn/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 位无符号整数值的张量

结果

结果 描述
输出 1 位无符号整数或 8 位无符号整数或 32 位无符号整数或 64 位无符号整数或 32 位浮点数的值张量

tfl.elu (TFL::EluOp)

指数线性单元运算符

计算指数线性 f(x) -> exp(x) - 1 for x < 0, x for x >= 0。逐元素。

特征:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 32 位浮点数或 8 位无符号整数值的张量

结果

结果 描述
y 32 位浮点数或 8 位无符号整数值的张量

tfl.embedding_lookup (TFL::EmbeddingLookupOp)

嵌入查找运算符

在嵌入张量列表中查找 id。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lookup 32 位无符号整数值的张量
value 32 位浮点数或 8 位无符号整数或 8 位无符号整数的值张量

结果

结果 描述
输出 32 位浮点数或 8 位无符号整数或 8 位无符号整数的值张量

tfl.equal (TFL::EqualOp)

相等运算符

返回 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 字符串类型的值张量

结果

结果 描述
输出 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{}

操作数

操作数 描述
输入 任何类型值的张量
dim 32/64 位无符号整数值的张量

结果

结果 描述
输出 任何类型值的张量

tfl.external_const (TFL::ExternalConstOp)

外部常量运算符。

外部常量运算符保存一个 buffer_index,它指向 flatbuffer 中的常量。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
buffer_index::mlir::IntegerAttr32 位无符号整数属性

结果

结果 描述
输出 任何类型值的张量

tfl.fake_quant (TFL::FakeQuantOp)

FakeQuant 运算符

通过浮点数标量 min 和 max 对类型为 float 的 'inputs' 张量进行假量化,以生成与 inputs 形状相同的 'outputs' 张量。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
min::mlir::FloatAttr32 位浮点数属性
max::mlir::FloatAttr32 位浮点数属性
num_bits::mlir::IntegerAttr最小值为 2、最大值为 16 的 32 位无符号整数属性
narrow_range::mlir::BoolAttr值为 false 的布尔属性

操作数

操作数 描述
输入 32 位浮点值的张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.fill (TFL::FillOp)

用给定值填充张量。

用给定值填充张量。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
dims 32/64 位无符号整数值的张量
输入 32 位浮点数或 16 位浮点数或 32 位无符号整数或 64 位无符号整数或 1 位无符号整数或 QI8 类型或 QI16 类型或 TFLite 字符串类型的值张量

结果

结果 描述
result 32 位浮点数或 16 位浮点数或 32 位无符号整数或 64 位无符号整数或 1 位无符号整数或 QI8 类型或 QI16 类型或 TFLite 字符串类型的值张量

tfl.floor (TFL::FloorOp)

向下取整运算符

返回输入的逐元素向下取整值。

特征:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

接口:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 32 位浮点值的张量

结果

结果 描述
y 32 位浮点值的张量

tfl.floor_div (TFL::FloorDivOp)

向下取整除法运算符

逐元素向下取整除法运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数的值张量
rhs 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数的值张量

结果

结果 描述
输出 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 位浮点数的值张量

结果

结果 描述
输出 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布尔属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型或 QUI16 类型的值张量
filter 32 位浮点数或 QI4 类型或 QI8 类型或 QUI8 类型或 QI16 类型的值张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 任何类型值的张量的可变参数

tfl.gather (TFL::GatherOp)

Gather 运算符

根据 indicesparamsaxis 收集切片。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableDynamicRangeQuantizedOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果: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 位无符号整数的值张量

结果

结果 描述
输出 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 位无符号整数的值张量

结果

结果 描述
输出 32 位浮点数或 1 位无符号整数或 8 位无符号整数或 16 位无符号整数或 64 位无符号整数或 32 位无符号整数或 8 位无符号整数或 QI8 类型或 TFLite 字符串类型的值张量

tfl.gelu (TFL::GeluOp)

GELU 激活函数。

逐元素计算 GELU 激活函数。

特征:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
近似::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QUI8 类型值的张量

tfl.greater (TFL::GreaterOp)

大于运算符

逐元素大于运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量
rhs 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.greater_equal (TFL::GreaterEqualOp)

大于等于运算符

逐元素大于等于运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型值的张量
rhs 32 位浮点数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.hard_swish (TFL::HardSwishOp)

Hardswish 激活函数。

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

特征:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 QUI8 类型或 QI8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QUI8 类型或 QI8 类型值的张量

tfl.hashtable (TFL::HashtableOp)

创建一个未初始化的哈希表。

此操作创建一个哈希表,指定其键和值的类型。在使用表之前,您需要对其进行初始化。初始化后,表将不可变。

接口:TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
表 ID::mlir::IntegerAttr32 位无符号整数属性
键数据类型::mlir::TypeAttr任何类型属性
值数据类型::mlir::TypeAttr任何类型属性

结果

结果 描述
输出 资源值的张量

tfl.hashtable_find (TFL::HashtableFindOp)

在表中查找键,输出相应的键值。

张量 keys 必须与表的键类型相同。输出 values 的类型与表值的类型相同。

标量 default_value 是表中不存在的键的输出值。它也必须与表值的类型相同。

接口:TflRuntimeVerifyOpInterface

操作数

操作数 描述
哈希表 资源值的张量
32 位无符号整数或 TFLite 字符串类型或 64 位无符号整数值的张量
默认值 32 位浮点数或 32 位无符号整数或 TFLite 字符串类型或 64 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 TFLite 字符串类型或 64 位无符号整数值的张量

tfl.hashtable_import (TFL::HashtableImportOp)

用指定的键和值替换表的内容。

张量 keys 必须与表的键类型相同。张量 values 必须与表值的类型相同。

接口:TflRuntimeVerifyOpInterface

操作数

操作数 描述
哈希表 资源值的张量
32 位无符号整数或 TFLite 字符串类型或 64 位无符号整数值的张量
values 32 位浮点数或 32 位无符号整数或 TFLite 字符串类型或 64 位无符号整数值的张量

tfl.hashtable_size (TFL::HashtableSizeOp)

计算给定表中的元素数量。

接口:TflRuntimeVerifyOpInterface

操作数

操作数 描述
哈希表 资源值的张量

结果

结果 描述
输出 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  {
  ...
}

特征:NoRegionArgumentsRecursiveMemoryEffectsSingleBlockImplicitTerminator<YieldOp>SingleBlock

接口:RegionBranchOpInterfaceTflRuntimeVerifyOpInterface

操作数

操作数 描述
条件 1 位无符号整数的值张量

结果

结果 描述
结果 任何类型值的张量的可变参数

tfl.imag (TFL::ImagOp)

返回复数的虚部。

给定一个复数张量 input,此操作返回一个类型为 float 的张量,它是 input 中每个元素的虚部。 input 中的所有元素必须是形如 \(a + bj\) 的复数,其中 a 是实部,b 是此操作返回的虚部。

特征:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量

结果

结果 描述
输出 32 位浮点数或 64 位浮点数值的张量

tfl.l2_normalization (TFL::L2NormalizationOp)

L2 归一化运算符

L2 归一化操作

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableFixedOutputRangeInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
fused_activation_function::mlir::StringAttr字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

操作数

操作数 描述
输入 32 位浮点数或 QUI8 类型或 QI8 类型或 QUI16 类型或 QI16 类型或 8 位无符号整数值的张量

结果

结果 描述
输出 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 位浮点数属性

操作数

操作数 描述
输入 32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

tfl.less (TFL::LessOp)

小于运算符

逐元素小于运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量
rhs 32 位浮点数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.less_equal (TFL::LessEqualOp)

小于等于运算符

逐元素小于等于运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型值的张量
rhs 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.local_response_normalization (TFL::LocalResponseNormalizationOp)

局部响应归一化。

4-D input 张量被视为 1-D 向量(沿着最后一个维度)的 3-D 数组,每个向量都独立归一化。在给定向量内,每个分量都除以 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 类型描述
半径::mlir::IntegerAttr32 位无符号整数属性
bias::mlir::FloatAttr32 位浮点数属性
alpha::mlir::FloatAttr32 位浮点数属性
beta::mlir::FloatAttr32 位浮点数属性

操作数

操作数 描述
输入 32 位浮点值的张量

结果

结果 描述
输出 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

接口:ConditionallySpeculatableFixedOutputRangeInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量

tfl.logical_and (TFL::LogicalAndOp)

逻辑 AND 运算符

逐元素逻辑 AND 运算。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 1 位无符号整数的值张量
rhs 1 位无符号整数的值张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.logical_not (TFL::LogicalNotOp)

逻辑 NOT 运算符

逐元素逻辑 NOT 运算。

特征:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 1 位无符号整数的值张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.logical_or (TFL::LogicalOrOp)

逻辑 OR 运算符

逐元素逻辑 OR 运算。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 1 位无符号整数的值张量
rhs 1 位无符号整数的值张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.logistic (TFL::LogisticOp)

Logistic 运算符

计算输入的逐元素 Sigmoid。

特征:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

接口:ConditionallySpeculatableFixedOutputRangeInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果: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。'长短期记忆'。神经计算,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布尔属性
输入到输入中间::mlir::TypeAttr任何类型属性
输入到遗忘中间::mlir::TypeAttr任何类型属性
输入到单元中间::mlir::TypeAttr任何类型属性
输入到输出中间::mlir::TypeAttr任何类型属性
有效隐藏比例中间::mlir::TypeAttr任何类型属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QI16 类型的值张量
输入到输入权重 任何类型值或无类型值的张量
输入到遗忘权重 32 位浮点数或 QI8 类型值的张量
输入到单元权重 32 位浮点数或 QI8 类型值的张量
输入到输出权重 32 位浮点数或 QI8 类型值的张量
循环到输入权重 任何类型值或无类型值的张量
循环到遗忘权重 32 位浮点数或 QI8 类型值的张量
循环到单元权重 32 位浮点数或 QI8 类型值的张量
循环到输出权重 32 位浮点数或 QI8 类型值的张量
单元到输入权重 任何类型值或无类型值的张量
单元到遗忘权重 任何类型值或无类型值的张量
单元到输出权重 任何类型值或无类型值的张量
输入门偏差 任何类型值或无类型值的张量
遗忘门偏差 32 位浮点数或 QI32 类型值的张量
单元偏差 32 位浮点数或 QI32 类型值的张量
输出门偏差 32 位浮点数或 QI32 类型值的张量
投影权重 任何类型值或无类型值的张量
投影偏差 任何类型值或无类型值的张量
输入激活状态 状态张量
输入单元状态 状态张量
输入层归一化系数 任何类型值或无类型值的张量
遗忘层归一化系数 任何类型值或无类型值的张量
单元层归一化系数 任何类型值或无类型值的张量
输出层归一化系数 任何类型值或无类型值的张量

结果

结果 描述
输出 任何类型值的张量

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{}

操作数

操作数 描述
对角线 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 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{}

操作数

操作数 描述
输入 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QUI8 类型或 QI16 类型或 QUI8 类型或 TFLite quint8 类型值的张量
对角线 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QUI8 类型或 QI16 类型或 QUI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
result 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QUI8 类型或 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

操作数

操作数 描述
输入 32 位浮点数或 QUI8 类型或 QI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 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)

平均值运算符

计算张量跨维度元素的平均值。沿着轴中给定的维度减少 input_tensor。除非 keepdims 为真,否则张量的秩将为轴中的每个条目减少 1。如果 keepdims 为真,则保留缩减的维度,长度为 1。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 8 位无符号整数或 QI16 类型值的张量
axis 32 位无符号整数值的张量

结果

结果 描述
输出 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 运算符。用镜像值填充张量。

此操作根据您指定的填充用镜像值填充输入。填充是一个形状为 [n, 2] 的整数张量,其中 n 是输入的秩。对于输入的每个维度 D,填充[D, 0] 指示在该维度中输入内容之前添加多少个值,填充[D, 1] 指示在该维度中输入内容之后添加多少个值。

如果 copy_border 为真(如果为假,则分别),则填充[D, 0] 和填充[D, 1] 都必须不大于 input.dim_size(D)(或 input.dim_size(D) - 1)。

输出的每个维度 D 的填充大小为

填充(D, 0) + input.dim_size(D) + 填充(D, 1)

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
mode::mlir::TFL::MirrorPaddingTypeAttrmirror_pad_enum

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
pad 32 位无符号整数或 64 位无符号整数值的张量

结果

结果 描述
输出 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 位浮点元素值的复数类型的张量

结果

结果 描述
输出 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 位无符号整数值的张量

结果

结果 描述
输出 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)

表示无值的常量。

无值常量操作。

特性:AlwaysSpeculatableImplTraitConstantLike

接口:ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (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 操作 获取与所选索引相对应的边界框坐标。例如: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 操作 获取与所选索引相对应的边界框坐标。例如: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)

_不等于运算符_

逐元素不等于运算。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitCommutativeResultsBroadcastableShape

接口: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 字符串类型的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.NumericVerify (TFL::NumericVerifyOp)

验证两个操作数的数值

NumericVerify 操作是一个调试操作,用于验证两个激活的数值。它是 TFLite 中的自定义操作。如果 log_if_failed 为真,则 NumericVerify 操作会计算浮点激活和量化激活之间差异的统计信息,输出日志,将差异设置为输出张量,如果存在超过容差的错误,则抛出错误。如果 log_if_failed = false,则它不关心错误。

特性:QuantizableResultSameOperandsShape

接口:TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
tolerance::mlir::FloatAttr32 位浮点数属性
log_if_failed::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 QI8 类型或 QUI8 类型或 QI16 类型或 16 位浮点数或 TFLite quint8 类型值的张量
ref 32 位浮点值的张量

结果

结果 描述
输出 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 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 1 位无符号整数或 8 位无符号整数或 8 位无符号整数值的张量

tfl.pack (TFL::PackOp)

将张量列表沿着一个维度打包成一个张量

values_count 个秩为 R 的张量打包成一个秩为 (R+1) 的张量。

values 中的 values_count 个张量打包成一个秩比 values 中每个张量高一个的张量,方法是沿着 axis 维度打包它们。

给定一个形状为 (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::IntegerAttr值为正的 32 位无符号整数属性
axis::mlir::IntegerAttr32 位无符号整数属性

操作数

操作数 描述
values 任何类型值的张量的可变参数

结果

结果 描述
输出 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 的填充大小为

填充(D, 0) + input.dim_size(D) + 填充(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{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
padding 32/64 位无符号整数值的张量

结果

结果 描述
输出 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 的填充大小为

填充(D, 0) + input.dim_size(D) + 填充(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{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量
padding 32/64 位无符号整数值的张量
constant_values 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量

tfl.poly_call (TFL::PolyCallOp)

多项式调用

对于同一个计算,有多个函数体。这允许程序编译器/解释器根据哪个函数体最适合目标后端来选择一个可用的选项来执行程序。

输入:类型为 T 的输入张量列表。输出:类型为 T 的输出张量列表。

调用:多个区域,每个区域都封装了相同的语义计算,但形式不同。

特性:SingleBlockImplicitTerminator<YieldOp>SingleBlock

接口:RegionBranchOpInterface

操作数

操作数 描述
输入 任何类型值的张量的可变参数

结果

结果 描述
输出 任何类型值的张量的可变参数

tfl.pow (TFL::PowOp)

幂运算符

逐元素幂运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 32 位浮点数或 32 位无符号整数值的张量
rhs 32 位浮点数或 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数值的张量

tfl.prelu (TFL::PReluOp)

参数化 Relu 运算符

参数化 Relu 运算符 x -> x >= 0 ? x : (alpha * x),其中 alpha 是一个可训练的张量。输入和 alpha 应该与输入大小相同或可广播。

特性:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShapequant::AffineOpCoefficient<-1, 1>

接口:AffineQuantizedOpInterfaceConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量
alpha 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量

tfl.pseudo_const (TFL::ConstOp)

常量伪操作。

表示 TensorFlow Lite 方言中的常量值。这不是一个实际的操作,它将被降低为缓冲区。

该操作允许具有与 tf.Const 相同类型的属性(例如,允许不透明的 TF 属性)。

特性:AlwaysSpeculatableImplTraitConstantLikeFirstAttrDerivedResultTypeQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
value::mlir::ElementsAttr常量向量/张量属性

结果

结果 描述
输出 任何类型值的张量

tfl.pseudo_qconst (TFL::QConstOp)

量化常量伪操作

表示 TensorFlow Lite 方言中的量化常量值。这不是一个实际的操作,它将被降低为缓冲区。量化参数存储在这个常量中的类型属性中。

特性:AlwaysSpeculatableImplTraitFirstAttrDerivedResultType

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
qtype::mlir::TypeAttr张量类型属性
value::mlir::ElementsAttr常量向量/张量属性

结果

结果 描述
输出 QUI8 类型或 QI8 类型或 QI16 类型或 QUI16 类型或 TFLite quint8 类型值的张量

tfl.pseudo_sparse_const (TFL::SparseConstOp)

稀疏常量伪操作。

表示 TensorFlow Lite 方言中的稀疏常量值。这不是一个实际的操作,它将被降低为缓冲区。

特性:AlwaysSpeculatableImplTraitFirstAttrDerivedResultTypeQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
value::mlir::ElementsAttr常量向量/张量属性
s_param::mlir::TFL::SparsityParameterAttr稀疏参数。
compressed_data::mlir::ElementsAttr常量向量/张量属性

结果

结果 描述
输出 任何类型值的张量

tfl.pseudo_sparse_qconst (TFL::SparseQConstOp)

稀疏量化常量伪操作

表示 TensorFlow Lite 方言中的稀疏量化常量值。这不是一个实际的操作,它将被降低为缓冲区。量化参数存储在这个常量中的类型属性中。

特性:AlwaysSpeculatableImplTraitFirstAttrDerivedResultType

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
qtype::mlir::TypeAttr张量类型属性
value::mlir::ElementsAttr常量向量/张量属性
s_param::mlir::TFL::SparsityParameterAttr稀疏参数。
compressed_data::mlir::ElementsAttr常量向量/张量属性

结果

结果 描述
输出 QUI8 类型或 QI8 类型或 QI16 类型或 QUI16 类型或 TFLite quint8 类型值的张量

tfl.quantize (TFL::QuantizeOp)

量化运算符

根据类型属性中定义的量化参数,将浮点张量转换为量化整数张量。

特性:FirstAttrDerivedResultTypeSameOperandsAndResultShape

接口:NoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
qtype::mlir::TypeAttr张量类型属性

操作数

操作数 描述
输入 32 位浮点数或 QI4 类型或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 QI4 类型或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

tfl.random_standard_normal (TFL::RandomStandardNormalOp)

从正态分布输出随机值。

生成的值的平均值为 0,标准差为 1。

接口:TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
seed::mlir::IntegerAttr64 位无符号整数属性
seed2::mlir::IntegerAttr64 位无符号整数属性

操作数

操作数 描述
shape 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.random_uniform (TFL::RandomUniformOp)

从均匀分布输出随机值。

生成的数值服从范围 [0, 1) 内的均匀分布。下限 0 包含在范围内,而上限 1 不包含在范围内。

接口:TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
seed::mlir::IntegerAttr64 位无符号整数属性
seed2::mlir::IntegerAttr64 位无符号整数属性

操作数

操作数 描述
shape 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.range (TFL::RangeOp)

范围运算符

返回一个由从 startlimit 的序列定义的 1D 张量,并具有给定的 delta

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
start 32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量
limit 32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量
delta 32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量

结果

结果 描述
result 32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量

tfl.rank (TFL::RankOp)

秩运算符。

返回张量的秩。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 任何类型值的张量

结果

结果 描述
输出 任何整数类型的张量

tfl.read_variable (TFL::ReadVariableOp)

读取变量值。

读取由 'resource_id' 标识的变量数据。

接口:TflRuntimeVerifyOpInterface

操作数

操作数 描述
resource_id 资源值的张量

结果

结果 描述
result 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{}

操作数

操作数 描述
输入 具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量

结果

结果 描述
输出 32 位浮点数或 64 位浮点数值的张量

tfl.reduce_all (TFL::ReduceAllOp)

计算张量跨维度的“逻辑与”。

沿着 axis 中给定的维度减少 input。除非 keep_dims 为真,否则张量的秩将为 axis 中每个条目减少 1。如果 keep_dims 为真,则保留缩减的维度,长度为 1。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 1 位无符号整数的值张量
reduction_indices 32 位无符号整数值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.reduce_any (TFL::ReduceAnyOp)

计算张量跨维度的“逻辑或”。

沿着 axis 中给定的维度减少 input。除非 keep_dims 为真,否则张量的秩将为 axis 中每个条目减少 1。如果 keep_dims 为真,则保留缩减的维度,长度为 1。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 1 位无符号整数的值张量
reduction_indices 32 位无符号整数值的张量

结果

结果 描述
输出 1 位无符号整数的值张量

tfl.reduce_max (TFL::ReduceMaxOp)

最大值约简运算符

计算沿指定轴的最大值约简

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
axes 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

tfl.reduce_min (TFL::ReduceMinOp)

最小值约简运算符

计算沿指定轴的最小值约简

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
axes 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

tfl.reduce_prod (TFL::ReduceProdOp)

乘积约简运算符

计算沿指定轴的乘积

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
axes 32 位无符号整数值的张量

结果

结果 描述
输出 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)

重塑运算符

生成具有相同值但由输出类型定义的不同静态形状的张量。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 任何类型值的张量
shape 32 位无符号整数值的张量

结果

结果 描述
输出 任何类型值的张量

tfl.resize_bilinear (TFL::ResizeBilinearOp)

ResizeBilinear 操作

使用双线性插值将 images 调整为 size

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
align_corners::mlir::BoolAttr布尔属性
half_pixel_centers::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 TFLite quint8 类型或 QUI8 类型或 QI8 类型或 QI16 类型值的张量
size 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 TFLite quint8 类型或 QUI8 类型或 QI8 类型或 QI16 类型值的张量

tfl.resize_nearest_neighbor (TFL::ResizeNearestNeighborOp)

ResizeNearestNeighbor 操作

使用最近邻插值将 images 调整为 size

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
align_corners::mlir::BoolAttr布尔属性
half_pixel_centers::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 TFLite quint8 类型或 QUI8 类型或 QI8 类型或 QI16 类型值的张量
size 32 位无符号整数值的张量

结果

结果 描述
输出 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 位无符号整数属性,其值为非负数

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI16 类型或 QUI8 类型或 TFLite quint8 类型值的张量
seq_lengths 32/64 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI16 类型或 QUI8 类型或 TFLite quint8 类型值的张量

tfl.reverse_v2 (TFL::ReverseV2Op)

ReverseV2 运算符

反转张量的特定维度。

给定一个张量和一个表示要反转的张量维度的 int32/int64 张量轴。此操作反转每个维度 i,对于该维度 i 存在 j 使得 axis[j] == i。

参数:tensor:一个张量。必须是以下类型之一:uint8、int8、int16、int32、int64、float32、bool 最高 8 维。

axis:一个张量。必须是以下类型之一:int32、int64。只有一个元素,即轴索引。TODO:添加对多个元素的支持。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QI16 类型或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 1 位无符号整数值的张量
axis 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 QI16 类型或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 1 位无符号整数值的张量

tfl.rfft2d (TFL::RFFT2dOp)

二维实值快速傅里叶变换。

计算 input 最内层 2 维上的实值信号的二维离散傅里叶变换。

由于实信号的 DFT 是厄米特对称的,因此 RFFT2D 仅返回 output 最内层维度的 fft_length / 2 + 1 个唯一分量:零频率项,然后是 fft_length / 2 个正频率项。

在每个计算 RFFT2D 的轴上,如果 fft_length 小于 input 的对应维度,则该维度会被裁剪。如果它更大,则该维度会被用零填充。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点值的张量
fft_length 32 位无符号整数值的张量

结果

结果 描述
输出 具有 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 位无符号整数值的张量

结果

结果 描述
输出 8 位无符号整数或 8 位无符号整数或 16 位无符号整数或 16 位无符号整数或 32 位无符号整数或 32 位无符号整数值的张量

tfl.round (TFL::RoundOp)

舍入运算符

将张量的值逐元素舍入到最接近的整数。

特征: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)

_Scatter_nd 运算符

根据 indicesupdates 散布到一个新的张量中。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
indices 32 位无符号整数值的张量
updates 具有 32 位浮点数或 8 位无符号整数或 64 位无符号整数或 32 位无符号整数或 8 位无符号整数或 1 位无符号整数的值的张量
shape 任何类型值的 1D 张量

结果

结果 描述
输出 具有 32 位浮点数或 8 位无符号整数或 64 位无符号整数或 32 位无符号整数或 8 位无符号整数或 1 位无符号整数的值的张量

tfl.segment_sum (TFL::SegmentSumOp)

SegmentSum 运算符

计算张量沿段的总和。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数值的张量
segment_ids 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数值的张量

tfl.select (TFL::SelectOp)

选择运算符

如果 'condition' 的对应值为真,则选择 'x' 的值,否则选择 '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 类型值的张量

结果

结果 描述
输出 具有 32 位浮点数或 1 位无符号整数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 32 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

tfl.select_v2 (TFL::SelectV2Op)

SelectV2 运算符

如果 'condition' 的对应值为真,则选择 'x' 的值,否则选择 'y' 的值。有有效的条件输入大小

  1. 要么是相同的形状(在这种情况下,选择是逐元素的),要么
  2. 'condition'、'x' 和 'y' 之间的广播形状。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口: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 类型值的张量

结果

结果 描述
输出 具有 32 位浮点数或 1 位无符号整数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 32 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

tfl.shape (TFL::ShapeOp)

形状运算符

返回张量的形状。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
out_type::mlir::Attribute派生属性

操作数

操作数 描述
输入 任何类型值的张量

结果

结果 描述
输出 32 位无符号整数或 64 位无符号整数值的张量

tfl.sign (TFL::SignOp)

符号运算

如果 x 为 NaN,则返回 NaN;如果 x 为 0,则返回 0;如果 x < 0,则返回 -1;如果 x > 0,则返回 1。

特征:AlwaysSpeculatableImplTraitSameOperandsAndResultElementTypeSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 具有 32 位浮点数或 64 位浮点数或 32 位无符号整数的值的张量

结果

结果 描述
输出 具有 32 位浮点数或 64 位浮点数或 32 位无符号整数的值的张量

tfl.sin (TFL::SinOp)

正弦运算符

计算输入的逐元素正弦。

特征:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

接口:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 32 位浮点值的张量

结果

结果 描述
y 32 位浮点值的张量

tfl.slice (TFL::SliceOp)

从 'input' 返回一个切片。

输出张量是一个具有 'size' 描述的维度的张量,其值从 'input' 中提取,从 'begin' 中的偏移量开始。

begin 是基于零的;size 是基于一的。如果 size[i] 为 -1,则维度 i 中的所有剩余元素都包含在切片中。换句话说,这等效于设置:size[i] = input.dim_size(i) - begin[i]

要求:0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n)

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 具有 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 8 位无符号整数或 32 位无符号整数或 1 位无符号整数或 TFLite 字符串类型或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
begin 32/64 位无符号整数值的张量
size 32/64 位无符号整数值的张量

结果

结果 描述
输出 具有 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

接口:ConditionallySpeculatableFixedOutputRangeInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
beta::mlir::FloatAttr32 位浮点数属性

操作数

操作数 描述
输入 具有 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

结果

结果 描述
输出 具有 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量

tfl.space_to_batch_nd (TFL::SpaceToBatchNdOp)

SpaceToBatchNd 运算符

此操作将空间维度重新整形为“批次”维度 0

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
block_shape 32 位无符号整数值的张量
paddings 32 位无符号整数值的张量

结果

结果 描述
输出 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::IntegerAttr值为正的 32 位无符号整数属性

操作数

操作数 描述
输入 具有 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 具有 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 为真,则在执行期间检查这些属性。

特征: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 位浮点数的值的张量
默认值 具有 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::IntegerAttr值为正的 32 位无符号整数属性

操作数

操作数 描述
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::IntegerAttr值为正的 32 位无符号整数属性

操作数

操作数 描述
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)

平方运算符

计算输入的逐元素平方。

特征:AlwaysSpeculatableImplTraitInferTensorTypeTF::SameOperandsAndResultTypeResolveRef

接口:ConditionallySpeculatableInferShapedTypeOpInterfaceInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
x 32 位浮点值的张量

结果

结果 描述
y 32 位浮点值的张量

tfl.squared_difference (TFL::SquaredDifferenceOp)

平方差运算符

逐元素平方差运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
lhs 具有 32 位浮点数或 32 位无符号整数或 QI8 类型值的张量
rhs 具有 32 位浮点数或 32 位无符号整数或 QI8 类型值的张量

结果

结果 描述
输出 具有 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 位整数数组属性

操作数

操作数 描述
输入 任何类型值的张量

结果

结果 描述
输出 任何类型值的张量

tfl.strided_slice (TFL::StridedSliceOp)

StridedSlice 操作

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布尔属性

操作数

操作数 描述
输入 具有 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 8 位无符号整数或 32 位无符号整数或 QI8 类型或 QUI8 类型或 1 位无符号整数或 16 位无符号整数或 QI16 类型或 TFLite quint8 类型或 TFLite 字符串类型值的张量
begin 32 位无符号整数值的张量
end 32 位无符号整数值的张量
strides 32 位无符号整数值的张量

结果

结果 描述
输出 具有 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 8 位无符号整数或 32 位无符号整数或 QI8 类型或 QUI8 类型或 1 位无符号整数或 16 位无符号整数或 QI16 类型或 TFLite quint8 类型或 TFLite 字符串类型值的张量

tfl.sub (TFL::SubOp)

减法运算符

逐元素减法运算。

特征:::mlir::OpTrait::TFLRuntimeOpTraitAlwaysSpeculatableImplTraitQuantizableResultResultsBroadcastableShape

接口: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 类型值的张量

结果

结果 描述
输出 具有 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量

tfl.sum (TFL::SumOp)

求和运算符

计算沿指定轴的总和缩减。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
keep_dims::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数或 64 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量
axes 32 位无符号整数值的张量

结果

结果 描述
输出 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::IntegerAttr值为正的 32 位无符号整数属性
fused_activation_function::mlir::StringAttr字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT
asymmetric_quantize_inputs::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型值的张量
feature_weights 32 位浮点数或 QI8 类型或 QUI8 类型值的张量
time_weights 32 位浮点数或 QI16 类型值的张量
输入门偏差 任何类型值或无类型值的张量
activation_state 状态张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型值的张量

tfl.tanh (TFL::TanhOp)

双曲正切运算符

计算输入的逐元素双曲正切。

特征:AlwaysSpeculatableImplTraitQuantizableResultSameOperandsAndResultShape

接口:ConditionallySpeculatableFixedOutputRangeInterfaceNoMemoryEffect (MemoryEffectOpInterface)TflArithmeticCountOpInterfaceTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

结果

结果 描述
输出 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量

tfl.tile (TFL::TileOp)

平铺运算符。

通过平铺给定张量来构造一个张量。

此操作通过将输入复制多次来创建一个新的张量。输出张量的第 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{}

操作数

操作数 描述
输入 具有 32 位浮点数或 1 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite 字符串类型值的张量
multiples 32/64 位无符号整数值的张量

结果

结果 描述
输出 具有 32 位浮点数或 1 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite 字符串类型值的张量

tfl.topk_v2 (TFL::TopKV2Op)

TopK 运算符

返回 input 每个最后一个维度切片的 top k 个最大元素以及输入张量最后一个维度内值的索引。

结果始终按降序排序。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 具有 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)

转置运算符

返回 x 的转置。

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 具有 32 位无符号整数或 32 位浮点数或 8 位无符号整数或 8 位无符号整数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 1 位无符号整数或 64 位无符号整数或 QI16 类型值的张量
perm 32 位无符号整数值的张量

结果

结果 描述
输出 具有 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::IntegerAttr值为正的 32 位无符号整数属性
stride_w::mlir::IntegerAttr值为正的 32 位无符号整数属性
fused_activation_function::mlir::StringAttr字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT

操作数

操作数 描述
output_shape 32 位无符号整数值的张量
weights 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
输入 32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量
bias 任何类型值或无类型值的张量

结果

结果 描述
输出 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

接口:DynamicRangeQuantizedOpInterface, InferTypeOpInterface, TFL_StatefulOp, TflRuntimeVerifyOpInterface

属性

属性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布尔属性
输入到输入中间::mlir::TypeAttr任何类型属性
输入到遗忘中间::mlir::TypeAttr任何类型属性
输入到单元中间::mlir::TypeAttr任何类型属性
输入到输出中间::mlir::TypeAttr任何类型属性
有效隐藏比例中间::mlir::TypeAttr任何类型属性

操作数

操作数 描述
输入 32 位浮点值的张量
输入到输入权重 任何类型值或无类型值的张量
输入到遗忘权重 32 位浮点数或 QI8 类型值的张量
输入到单元权重 32 位浮点数或 QI8 类型值的张量
输入到输出权重 32 位浮点数或 QI8 类型值的张量
循环到输入权重 任何类型值或无类型值的张量
循环到遗忘权重 32 位浮点数或 QI8 类型值的张量
循环到单元权重 32 位浮点数或 QI8 类型值的张量
循环到输出权重 32 位浮点数或 QI8 类型值的张量
单元到输入权重 任何类型值或无类型值的张量
单元到遗忘权重 任何类型值或无类型值的张量
单元到输出权重 任何类型值或无类型值的张量
输入门偏差 任何类型值或无类型值的张量
遗忘门偏差 32 位浮点值的张量
单元偏差 32 位浮点值的张量
输出门偏差 32 位浮点值的张量
投影权重 任何类型值或无类型值的张量
投影偏差 任何类型值或无类型值的张量
输入激活状态 状态张量
输入单元状态 状态张量
输入层归一化系数 任何类型值或无类型值的张量
遗忘层归一化系数 任何类型值或无类型值的张量
单元层归一化系数 任何类型值或无类型值的张量
输出层归一化系数 任何类型值或无类型值的张量

结果

结果 描述
输出 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布尔属性

操作数

操作数 描述
输入 32 位浮点值的张量
输入到输入权重 32 位浮点数或 QI8 类型值的张量
循环到输入权重 32 位浮点数或 QI8 类型值的张量
输入门偏差 32 位浮点值的张量
hidden_state 状态张量

结果

结果 描述
输出 32 位浮点值的张量

tfl.unique (TFL::UniqueOp)

唯一运算符。

此操作返回一个张量 output,其中包含 input 中所有唯一元素,并按它们在 input 中出现的顺序排序。此操作还返回一个与 x 大小相同的张量 idx,其中包含 input 的每个值在唯一输出 output 中的索引。换句话说

特征:AlwaysSpeculatableImplTraitQuantizableResult

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
idx_out_type::mlir::Attribute派生属性

操作数

操作数 描述
输入 8 位无符号整数或 QI8 类型或 8 位无符号整数或 QUI8 类型或 16 位无符号整数或 QI16 类型或 32 位无符号整数或 64 位无符号整数或 32 位浮点数的张量

结果

结果 描述
输出 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 的反操作。

特征:AlwaysSpeculatableImplTrait, QuantizableResult, SameOperandsAndResultElementType

接口:ConditionallySpeculatableInferTypeOpInterfaceNoMemoryEffect (MemoryEffectOpInterface)SameOperandsAndResultsScaleTflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

属性

属性MLIR 类型描述
num::mlir::IntegerAttr32 位无符号整数属性,其值为非负数
axis::mlir::IntegerAttr32 位无符号整数属性

操作数

操作数 描述
输入 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{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数值的张量
segment_ids 32 位无符号整数值的张量
num_segments 32 位无符号整数值的张量

结果

结果 描述
输出 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{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数值的张量
segment_ids 32 位无符号整数值的张量
num_segments 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数值的张量

tfl.unsorted_segment_prod (TFL::UnsortedSegmentProdOp)

UnsortedSegmentProd 运算符

计算张量段上的乘积。

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数值的张量
segment_ids 32 位无符号整数值的张量
num_segments 32 位无符号整数值的张量

结果

结果 描述
输出 32 位浮点数或 32 位无符号整数值的张量

tfl.unsorted_segment_sum (TFL::UnsortedSegmentSumOp)

UnsortedSegmentSum 运算符

从张量分段中,计算 output,该结果来自将映射到相同 segment_id 的元素加在一起。即 output[i] 等于映射到 segment_id i 的输入张量中所有元素的张量总和。如果没有任何张量映射到特定的包含 segment_id,则该索引处的输出将是一个具有适当形状的零张量。请注意,segment_ids 的值始终被验证为小于 num_segments,并且对于超出范围的索引会抛出错误

特征:AlwaysSpeculatableImplTrait

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 32 位浮点数或 32 位无符号整数值的张量
segment_ids 32 位无符号整数值的张量
num_segments 32 位无符号整数值的张量

结果

结果 描述
输出 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)

返回张量中非零/真值的所在位置。

此操作返回 condition 中真元素的坐标。坐标以二维张量形式返回,其中第一维(行)表示真元素的数量,第二维(列)表示真元素的坐标。请记住,输出张量的形状可能会根据 condition 中有多少个真值而有所不同。索引按行优先顺序输出。

特征: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

接口:LoopLikeOpInterface, TflRuntimeVerifyOpInterface

属性

属性MLIR 类型描述
is_stateless::mlir::BoolAttr布尔属性

操作数

操作数 描述
输入 任何类型值的张量的可变参数

结果

结果 描述
输出 任何类型值的张量的可变参数

tfl.yield (TFL::YieldOp)

Yield 操作

“yield”操作表示结构化控制流(例如,while)的条件和主体内的返回操作,以及 ControlNodeOp 的终止符。该操作接收可变数量的操作数,但不产生结果。操作数的数量和类型必须与包含该操作的区域的签名匹配。

特征:AlwaysSpeculatableImplTrait, QuantizableResult, Terminator

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
«unnamed» 任何类型的可变参数

tfl.zeros_like (TFL::ZerosLikeOp)

ZerosLike 运算符

返回一个与输入张量具有相同形状和类型的零张量。

特征:AlwaysSpeculatableImplTraitSameOperandsAndResultShape

接口:ConditionallySpeculatableNoMemoryEffect (MemoryEffectOpInterface)TflRuntimeVerifyOpInterface

效果:MemoryEffects::Effect{}

操作数

操作数 描述
输入 64 位无符号整数或 32 位无符号整数或 32 位浮点数值的张量

结果

结果 描述
输出 64 位无符号整数或 32 位无符号整数或 32 位浮点数值的张量

属性

DimensionMetadataAttr

维度元数据。

语法

#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 类型的枚举