TensorFlow Lite 方言。
此方言映射到 TensorFlow Lite 操作。
不变式
- 所有值都是张量类型(特别是,标量使用零维张量表示);
操作
tfl.abs (TFL::AbsOp)
绝对值运算符
给定一个张量 x,此操作返回一个张量,其中包含 x 中每个元素的绝对值。例如,如果 x 是输入元素,y 是输出元素,则此操作计算 \(y = |x|\)。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
16 位无符号整数或 32 位无符号整数或 32 位浮点数或 QI8 类型或 QI16 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
16 位无符号整数或 32 位无符号整数或 32 位浮点数或 QI8 类型或 QI16 类型值的张量 |
tfl.add (TFL::AddOp)
加法运算符
逐元素加法运算。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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 运算符
逐元素添加所有输入张量。
特征:AlwaysSpeculatableImplTrait,Commutative
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量的可变参数 |
结果
| 结果 | 描述 |
|---|---|
总和 |
32 位浮点数或 32 位无符号整数值的张量 |
tfl.arg_max (TFL::ArgMaxOp)
ArgMax 运算符
返回张量维度中具有最大值的索引。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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 的反正切,尊重参数的符号。
特征:AlwaysSpeculatableImplTrait,SameOperandsAndResultElementType,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
y |
32 位浮点数或 64 位浮点数值的张量 |
x |
32 位浮点数或 64 位浮点数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 64 位浮点数值的张量 |
tfl.average_pool_2d (TFL::AveragePool2DOp)
_Average_pool2d 运算符
对输入执行平均池化操作。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
filter_height | ::mlir::IntegerAttr | 32 位无符号整数属性 |
filter_width | ::mlir::IntegerAttr | 32 位无符号整数属性 |
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 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 QI8 类型或 QUI8 类型或 QI16 类型值的张量 |
tfl.basic_lstm (TFL::BasicLSTMOp)
基本 lstm 运算符
基本 LSTM 单元运算符。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
cell_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
proj_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
kernel_type | ::mlir::TFL::LSTMKernelTypeAttr | lstm_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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (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 重塑为空间维度。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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
接口:DynamicRangeQuantizedOpInterface、TFL_StatefulOp、TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
cell_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
proj_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.bitwise_xor (TFL::BitwiseXorOp)
按位异或运算符
逐元素计算 lhs 和 rhs 的按位异或。
特征:AlwaysSpeculatableImplTrait、Commutative、SameOperandsAndResultElementType
接口:ConditionallySpeculatable,NoMemoryEffect (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 的形状,并进行广播。
给定 s0 和 s1,表示形状的张量,计算 r0,即广播后的形状。 s0、s1 和 r0 都是整数向量。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (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 可能会与后续操作融合,然后被优化掉。)
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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]]。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
boundaries | ::mlir::ArrayAttr | 32 位浮点数组属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 64 位浮点数或 32 位无符号整数或 64 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位无符号整数值的张量 |
tfl.call_once (TFL::CallOnceOp)
调用初始化函数
此操作为 tf 保存模型方言中的会话初始化器调用给定的初始化函数。
接口:TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
session_init_function | ::mlir::StringAttr | 字符串属性 |
tfl.cast (TFL::CastOp)
Cast 运算符
将输入从输入类型转换为输出类型。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (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 值。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.complex_abs (TFL::ComplexAbsOp)
计算张量的复数绝对值。
给定一个复数类型的张量 x,此操作返回一个类型为 float 或 double 的张量,它是 x 中每个元素的绝对值。 x 中的所有元素必须是形式为 \(a + bj\) 的复数。绝对值计算为 \( \sqrt{a^2 + b^2}\)。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 64 位浮点数值的张量 |
tfl.concatenation (TFL::ConcatenationOp)
串联运算符
沿一个维度串联张量
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
axis | ::mlir::IntegerAttr | 32 位无符号整数属性 |
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>、RecursiveMemoryEffects、SingleBlockImplicitTerminator<YieldOp>、SingleBlock
操作数
| 操作数 | 描述 |
|---|---|
controlInputs |
control 的可变参数 |
结果
| 结果 | 描述 |
|---|---|
outputs |
任何类型值的张量的可变参数 |
control |
control |
tfl.conv_2d (TFL::Conv2DOp)
卷积运算符
对输入执行卷积运算。
输入:inputs[0]:必需:输入激活张量 inputs[1]:必需:滤波器权重张量 inputs[2]:可选:偏差张量
特征:AlwaysSpeculatableImplTrait、QuantizableResult、quant::AccumulatorUniformScale<2, 0, 1>、quant::AffineOpCoefficient<0, 1>
接口:AffineQuantizedOpInterface、ConditionallySpeculatable、DynamicRangeQuantizedOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TFL_SparseOp、TflArithmeticCountOpInterface、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
dilation_h_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_w_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
padding | ::mlir::StringAttr | 字符串属性,其值为 SAME 或 VALID |
stride_h | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_w | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
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]:可选:偏差张量
特征:AlwaysSpeculatableImplTrait,quant::AccumulatorUniformScale<2, 0, 1>
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
dilation_d_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_h_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_w_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
padding | ::mlir::StringAttr | 字符串属性,其值为 SAME 或 VALID |
stride_d | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_h | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_w | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点值的张量 |
filter |
32 位浮点值的张量 |
bias |
任何类型值或无类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.conv_3d_transpose (TFL::Conv3DTransposeOp)
3D 转置卷积运算符
对 3D 输入执行转置卷积运算。输入:inputs[0]:必需:输出张量的形状 inputs[1]:必需:滤波器权重张量 inputs[2]:必需:输入激活张量 inputs[3]:可选:偏差张量
特征:AlwaysSpeculatableImplTrait,quant::AccumulatorUniformScale<2, 0, 1>
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
dilation_d_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_h_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_w_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
padding | ::mlir::StringAttr | 字符串属性,其值为 SAME 或 VALID |
stride_d | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_h | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_w | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
output_shape |
32 位无符号整数值的张量 |
filter |
32 位浮点值的张量 |
输入 |
32 位浮点值的张量 |
bias |
任何类型值或无类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.cos (TFL::CosOp)
余弦运算符
计算输入的逐元素余弦。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.cumsum (TFL::CumsumOp)
累积和运算符
计算张量 x 沿轴的累积和。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (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 时不会公开/导出。
特征:IsolatedFromAbove,RecursiveMemoryEffects,SingleBlockImplicitTerminator<YieldOp>,SingleBlock
接口:InferTypeOpInterface,TflRuntimeVerifyOpInterface
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量或无类型值的变长参数 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量的可变参数 |
tfl.densify (TFL::DensifyOp)
稠密化运算符
将稀疏张量转换为稠密格式。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 8 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 8 位无符号整数值的张量 |
tfl.depth_to_space (TFL::DepthToSpaceOp)
DepthToSpace 运算符
将数据从深度重新排列到空间数据块中。这是 SpaceToDepth 的逆变换。更具体地说,此运算符输出输入张量的副本,其中来自 depth 维度的值在空间块中移动到 height 和 width 维度。属性 block_size 指示输入块大小以及数据移动的方式。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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]:可选:偏差张量
特征:AlwaysSpeculatableImplTrait,QuantizableResult,quant::AccumulatorUniformScale<2, 0, 1>,quant::AffineOpCoefficient<3, 1>
接口:AffineQuantizedOpInterface,ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (MemoryEffectOpInterface),TFL_SparseOp,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
dilation_h_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
dilation_w_factor | ::mlir::IntegerAttr | 32 位无符号整数属性 |
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
padding | ::mlir::StringAttr | 字符串属性,其值为 SAME 或 VALID |
stride_h | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_w | ::mlir::IntegerAttr | 32 位无符号整数属性 |
depth_multiplier | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
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
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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
接口:ConditionallySpeculatable,NoMemoryEffect (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。逐元素。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点数或 8 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点数或 8 位无符号整数值的张量 |
tfl.embedding_lookup (TFL::EmbeddingLookupOp)
嵌入查找运算符
在嵌入张量列表中查找 id。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
lookup |
32 位无符号整数值的张量 |
value |
32 位浮点数或 8 位无符号整数或 8 位无符号整数的值张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 8 位无符号整数或 8 位无符号整数的值张量 |
tfl.equal (TFL::EqualOp)
相等运算符
返回 x == y 的逐元素真值元素
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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)
自然指数运算符
对输入执行逐元素自然指数运算。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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 的维度。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量 |
dim |
32/64 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.external_const (TFL::ExternalConstOp)
外部常量运算符。
外部常量运算符保存一个 buffer_index,它指向 flatbuffer 中的常量。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
buffer_index | ::mlir::IntegerAttr | 32 位无符号整数属性 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.fake_quant (TFL::FakeQuantOp)
FakeQuant 运算符
通过浮点数标量 min 和 max 对类型为 float 的 'inputs' 张量进行假量化,以生成与 inputs 形状相同的 'outputs' 张量。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
min | ::mlir::FloatAttr | 32 位浮点数属性 |
max | ::mlir::FloatAttr | 32 位浮点数属性 |
num_bits | ::mlir::IntegerAttr | 最小值为 2、最大值为 16 的 32 位无符号整数属性 |
narrow_range | ::mlir::BoolAttr | 值为 false 的布尔属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.fill (TFL::FillOp)
用给定值填充张量。
用给定值填充张量。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
向下取整运算符
返回输入的逐元素向下取整值。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.floor_div (TFL::FloorDivOp)
向下取整除法运算符
逐元素向下取整除法运算。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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)
全连接运算符
特征:AlwaysSpeculatableImplTrait、QuantizableResult、quant::AccumulatorUniformScale<2, 0, 1>、quant::AffineOpCoefficient<0, 1>
接口:AffineQuantizedOpInterface,ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (MemoryEffectOpInterface),TFL_SparseOp,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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 运算符
根据 indices 从 params 轴 axis 收集切片。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
axis | ::mlir::IntegerAttr | 32 位无符号整数属性 |
batch_dims | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
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 指定的张量中。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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 激活函数。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
近似 | ::mlir::BoolAttr | 布尔属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 QI8 类型或 QUI8 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 QI8 类型或 QUI8 类型值的张量 |
tfl.greater (TFL::GreaterOp)
大于运算符
逐元素大于运算。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 QUI8 类型或 QI8 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 QUI8 类型或 QI8 类型值的张量 |
tfl.hashtable (TFL::HashtableOp)
创建一个未初始化的哈希表。
此操作创建一个哈希表,指定其键和值的类型。在使用表之前,您需要对其进行初始化。初始化后,表将不可变。
接口:TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
表 ID | ::mlir::IntegerAttr | 32 位无符号整数属性 |
键数据类型 | ::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 {
...
}
特征:NoRegionArguments,RecursiveMemoryEffects,SingleBlockImplicitTerminator<YieldOp>,SingleBlock
接口:RegionBranchOpInterface,TflRuntimeVerifyOpInterface
操作数
| 操作数 | 描述 |
|---|---|
条件 |
1 位无符号整数的值张量 |
结果
| 结果 | 描述 |
|---|---|
结果 |
任何类型值的张量的可变参数 |
tfl.imag (TFL::ImagOp)
返回复数的虚部。
给定一个复数张量 input,此操作返回一个类型为 float 的张量,它是 input 中每个元素的虚部。 input 中的所有元素必须是形如 \(a + bj\) 的复数,其中 a 是实部,b 是此操作返回的虚部。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 64 位浮点数值的张量 |
tfl.l2_normalization (TFL::L2NormalizationOp)
L2 归一化运算符
L2 归一化操作
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,FixedOutputRangeInterface,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
alpha | ::mlir::FloatAttr | 32 位浮点数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 QI16 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型或 QI16 类型值的张量 |
tfl.less (TFL::LessOp)
小于运算符
逐元素小于运算。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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)。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
半径 | ::mlir::IntegerAttr | 32 位无符号整数属性 |
bias | ::mlir::FloatAttr | 32 位浮点数属性 |
alpha | ::mlir::FloatAttr | 32 位浮点数属性 |
beta | ::mlir::FloatAttr | 32 位浮点数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.log (TFL::LogOp)
自然对数运算符
对输入执行逐元素自然对数运算。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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))
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,FixedOutputRangeInterface,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 QUI8 类型或 QI8 类型或 TFLite quint8 类型值的张量 |
tfl.logical_and (TFL::LogicalAndOp)
逻辑 AND 运算符
逐元素逻辑 AND 运算。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
lhs |
1 位无符号整数的值张量 |
rhs |
1 位无符号整数的值张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
1 位无符号整数的值张量 |
tfl.logical_not (TFL::LogicalNotOp)
逻辑 NOT 运算符
逐元素逻辑 NOT 运算。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
lhs |
1 位无符号整数的值张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
1 位无符号整数的值张量 |
tfl.logical_or (TFL::LogicalOrOp)
逻辑 OR 运算符
逐元素逻辑 OR 运算。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
lhs |
1 位无符号整数的值张量 |
rhs |
1 位无符号整数的值张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
1 位无符号整数的值张量 |
tfl.logistic (TFL::LogisticOp)
Logistic 运算符
计算输入的逐元素 Sigmoid。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口: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。'长短期记忆'。神经计算,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
接口:DynamicRangeQuantizedOpInterface、TFL_StatefulOp、TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
fused_activation_function | ::mlir::StringAttr | 字符串属性,其值为 NONE、RELU、RELU_N1_TO_1、RELU6、TANH 或 SIGN_BIT |
cell_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
proj_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
kernel_type | ::mlir::TFL::LSTMKernelTypeAttr | lstm_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].
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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)
返回一个具有新批处理对角线值的批处理矩阵张量。
给定 input 和 diagonal,此操作返回一个与 input 形状和值相同的张量,但最内层矩阵的主对角线除外。这些将被 diagonal 中的值覆盖。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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]:必需:输入张量
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
padding | ::mlir::StringAttr | 字符串属性,其值为 SAME 或 VALID |
stride_w | ::mlir::IntegerAttr | 32 位无符号整数属性 |
stride_h | ::mlir::IntegerAttr | 32 位无符号整数属性 |
filter_width | ::mlir::IntegerAttr | 32 位无符号整数属性 |
filter_height | ::mlir::IntegerAttr | 32 位无符号整数属性 |
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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
mode | ::mlir::TFL::MirrorPaddingTypeAttr | mirror_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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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::IntegerAttr | 64 位无符号整数属性 |
seed2 | ::mlir::IntegerAttr | 64 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
logits |
32 位浮点值的张量 |
num_samples |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位无符号整数或 64 位无符号整数值的张量 |
tfl.neg (TFL::NegOp)
否定运算符
计算输入的逐元素否定
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (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 操作 获取与所选索引相对应的边界框坐标。例如: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
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,Commutative,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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,则它不关心错误。
特性:QuantizableResult,SameOperandsShape
接口:TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
tolerance | ::mlir::FloatAttr | 32 位浮点数属性 |
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 处创建(默认:新轴在末尾追加)。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
axis | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
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 的反操作。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
values_count | ::mlir::IntegerAttr | 值为正的 32 位无符号整数属性 |
axis | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
values |
任何类型值的张量的可变参数 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 8 位无符号整数或 16 位无符号整数或 32 位无符号整数或 64 位无符号整数或 8 位无符号整数或 32 位无符号整数或 QI8 类型或 QUI8 类型或 QI16 类型或 TFLite quint8 类型值的张量 |
tfl.pad (TFL::PadOp)
填充运算符
此操作根据您指定的 paddings 用零填充 input。 paddings 是一个形状为 [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]]
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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
此操作根据您指定的 paddings 和 constant_values 填充 input。 paddings 是一个形状为 [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]]
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape,quant::AffineOpCoefficient<-1, 1>
接口:AffineQuantizedOpInterface,ConditionallySpeculatable,NoMemoryEffect (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 属性)。
特性:AlwaysSpeculatableImplTrait,ConstantLike,FirstAttrDerivedResultType,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
value | ::mlir::ElementsAttr | 常量向量/张量属性 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.pseudo_qconst (TFL::QConstOp)
量化常量伪操作
表示 TensorFlow Lite 方言中的量化常量值。这不是一个实际的操作,它将被降低为缓冲区。量化参数存储在这个常量中的类型属性中。
特性:AlwaysSpeculatableImplTrait,FirstAttrDerivedResultType
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface)
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
qtype | ::mlir::TypeAttr | 张量类型属性 |
value | ::mlir::ElementsAttr | 常量向量/张量属性 |
结果
| 结果 | 描述 |
|---|---|
输出 |
QUI8 类型或 QI8 类型或 QI16 类型或 QUI16 类型或 TFLite quint8 类型值的张量 |
tfl.pseudo_sparse_const (TFL::SparseConstOp)
稀疏常量伪操作。
表示 TensorFlow Lite 方言中的稀疏常量值。这不是一个实际的操作,它将被降低为缓冲区。
特性:AlwaysSpeculatableImplTrait,FirstAttrDerivedResultType,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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 方言中的稀疏量化常量值。这不是一个实际的操作,它将被降低为缓冲区。量化参数存储在这个常量中的类型属性中。
特性:AlwaysSpeculatableImplTrait,FirstAttrDerivedResultType
接口:ConditionallySpeculatable,NoMemoryEffect (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)
量化运算符
根据类型属性中定义的量化参数,将浮点张量转换为量化整数张量。
特性:FirstAttrDerivedResultType,SameOperandsAndResultShape
接口: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::IntegerAttr | 64 位无符号整数属性 |
seed2 | ::mlir::IntegerAttr | 64 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
shape |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.random_uniform (TFL::RandomUniformOp)
从均匀分布输出随机值。
生成的数值服从范围 [0, 1) 内的均匀分布。下限 0 包含在范围内,而上限 1 不包含在范围内。
接口:TflRuntimeVerifyOpInterface
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
seed | ::mlir::IntegerAttr | 64 位无符号整数属性 |
seed2 | ::mlir::IntegerAttr | 64 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
shape |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点值的张量 |
tfl.range (TFL::RangeOp)
范围运算符
返回一个由从 start 到 limit 的序列定义的 1D 张量,并具有给定的 delta。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
start |
32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量 |
limit |
32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量 |
delta |
32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
result |
32 位无符号整数或 32 位浮点数或 64 位无符号整数值的张量 |
tfl.rank (TFL::RankOp)
秩运算符。
返回张量的秩。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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* 是虚部。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
具有 32 位浮点元素的复数类型或具有 64 位浮点元素的复数类型的值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 64 位浮点数值的张量 |
tfl.reduce_all (TFL::ReduceAllOp)
计算张量跨维度的“逻辑与”。
沿着 axis 中给定的维度减少 input。除非 keep_dims 为真,否则张量的秩将为 axis 中每个条目减少 1。如果 keep_dims 为真,则保留缩减的维度,长度为 1。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
keep_dims | ::mlir::BoolAttr | 布尔属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
1 位无符号整数的值张量 |
reduction_indices |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
1 位无符号整数的值张量 |
tfl.reduce_max (TFL::ReduceMaxOp)
最大值约简运算符
计算沿指定轴的最大值约简
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、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.reduce_min (TFL::ReduceMinOp)
最小值约简运算符
计算沿指定轴的最小值约简
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、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.reduce_prod (TFL::ReduceProdOp)
乘积约简运算符
计算沿指定轴的乘积
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (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))
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (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))
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (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))
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点数或 QUI8 类型或 QI8 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点数或 QUI8 类型或 QI8 类型值的张量 |
tfl.reshape (TFL::ReshapeOp)
重塑运算符
生成具有相同值但由输出类型定义的不同静态形状的张量。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,InferTypeOpInterface,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量 |
shape |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.resize_bilinear (TFL::ResizeBilinearOp)
ResizeBilinear 操作
使用双线性插值将 images 调整为 size。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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] 个切片被反转。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
seq_dim | ::mlir::IntegerAttr | 32 位无符号整数属性,其值为非负数 |
batch_dim | ::mlir::IntegerAttr | 32 位无符号整数属性,其值为非负数 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
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:添加对多个元素的支持。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点值的张量 |
fft_length |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
具有 32 位浮点元素值的复数类型张量 |
tfl.right_shift (TFL::RightShiftOp)
右移运算符
逐元素计算 lhs 按 rhs 的位右移。
特征:AlwaysSpeculatableImplTrait,SameOperandsAndResultElementType
接口:ConditionallySpeculatable,NoMemoryEffect (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)
舍入运算符
将张量的值逐元素舍入到最接近的整数。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.rsqrt (TFL::RsqrtOp)
平方根的倒数运算符
计算输入的逐元素反平方根。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点数或 QI8 类型或 QI16 类型的值张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点数或 QI8 类型或 QI16 类型的值张量 |
tfl.scatter_nd (TFL::ScatterNdOp)
_Scatter_nd 运算符
根据 indices 将 updates 散布到一个新的张量中。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 32 位无符号整数值的张量 |
segment_ids |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 32 位无符号整数值的张量 |
tfl.select (TFL::SelectOp)
选择运算符
如果 'condition' 的对应值为真,则选择 'x' 的值,否则选择 'y' 的值。有有效的条件输入大小
- 要么是相同的形状(在这种情况下,选择是逐元素的),要么
- condition 必须是秩 1 并且在第一个维度上匹配。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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' 的值。有有效的条件输入大小
- 要么是相同的形状(在这种情况下,选择是逐元素的),要么
- 'condition'、'x' 和 'y' 之间的广播形状。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
形状运算符
返回张量的形状。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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。
特征:AlwaysSpeculatableImplTrait,SameOperandsAndResultElementType,SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
具有 32 位浮点数或 64 位浮点数或 32 位无符号整数的值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
具有 32 位浮点数或 64 位浮点数或 32 位无符号整数的值的张量 |
tfl.sin (TFL::SinOp)
正弦运算符
计算输入的逐元素正弦。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,FixedOutputRangeInterface,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
beta | ::mlir::FloatAttr | 32 位浮点数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
具有 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
具有 32 位浮点数或 QI8 类型或 QUI8 类型或 TFLite quint8 类型或 QI16 类型值的张量 |
tfl.space_to_batch_nd (TFL::SpaceToBatchNdOp)
SpaceToBatchNd 运算符
此操作将空间维度重新整形为“批次”维度 0
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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 运算符
将空间数据的块重新排列到深度。更具体地说,此操作输出输入张量的副本,其中来自 height 和 width 维度的值被移动到 depth 维度。 block_size 指示输入块大小。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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 为真,则在执行期间检查这些属性。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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_dim 将 value 张量拆分为多个子张量,这些子张量与原始张量具有相同的形状,除了 split_dim。与 tf.Split 相同。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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_dim 将 value 张量拆分为多个子张量,这些子张量与原始张量具有相同的形状,除了 split_dim。结果子张量的分组由 size-splits 决定。与 tf.SplitV 相同。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
平方根运算符
计算输入的逐元素平方根。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.square (TFL::SquareOp)
平方运算符
计算输入的逐元素平方。
特征:AlwaysSpeculatableImplTrait、InferTensorType、TF::SameOperandsAndResultTypeResolveRef
接口:ConditionallySpeculatable、InferShapedTypeOpInterface、InferTypeOpInterface、NoMemoryEffect (MemoryEffectOpInterface)、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
x |
32 位浮点值的张量 |
结果
| 结果 | 描述 |
|---|---|
y |
32 位浮点值的张量 |
tfl.squared_difference (TFL::SquaredDifferenceOp)
平方差运算符
逐元素平方差运算。
特征:::mlir::OpTrait::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (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]
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
squeeze_dims | ::mlir::ArrayAttr | 大小最多为 8 的 64 位整数数组属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
任何类型值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
任何类型值的张量 |
tfl.strided_slice (TFL::StridedSliceOp)
StridedSlice 操作
从 input 返回一个步长切片。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
begin_mask | ::mlir::IntegerAttr | 32 位无符号整数属性 |
end_mask | ::mlir::IntegerAttr | 32 位无符号整数属性 |
ellipsis_mask | ::mlir::IntegerAttr | 32 位无符号整数属性 |
new_axis_mask | ::mlir::IntegerAttr | 32 位无符号整数属性 |
shrink_axis_mask | ::mlir::IntegerAttr | 32 位无符号整数属性 |
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::TFLRuntimeOpTrait,AlwaysSpeculatableImplTrait,QuantizableResult,ResultsBroadcastableShape
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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)
求和运算符
计算沿指定轴的总和缩减。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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
特征:QuantizableResult,quant::AccumulatorUniformScale<3, 2, 4>
接口:DynamicRangeQuantizedOpInterface、TFL_StatefulOp、TflRuntimeVerifyOpInterface
属性
| 属性 | 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)
双曲正切运算符
计算输入的逐元素双曲正切。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,SameOperandsAndResultShape
接口:ConditionallySpeculatable,FixedOutputRangeInterface,NoMemoryEffect (MemoryEffectOpInterface),TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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]。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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 个最大元素以及输入张量最后一个维度内值的索引。
结果始终按降序排序。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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 的转置。
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable、NoMemoryEffect (MemoryEffectOpInterface)、SameOperandsAndResultsScale、TflRuntimeVerifyOpInterface
效果: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)
转置卷积运算符
对输入执行转置卷积运算。
特征:AlwaysSpeculatableImplTrait,QuantizableResult,quant::AccumulatorUniformScale<3, 1, 2>,quant::AffineOpCoefficient<0, 1>
接口:AffineQuantizedOpInterface,ConditionallySpeculatable,DynamicRangeQuantizedOpInterface,NoMemoryEffect (MemoryEffectOpInterface),TFL_SparseOp,TflArithmeticCountOpInterface,TflRuntimeVerifyOpInterface
效果: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::FloatAttr | 32 位浮点数属性,其值为非负数 |
proj_clip | ::mlir::FloatAttr | 32 位浮点数属性,其值为非负数 |
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
接口:DynamicRangeQuantizedOpInterface、TFL_StatefulOp、TflRuntimeVerifyOpInterface
属性
| 属性 | 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 中的索引。换句话说
特征:AlwaysSpeculatableImplTrait,QuantizableResult
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,InferTypeOpInterface,NoMemoryEffect (MemoryEffectOpInterface),SameOperandsAndResultsScale,TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
属性
| 属性 | MLIR 类型 | 描述 |
|---|---|---|
num | ::mlir::IntegerAttr | 32 位无符号整数属性,其值为非负数 |
axis | ::mlir::IntegerAttr | 32 位无符号整数属性 |
操作数
| 操作数 | 描述 |
|---|---|
输入 |
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
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
输入 |
32 位浮点数或 32 位无符号整数值的张量 |
segment_ids |
32 位无符号整数值的张量 |
num_segments |
32 位无符号整数值的张量 |
结果
| 结果 | 描述 |
|---|---|
输出 |
32 位浮点数或 32 位无符号整数值的张量 |
tfl.unsorted_segment_prod (TFL::UnsortedSegmentProdOp)
UnsortedSegmentProd 运算符
计算张量段上的乘积。
特征:AlwaysSpeculatableImplTrait
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (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
接口:ConditionallySpeculatable,NoMemoryEffect (MemoryEffectOpInterface),TflRuntimeVerifyOpInterface
效果:MemoryEffects::Effect{}
操作数
| 操作数 | 描述 |
|---|---|
| «unnamed» | 任何类型的可变参数 |
tfl.zeros_like (TFL::ZerosLikeOp)
ZerosLike 运算符
返回一个与输入张量具有相同形状和类型的零张量。
特征:AlwaysSpeculatableImplTrait、SameOperandsAndResultShape
接口:ConditionallySpeculatable,NoMemoryEffect (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 类型的枚举 |