前言

概述

本文档介绍HiSpark系列MCU上,基于MindSpore Lite Enterprise Micro v106版本所支持的算子规格,按TFLite、ONNX两个框架分别列出各算子的功能描述、参数说明(含数据类型、配置范围及规格约束)以及训练支持规格,便于用户在模型转换和训练前快速查询算子的支持情况。

读者对象

本文档适用于使用MindSpore Lite Enterprise Micro v106工具进行AI模型端侧部署的人员,本文档适用于以下工程师:

  • 技术支持工程师

  • 软件工程师

  • 硬件工程师

符号约定

在本文中可能出现下列标志,它们所代表的含义如下。

符号

说明

对正文中重点信息的补充说明。

“说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。

修改记录

文档版本

发布日期

修改说明

01

2026-09-03

第一次正式版本发布。

算子规格参考

本章主要介绍(MindSpore Lite)所支持的算子规格限制,目前主要支持ONNX格式以及TFLite格式的模型,并且支持算子的数据类型主要为int8以及fp32。

说明: 当前端侧训练仅在ws63支持,3066H暂不支持端侧在线训练。

说明: Gemm是ONNX框架的矩阵乘法算子,而FullyConnected则是TFLite框架的矩阵乘法算子。目前,int8仅支持量化模型,不支持onnxruntime量化场景。

TFLite算子规格参考

Conv2D

功能描述

对4D输入进行卷积计算。

参数说明

表 1 Conv2D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

filter

input

tensor

filter张量,维度为4D。

规格约束:权重为离线变量

bias

input

tensor

bias张量,维度为1D。

规格约束:偏置为离线变量

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

dilation_h_factor

attribute

int32

filter在H方向上的扩张系数。

-

dilation_w_factor

attribute

int32

filter在W方向上的扩张系数。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

padding

attribute

string

填充类型。

配置范围:SAME、VALID

stride_h

attribute

int32

filter在H方向上的移动步长。

-

stride_w

attribute

int32

filter在W方向上的移动步长。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

支持INT8输入/权重/输出、INT32 bias、rank为4、group为1、3x3卷积、无融合激活或融合ReLU;权重为OHWI格式,支持per-tensor或per-output-channel量化

FP32

支持

支持rank为4、batch为1、无bias、无融合激活、stride和dilation均为1的depthwise等价卷积;要求group=input_channel=output_channel,权重为OHWI格式且I=1

Conv3D

功能描述

对5D输入进行三维卷积计算。该算子为TFLite规格,支持RISCV Micro目标和x86目标,source entry为TFLite CONV_3D,输入布局为NDHWC,权重布局为[KD, KH, KW, IC, OC]。

float32模型可通过全量化生成int8数据通路,量化后权重为int8,偏置为int32。

参数说明

表 1 Conv3D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor (float32/int8)

输入张量,维度为5D,格式为NDHWC。

支持float32模型;float32模型可通过全量化生成int8数据通路。

filter

input

tensor (float32/int8)

权重张量,维度为5D,格式为[KD, KH, KW, IC, OC]。

规格约束:权重为离线常量;全量化后权重为int8。

bias

input

tensor (float32/int32)

偏置张量,维度为1D。

可选输入;无bias时按0处理;全量化后偏置为int32。

output

output

tensor (float32/int8)

输出张量,维度为5D,格式为NDHWC。

数据类型与执行通路一致。

padding

attribute

string

填充类型。

支持SAME、VALID。SAME按out=ceil(in/stride)计算输出尺寸并推导填充。

stride_d

attribute

int32

filter在D方向上的移动步长。

支持正整数。

stride_h

attribute

int32

filter在H方向上的移动步长。

支持正整数。

stride_w

attribute

int32

filter在W方向上的移动步长。

支持正整数。

dilation_d_factor

attribute

int32

filter在D方向上的扩张系数。

规格约束:仅支持1。

dilation_h_factor

attribute

int32

filter在H方向上的扩张系数。

规格约束:仅支持1。

dilation_w_factor

attribute

int32

filter在W方向上的扩张系数。

规格约束:仅支持1。

fused_activation_function

attribute

string

融合的激活函数类型。

规格约束:仅支持NONE。

说明: TFLite Conv3D不支持dilation factor不为1的场景,不支持fused_activation_function不为NONE的场景。原生int8/int32输入模型不作为该规格支持范围;int8通路来自float32模型的全量化转换。

关键场景分析

使用场景

什么时候会遇到

软件行为与限制

TFLite NDHWC卷积

TFLite/TF导出CONV_3D

输入输出按NDHWC布局处理,SAME按out=ceil(in/stride)推导填充。

无bias两输入节点

CONV_3D节点仅input/filter输入

偏置按0处理。

全量化int8通路

float32模型 + FULL_QUANT

转换后使用int8输入/权重/输出和int32偏置执行。

不支持规格命中

dilation factor不为1或fused_activation_function不为NONE

转换期报错,不生成模型。

MaxPool2D

功能描述

对4D输入进行最大池化计算。

参数说明

表 1 MaxPool2D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

filter_height

attribute

int32

在H方向上的过滤窗口大小。

-

filter_width

attribute

int32

在W方向上的过滤窗口大小。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

padding

attribute

string

填充类型。

配置范围:SAME、VALID

stride_h

attribute

int32

filter在H方向上的移动步长。

-

stride_w

attribute

int32

filter在W方向上的移动步长。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

仅支持MaxPool,输入和输出均为INT8 NHWC四维张量,且必须携带量化参数

FP32

不支持

-

FullyConnected

功能描述

对2D、3D、4D输入的最后一个维度进行特征映射(类似Onnx规格中Gemm)。

参数说明

表 1 FullyConnected参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

filter

input

tensor

权重张量,维度为2D。

规格约束:权重为离线变量

bias

input

tensor

偏置张量,维度为1D。

规格约束:偏置为离线变量

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

weights_format

attribute

string

权重张量在内存中的存储布局。

配置范围:DEFAULT,不支持其他配置

keep_num_dims

attribute

bool

是否对输入展平为2D进行计算。

-

asymmetric_quantize_inputs

attribute

bool

是否对输入进行非对称量化。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化

FP32

支持

支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数

BatchMatmul

功能描述

对两个2D/3D/4D输入张量进行矩阵乘法运算。

参数说明

说明: BatchMatmul暂时不支持广播机制,x倒数两维为计算维度[M, K],y倒数两维为计算维度[K, N],K大小必须保持一致。计算维度前,维度必须保持一致。

表 1 BatchMatmul参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度为3D/4D,格式分别为NWC、NHWC。

-

y

input

tensor

权重张量,维度为3D/4D,格式分别为NWC、NHWC。

-

output

output

tensor

输出张量,维度为3D/4D,格式分别为NWC、NHWC。符合矩阵乘法运算规则。

-

adj_x

attribute

bool

是否对x的最后两个维度进行转置。

-

adj_y

attribute

bool

是否对y的最后两个维度进行转置。

-

asymmetric_quantize_inputs

attribute

bool

BatchMatmul是否对输入进行非对称量化。

-

Softmax

功能描述

计算最后一维的归一化Softmax概率分布。

参数说明

说明: 受TFLite限制,Softmax仅支持在最后一维上进行计算。

表 1 Softmax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D / 3D / 4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D / 3D / 4D,格式分别为ND、NWC、NHWC。

-

beta

attribute

float

对输入的缩放系数。

配置范围:暂仅支持beta=1.0的情况

Relu

功能描述

对输入张量做Relu激活函数运算。

参数说明

表 1 Relu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

Activation训练反向仅支持ReLU,输入和输出均为INT8且必须携带量化参数

FP32

支持

Activation训练反向仅支持ReLU

Tanh

功能描述

对输入张量做Tanh激活函数运算。

参数说明

表 1 Tanh参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

Logistic (Sigmoid)

功能描述

对输入张量做Sigmoid激活函数运算。

参数说明

表 1 Logistic参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

Reshape

功能描述

改变Tensor的Shape,但不改变其排布。

参数说明

表 1 Reshape参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

shape

input

tensor (int32)

Shape张量,转换后的Shape。

规格约束:所有元素之积与input包含的元素个数相等

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

Mul

功能描述

计算两个矩阵逐点相乘。

参数说明

说明: Mul支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Mul参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

rhs

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Add

功能描述

计算两个矩阵逐点相加。

参数说明

说明: Add支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Add参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

-

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Sub

功能描述

计算两个矩阵逐点相减。

参数说明

说明: Sub支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Sub参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Gather

功能描述

根据指定索引,从输入张量的指定轴上提取元素,组合成新张量

参数说明

表 1 Gather参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

params

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

indices

input

tensor (int32)

索引张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axis

attribute

int

输入张量被切分的轴。

-rank(value)<=axis

batch_dims

attribute

int

将索引的前batch_dims个轴作为batch轴,切分行为有所改变。

仅支持为batch_dims为0的情况

Split

Split算子在TFLITE框架中包含tfl.Split、tfl.SplitV等api,其中tfl.Split表示均匀划分,tfl.SplitV自定义非均匀划分。

Split

功能描述

对张量分割按照某一轴平均切分成若干份。

参数说明

表 1 Split参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

value

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

outputs

output

varList(tensor)

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

num_splits

attribute

int

平均分割的数量。

(0, split_dim] ,且 num_splits需要能被指定轴整除

split_dim

attribute

int

指定被分割的轴。

维度索引

SplitV

功能描述

对张量分割按照某一轴非平均切分成若干份。

参数说明

表 1 SplitV参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

value

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

outputs

output

varList(tensor)

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

num_splits

attribute

int

分割的数量。

-

size_splits

attribute

tensor

具体每一份分割的维度。

[n1, n2, ..., ni],∑ni = axis,n > 0

split_dim

attribute

int

被分割的轴。

-rank(value)<=axis

Concatenation

功能描述

将多个张量拼接成某一个张量。

参数说明

表 1 Concatenation参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

values

input

varList(tensor)

输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

规格约束:列表中各张量在指定轴上元素个数相等

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axis

attribute

int

指定沿着哪个轴进行连接。

规格约束:-rank(value)<=axis

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

仅支持2个输入和1个输出;输入和输出rank必须相同且非空,非axis维度一致,axis维度等于两个输入对应维度之和

AveragePool2D

功能描述

对4D输入进行平均池化计算。

参数说明

表 1 AveragePool2D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

filter_height

attribute

int32

在H方向上的过滤窗口大小。

-

filter_width

attribute

int32

在W方向上的过滤窗口大小。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

padding

attribute

string

填充类型。

配置范围:SAME、VALID

stride_h

attribute

int32

filter在H方向上的移动步长。

-

stride_w

attribute

int32

filter在W方向上的移动步长。

-

Tile

功能描述

对2D/3D/4D输入沿指定维度做复制扩展。

参数说明

表 1 Tile参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

multiples

input

list(int)

指定每个维度复制次数。

规格约束:multiples为离线常量

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

Pad

Pad算子在TFLITE框架中包含tfl.Pad、tfl.PadV2、tfl.Mirror_Pad等api,其中tfl.Pad表示零填充,tfl.Padv2表示自定义常量填充,tfl.Mirror_Pad表示镜像反射填充。

Pad

功能描述

对输入张量边界做零填充。

参数说明

表 1 Pad参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

规格约束:int8量化场景仅支持4D张量输入

padding

input

list(int)

指定各输入维度填充范围。

规格约束:padding为离线常量,padding[i]

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

PadV2

功能描述

对输入张量边界做自定义常量填充。

参数说明

表 1 PadV2参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

规格约束:int8量化场景仅支持4D张量输入

padding

input

list(int)

指定各输入维度填充范围。

规格约束:padding为离线常量,padding[i]

constant_values

input

int32

自定义填充常数。

规格约束:constant_values为离线常量

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

Mirror_Pad

功能描述

对输入张量边界做镜像反射填充。

参数说明

表 1 Mirror_Pad参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

pad

input

list(int)

指定各输入维度填充范围。

规格约束:pad为离线常量,pad[i]

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

mode

attribute

string

填充模式,指定边界填充方式。

配置范围:REFLECT、SYMMETRIC

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

不支持

-

Resize

Resize算子在TFLITE框架中包含tfl.Resize_Bilinear、tfl.Resize_Nearest_Neighbor等api,其中tfl.Pad表示零填充,tfl.Resize_Bilinear表示双线性插值缩放,tfl.Resize_Nearest_Neighbor表示最近邻插值缩放。

Resize_Bilinear

功能描述

对输入张量做双线性插值缩放。

参数说明

表 1 Resize_Bilinear参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

size

input

list(int)

指定输出张量的目标尺寸。

规格约束:离线常量,NC维度与输入张量保持一致

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

align_corners

attribute

bool

缩放填充模式,是否对齐输入输出的角落像素。

配置范围:true、false,与half_pixel_centers必须配置一个且仅一个配置为true

half_pixel_centers

attribute

bool

缩放填充模式,像素坐标中心是否取(0.5, 0.5)计算。

配置范围:true、false

Resize_Nearest_Neighbor

功能描述

对输入张量做最近邻插值缩放。

参数说明

表 1 Resize_Nearest_Neighbor参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

size

input

list(int)

指定输出张量的目标尺寸。

规格约束:离线常量,NC维度与输入张量保持一致

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

align_corners

attribute

bool

缩放填充模式,是否对齐输入输出的角落像素。

配置范围:true、false,与half_pixel_centers必须配置一个且仅一个配置为true

half_pixel_centers

attribute

bool

缩放填充模式,像素坐标中心是否取(0.5, 0.5)计算。

配置范围:true、false

Squeeze

功能描述

对输入张量进行shape压缩操作。

参数说明

表 1 Squeeze参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度不限制。

-

output

output

tensor

输出张量,维度不限制。

-

squeeze_dims(可选)

attribute

list(int)

被压缩的轴列表。

-Rank(tensor) <= axis < Rank(tensor)

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

ExpandDims

功能描述

对输入张量进行shape扩展操作。

参数说明

表 1 ExpandDims参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度不限制。

-

output

output

tensor

输出张量,维度不限制。

-

dim

attribute

int

被扩展的轴。

-Rank(output) <= axis < Rank(output)

Abs

功能描述

对张量的每个元素做绝对值运算。

参数说明

表 1 Abs参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

要求使用FP32静态非空张量

Ceil

功能描述

对张量中的每个元素做向上取整操作。

参数说明

表 1 Ceil参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Cos

功能描述

对张量中的每个元素做余弦操作。

参数说明

表 1 Cos参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

[-1, 1]

Exp

功能描述

对张量中的每个元素做指数计算操作。

参数说明

表 1 Exp参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

(0, 正无穷)

Floor

功能描述

对张量中的每个元素做向下取整操作。

参数说明

表 1 Floor参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Log

功能描述

对张量中的每个元素做对数计算操作(底数值为e)。

参数说明

表 1 Log参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

(0, 正无穷)

y

output

tensor

输出张量,维度不限制。

-

Round

功能描述

对张量中的每个元素做四舍五入操作。

参数说明

表 1 Round参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Rsqrt

功能描述

对张量中的每个元素做平方根倒数计算操作。

参数说明

表 1 Rsqrt参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

(0, 正无穷)

y

output

tensor

输出张量,维度不限制。

(0, 正无穷)

Sin

功能描述

对张量中的每个元素做正弦计算操作。

参数说明

表 1 Sin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

[-1, 1]

Sqrt

功能描述

对张量中的每个元素做平方根计算操作。

参数说明

表 1 Sqrt参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

[0, 正无穷)

y

output

tensor

输出张量,维度不限制。

[0, 正无穷)

Square

功能描述

对张量中的每个元素做平方计算操作。

参数说明

表 1 Square参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

L2Normalization

功能描述

沿指定轴,用L2范数对输入张量执行归一化计算。

参数说明

表 1 L2Normalization参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU、RELU6

Slice

Slice算子在TFLITE框架中包含tfl.slice、tfl.strided_slice等api,其中tfl.slice为连续提取子张量,tfl.strided_slice可以通过指定步长、掩码等方式更灵活地进行提取。

Slice

功能描述

从输入张量中沿指定轴连续提取子张量。

参数说明

表 1 Slice参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

begins

input

tensor

维度为1D,对应各维度的起始索引。

规格约束:begins为离线常量

size

input

tensor

维度为1D,各维度要提取的元素个数。size[i]=-1时表示取i轴上从begins[i]开始的所有元素。

规格约束:size为离线常量

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

StridedSlice

功能描述

从输入张量中沿指定轴提取子张量。

参数说明

表 1 StridedSlice参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NWC/NHWC。

-

begin

input

tensor

维度为1D,对应各维度的起始索引。

规格约束:begin为离线常量

end

input

tensor

维度为1D,对应各维度的结束索引。

规格约束:end为离线常量

strides

input

tensor

维度为1D,对应各维度的切片步长。

规格约束:strides为离线常量

output

output

tensor

输出张量,输出维度和尺寸由切片逻辑及掩码决定。

-

begin_mask

attribute

int

第 i 维度对应位为 1 时,忽略该维度的 begin[i],改用维度起始边界(正向切片 = 0,反向切片 = 维度长度 - 1)。

-

end_mask

attribute

int

第 i 维度对应位为 1 时,忽略该维度的 end[i],改用维度结束边界(正向 = 维度长度,反向切片 =-1)。

-

ellipsis_mask

attribute

int

第 i 维度对应位为 1 时,对应维度及后续未显式指定的维度完整保留。

规格约束:仅允许一个二进制位为1

new_axis_mask

attribute

int

第 i 维度对应位为 1 时,在输出中插入长度为 1 的新维度。

-

shrink_axis_mask

attribute

int

第 i 维度对应位为 1 时,在输出中移除该维度。

-

offset

attribute

bool

取值为true:end输入表示切片长度。

取值为false:直接使用原始索引。

暂不支持配置,默认为false

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持rank为1~8的FP32静态非空张量;要求full-rank归一化参数,不支持slice mask,stride必须为正,不支持空切片

DepthwiseConv2D

功能描述

对4D输入进行深度可分离卷积计算。

参数说明

表 1 DepthwiseConv2D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式为NHWC。

-

filter

input

tensor

filter张量,维度为4D。

规格约束:权重为离线常量

bias

input

tensor

bias张量,维度为1D。

规格约束:偏置为离线常量

output

output

tensor

输出张量,维度为4D,格式为NHWC。

-

dilation_h_factor

attribute

int32

filter在H方向上的扩张系数。

-

dilation_w_factor

attribute

int32

filter在W方向上的扩张系数。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

padding

attribute

string

填充类型。

配置范围:SAME、VALID

stride_h

attribute

int32

filter在H方向上的移动步长。

-

stride_w

attribute

int32

filter在W方向上的移动步长。

-

depth_multiplier

attribute

int32

深度乘法因子,控制通道数缩放。

规格约束:INT8量化场景仅支持配置为1

Transpose

功能描述

对输入张量进行转置。

参数说明

表 1 Transpose参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

perm

input

tensor

输入张量的维度重排顺序。

规格约束:不支持perm=[0,3,1,2]、[0,2,3,1]的Transpose单算子转换

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

perm必须是合法的int32常量全排列;输入和输出为INT8或INT32,元素数量和rank必须一致

FP32

支持

perm必须是合法的int32常量全排列;输入和输出为FP32静态非空张量,rank为1~19

ArgMax

功能描述

在张量的指定维度上,计算并返回最大值对应的位置索引。

参数说明

说明: 仅支持float类型,不支持int8类型。

表 1 ArgMax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

dim

input

tensor

指定在张量中执行计算逻辑的维度。

规格约束:-rank(input)<=axis

output

output

tensor (int32)

输出张量,维度为1D/2D/3D,格式为N/ND/NCW。

-

output_type

attribute

TensorType

指定算子输出张量的元素数据类型。

规格约束:仅支持配置为tf.int32

ArgMin

功能描述

在张量的指定维度上,计算并返回最小值对应的位置索引。

参数说明

说明: 仅支持float类型,不支持int8类型。

表 1 ArgMin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

dim

input

tensor

指定在张量中执行计算逻辑的维度。

规格约束:-rank(input)<=axis

output

output

tensor (int32)

输出张量,维度为1D/2D/3D,格式为N/ND/NCW。

-

output_type

attribute

TensorType

指定算子输出张量的元素数据类型。

规格约束:仅支持配置为tf.int32

Div

功能描述

对两输入张量进行除法运算。

参数说明

表 1 Div参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

rhs

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

fused_activation_function

attribute

string

融合的激活函数类型。

配置范围:NONE、RELU

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持广播兼容shape,rank不超过10;不支持融合激活

ReduceMax

功能描述

对指定维度的张量进行最大值归约计算。

参数说明

表 1 ReduceMax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axes

input

tensor

指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

keep_dims

attribute

bool

是否需要保留归约轴的维度。

配置范围:true/false

ReduceMin

功能描述

对指定维度的张量进行最小值归约计算。

参数说明

表 1 ReduceMin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axes

input

tensor

指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

keep_dims

attribute

bool

是否需要保留归约轴的维度。

配置范围:true/false

Sum

功能描述

对指定维度的张量进行求和归约计算。

参数说明

表 1 Sum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axes

input

tensor

指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

keep_dims

attribute

bool

是否需要保留归约轴的维度。

配置范围:true/false

Mean

功能描述

对指定维度的张量进行均值归约计算。

参数说明

表 1 Mean参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axes

input

tensor

指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

keep_dims

attribute

bool

是否需要保留归约轴的维度。

配置范围:true/false

Cast

功能描述

对输入张量进行数据类型的转换。

参数说明

说明: Cast算子不支持量化。

表 1 Cast参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

数据类型仅支持float32、uint8、int8、int32

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

数据类型仅支持float32、uint8、int8、int32

Quantize

功能描述

对输入张量进行量化操作。

参数说明

说明: Quantize算子不支持量化。

表 1 Quantize参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

int8, uint8

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

float32, int8, uint8

Dequantize

功能描述

对输入张量进行反量化操作。

参数说明

说明: Dequantize算子不支持量化。

表 1 Dequantize参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

float32, int8, uint8

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

int8, uint8

PRelu

功能描述

对输入张量进行参数化 ReLU 激活处理。其在输入为非负值时保持原值,在输入为负值时根据斜率参数进行线性缩放。

参数说明

表 1 PRelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

待进行PReLU激活处理的数据,维度为1D / 2D / 3D / 4D。

数据类型仅支持 float32、int8;不限定具体数据格式。

alpha

input

tensor

负半轴斜率参数,维度为0D / 1D / 2D / 3D / 4D。

数据类型仅支持 float32;不限定具体数据格式,但其形状需支持单向广播到 input 。

output

output

tensor

输出张量,维度与 input 一致。

数据类型仅支持 float32、int8;维度与 input 一致。

说明: 在量化过程中,PReLU算子的第二输入保留FP32格式,以保证负半轴计算精度。

CumSum

功能描述

对输入张量沿指定维度进行累加求和处理,输出结果为该维度上的前缀和。

参数说明

表 1 CumSum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

待进行累加求和处理的输入张量,维度为 1D / 2D / 3D / 4D。

数据类型仅支持 float32、int8;不限定具体数据格式。

axis

input

tensor

进行累加求和的维度,维度为 0D。

数据类型仅支持 int32、int64;取值范围为 [ -rank(input), rank(input) - 1],当 axis 为负数时,表示从最后一个维度开始反向索引。

output

output

tensor

沿 axis 维度进行累加求和后的结果。

数据类型和维度与 input 一致。

exclusive

attribute

bool

是否采用排除当前元素的累加方式。

-

reverse

attribute

bool

是否沿指定维度反向累加。

-

ReverseSequence

功能描述

对输入张量指定轴前N个数据进行反转。

表 1 ReverseSequence参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

seq_lengths

input

tensor

输入张量,维度为1D。

数据类型仅支持int32,每个数据均满足0<=seq_len<=input_shape[seq_axis]

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

batch_axis

attribute

int

批次轴的序号。

默认为1,可支持缺省配置,必须与time_axis不同。仅支持0,1配置。

seq_axis

attribute

int

反转轴的序号。

默认为0,可支持缺省配置,必须与batch_axis不同。仅支持0,1配置。

Relu6

功能描述

对输入张量做Relu6激活函数运算。在输入为非负值且不大于 6 时保持原值,在输入为负值时置为 0,在输入大于 6 时置为 6。

参数说明

表 1 Relu6参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

LeakyRelu

功能描述

对输入张量做LeakyRelu激活函数运算。在输入为非负值时保持原值,在输入为负值时根据缩放系数进行线性缩放。

参数说明

表 1 LeakyRelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

alpha

attribute

float

负半轴缩放系数

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

HardSwish

功能描述

对输入张量做HardSwish激活函数运算。公式为:output = input * HardSigmoid(α=1/6, β=0.5, input)

参数说明

表 1 HardSwish参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

LogicalAnd

功能描述

对两个输入张量执行逐元素“与”逻辑运算。

参数说明

img 说明: LogicalAnd支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。 LogicalAnd算子不支持量化。

表 1 LogicalAnd参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor(bool)

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

-

rhs

input

tensor(bool)

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

Equal

功能描述

对两个输入张量执行逐元素“等于”逻辑运算。

参数说明

说明: Equal支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Equal参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

y

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

GreaterEqual

功能描述

对两个输入张量执行逐元素“大于等于”逻辑运算。

参数说明

说明: GreaterEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 GreaterEqual参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

Greater

功能描述

对两个输入张量执行逐元素“大于”逻辑运算。

参数说明

说明: Greater支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Greater参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

LessEqual

功能描述

对两个输入张量执行逐元素“小于等于”逻辑运算。

参数说明

说明: LessEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 LessEqual参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

Less

功能描述

对两个输入张量执行逐元素“小于”逻辑运算。

参数说明

说明: Less支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Less参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

NotEqual

功能描述

对两个输入张量执行逐元素“不等于”逻辑运算。

参数说明

说明: NotEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 NotEqual参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

数据类型仅支持float32、bool

rhs

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

数据类型仅支持float32、bool

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

LogicalNot

功能描述

逐元素返回输入张量的取反值。

参数说明

img 说明: LogicalNot算子不支持量化。

表 1 LogicalNot参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor(bool)

输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

-

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

-

LogicalOr

功能描述

对两个输入张量执行逐元素“或”逻辑运算。

参数说明

img 说明: LogicalOr支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。 LogicalOr算子不支持量化。

表 1 LogicalOr参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

lhs

input

tensor(bool)

左输入张量,维度为2D/3D/4D,格式分别为ND、NWC,NHWC。

-

rhs

input

tensor(bool)

右输入张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

output

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式分别为ND,NWC、NHWC。

-

Elu

功能描述

对输入张量做Elu激活函数运算。公式为:y = x if x >= 0 else (exp(x)-1)

参数说明

表 1 Elu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

-

y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

-

DepthToSpace

功能描述

对输入张量维度的深度(通道)维度的数据重排到空间(高、宽)维度。

参数说明

表 1 DepthToSpace参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式分别为NHWC。

-

output

output

tensor

输出张量,维度为4D,格式分别为NHWC。

-

block_size

attribute

int

从深度维度重组到空间维度的基础块尺寸

规格约束:block_size>=2, C%block_size^2 == 0

SpaceToDepth

功能描述

对输入张量空间(高、宽)维度的数据重排到深度(通道)维度。

参数说明

表 1 SpaceToDepth参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式分别为NHWC。

-

output

output

tensor

输出张量,维度为4D,格式分别为NHWC。

-

block_size

attribute

int

从空间维度重组到深度维度的基础块尺寸

规格约束:block_size>=2, H%block_size == 0,W%block_size == 0

Fill

功能描述

创建形状为 dims 的张量,所有元素填充为给定的标量 value。该算子仅在 TFLITE 框架中定义(BuiltinOperator 编号:94),ONNX 框架无对应标准算子。不支持 ONNX 格式转换。

参数说明

表 1 Fill参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

dims

input

tensor(int32)

输出张量的形状,维度为1D,每个元素指定一个维度的大小。

规格约束:每个元素 ≥ 0,维度数不超过 32

value

input

tensor(fp32/int32/bool/int8)

填充值,标量(0-D 张量),数据类型决定输出张量的数据类型。

规格约束:不支持fp16类型

output

output

tensor(fp32/int32/bool/int8)

输出张量,形状 = dims,全部元素 = value,数据类型与 value 一致。

-

Shape

功能描述

获取输入张量的形状信息。

参数说明

表 1 Shape参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度不限制。

-

output

output

tensor (int32)

输出张量,维度为1D,元素为输入张量的各维度大小。

-

Neg

功能描述

对张量的每个元素做取负运算(符号取反),即 y = -x。

参数说明

表 1 Neg参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor(fp32/int8)

输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

规格约束:不支持fp16类型;int8 需全量化 cfg

y

output

tensor(fp32/int8)

输出张量,维度与输入 x 相同,每个元素为 x 对应元素的相反数。

-

Pow

功能描述

计算两个张量的逐元素幂运算,base 为底数张量,exponent 为指数张量,输出 result = base^exponent。支持 NumPy 风格广播。

参数说明

说明:

  1. Pow 无内置属性,转换时自动填充。支持广播特性,双向广播需在转换命令中明确配置 inputDataFormat 和 outputDataFormat 参数。

  2. 推荐使用 X ≥ 0 的输入组合确保结果确定性;X < 0 且 Y 为非整数时实数域无定义,输出值取决于底层数学库。

  3. INT8 量化仅支持 X ≥ 0 的输入,X < 0 时负数值在 int8 对称量化中将被映射为 0。

表 1 Pow参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

base

input

tensor(fp32/int8)

底数张量,维度为 1D/2D/3D/4D,格式分别为 ND、NWC、NHWC。

规格约束:最大维度 4D;支持 NumPy 广播;不支持fp16 类型;INT8 不支持 X<0 的输入

exponent

input

tensor(fp32/int8)

指数张量,维度为 1D/2D/3D/4D,与 base 广播兼容。

规格约束:最大维度 4D;不支持fp16 类型

result

output

tensor(fp32/int8)

输出张量,维度为 base 与 exponent 的广播结果,格式分别为 ND、NWC、NHWC。

规格约束:最大维度 4D;不支持fp16 类型

TopK

功能描述

获取输入张量中沿指定维度前K个最大值。

参数说明

表 1 TopK参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度不限制。

规格约束:不支持int64

k

input

tensor (int32)

需要获取的TopK个数,标量。

-

values

output

tensor

TopK值张量,最后一维为K。

-

indices

output

tensor (int32)

TopK值的索引张量,最后一维为K。

-

Gelu

功能描述

对输入张量做Gelu激活函数运算。Gelu(Gaussian Error Linear Unit)基于正态分布累积概率,对输入乘以其概率分布的值实现连续非线性变换,相比传统激活函数在负值区域具有平滑的非零梯度。

参数说明

表 1 Gelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

-

approximate

attribute

bool

是否启用tanh近似计算模式,默认值false。

配置范围:false(采用高精度拟合计算)、true(采用tanh快速近似算法)

Pack

功能描述

Pack算子用于沿着指定的新轴(axis)将一组形状相同的输入张量堆叠(拼接)成一个新的高维张量。堆叠后输出张量的维度(Rank)相比单个输入张量增加1。

参数说明

表 1 Pack参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

values

input

varList(tensor)

输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

规格约束:列表中各张量形状完全相同

output

output

tensor

输出张量,维度比单个输入多1维(输出Rank=输入Rank+1),格式分别为ND/NWC/NHWC。

-

values_count

attribute

int

输入张量列表中张量的个数。

规格约束:必须与实际传入的输入张量数量一致(values_count>=1)

axis

attribute

int

堆叠操作插入的新维度轴编号。

规格约束:范围为[-(R+1), R](其中R为单个输入张量的维度数)

Unpack

功能描述

Unpack算子用于沿指定的轴(axis)将一个高维张量拆分(解包)成一组低维张量,是Pack算子的逆向操作。解包后每个输出张量的维度(Rank)相比输入张量减少1。

参数说明

表 1 Unpack参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NWC/NHWC。

-

outputs

output

varList(tensor)

输出张量列表,每个输出张量维度为输入维度-1(输出Rank=输入Rank-1),输出张量数量等于输入在axis轴上的Size。

-

num

attribute

int

从输入中拆分出的张量数量(即输出列表长度)。

规格约束:必须严格等于输入张量在指定axis轴上的维度大小(input.shape[axis]==num)

axis

attribute

int

执行拆分操作的维度轴编号。

规格约束:范围为[-R, R-1](其中R为输入张量的维度数)

Select

功能描述

根据条件张量从两输入张量中选择元素,不支持广播。

参数说明

表 1 Select参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

condition

input

tensor

条件张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

规格约束:数据类型为bool

x

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

y

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

SelectV2

功能描述

根据条件张量从两输入张量中选择元素,支持广播。

参数说明

表 1 SelectV2参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

condition

input

tensor

条件张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

规格约束:数据类型为bool

x

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

y

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

ReverseV2

功能描述

沿指定轴对张量进行反转。

参数说明

表 1 ReverseV2参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

axis

input

tensor

指定反转的轴,维度为1D。

规格约束:离线常量,元素范围[-rank(input), rank(input)),元素不重复,元素数量不超过4

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NWC、NHWC。

-

Maximum

功能描述

对两个输入张量执行逐元素取最大值运算。

参数说明

表 1 Maximum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input1

input

tensor

输入张量 1,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。

固定为二元输入,支持广播

input2

input

tensor

输入张量 2,维度为 2D/3D/4D。

与 input1 遵循 NumPy 广播规则

output

output

tensor

输出张量,维度为广播后的形状。

-

Minimum

功能描述

对两个输入张量执行逐元素取最小值运算。

参数说明

表 1 Minimum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input1

input

tensor

输入张量 1,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。

固定为二元输入,支持广播

input2

input

tensor

输入张量 2,维度为 2D/3D/4D。

与 input1 遵循 NumPy 广播规则

output

output

tensor

输出张量,维度为广播后的形状。

-

ReduceProd

功能描述

沿指定轴计算输入张量所有元素的乘积。

参数说明

表 1 ReduceProd参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入数据张量,维度为 2D/3D/4D,ND/NWC/NHWC 数据排布。

-

axes

input

tensor

1D 张量,指定归约轴列表。

固定属性(由模型确定)

output

output

tensor

归约后的输出张量。

shape 取决于 axes 和 keep_dims

keep_dims

attribute

bool

是否保持归约轴维度,默认值 false。

true:保持维度;false:消除维度

OneHot

功能描述

将整数类别索引张量展开为OneHot编码张量,在axis指定的位置插入深度维。该算子与布局无关,不进行NCHW/NHWC转换。

参数说明

表 1 OneHot参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

indices

input

tensor (int32)

待编码的类别索引张量。

维度不限制,支持标量;索引小于0或大于等于depth时,对应输出切片全部为off_value

depth

input

tensor (int32)

OneHot编码深度。

规格约束:必须为标量

on_value

input

tensor (float32)

索引有效位置的填充值。

规格约束:必须为标量

off_value

input

tensor (float32)

其余位置的填充值。

规格约束:必须为标量

output

output

tensor (float32/int8)

OneHot编码结果。

输出秩为indices秩加1,axis维度大小为depth;非量化输出为float32,全量化输出为int8

axis

attribute

int

深度维的插入位置。

配置范围:-1或[0, rank(indices)];默认-1,表示在末尾追加深度维

Unique

功能描述

对一维输入张量进行去重。唯一值按照在输入中首次出现的顺序输出,同时输出每个输入元素在唯一值输出中的下标。

参数说明

说明: Unique算子支持float32/int8,不支持量化。

表 1 Unique参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor (float32/int8/uint8/int32)

待去重的输入张量。

规格约束:仅支持一个输入,输入维度必须为1D

values

output

tensor (与x相同)

按照首次出现顺序排列的唯一值。

输出维度为1D;按输入长度预留容量,运行时长度为0至输入长度,并同步输出逻辑形状

indices

output

tensor (int32/int64)

每个输入元素在values输出中的下标。

输出维度为1D,长度与输入长度相同

idx_out_type

attribute

enum

指定indices输出的数据类型。

配置范围:INT32、INT64

GatherNd

功能描述

根据 indices 中的多维坐标,从 params 中收集元素或切片。设索引深度为 D=indices.shape[-1] ,输出shape为 indices.shape[:-1]+params.shape[D:] ,输出数据类型与 params 一致。

该算子仅支持TFLite格式和RISCV Micro目标,source entry为TFLite GATHER_ND。支持FP32、INT32、BOOL数据通路;float32模型可通过全量化生成INT8数据通路。

参数说明

说明: GatherNd无属性。indices仅用于定位数据,不参与量化;INT8通路来自float32模型的全量化转换,不支持将indices量化。

表 1 GatherNd参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

params

input

tensor (float32/int32/bool/int8)

被收集元素或切片的数据张量。

必须为静态形状;rank不超过16。float32模型支持非量化和全量化int8通路。

indices

input

tensor (int32/int64)

多维索引张量,最后一维保存索引元组。

必须为静态形状;rank(indices)必须大于等于1且不超过16;D必须大于0且小于等于rank(params);坐标值必须大于等于0且小于params对应维度大小。

output

output

tensor

按索引元组收集得到的元素或切片,数据类型与params一致。

必须为静态形状;shape为indices.shape[:-1]+params.shape[D:];输出元素数、步长和偏移量必须在有符号32位整数范围内。

关键场景分析

使用场景

什么时候会遇到

软件行为与限制

TFLite基本GatherNd

TFLite/TF导出GATHER_ND

按indices最后一维表示的多维坐标从params收集元素或切片。

收集标量元素

D等于rank(params)

输出shape为indices.shape[:-1]。

收集尾部切片

D小于rank(params)

输出shape为indices.shape[:-1]+params.shape[D:]。

全量化int8通路

float32模型 + FULL_QUANT

params/output使用INT8通路,indices保持INT32或INT64,不参与量化。

不支持规格命中

indices为负数、越界、D大于rank(params)、shape非静态或中间计算溢出INT32

转换期或运行期报错,不生成有效结果。

ScatterND

功能描述

根据indices中的多维坐标,将updates中的元素或切片写入由shape指定的全零输出张量。设索引深度为K=indices.shape[-1],则updates.shape必须等于indices.shape[:-1]+shape[K:]。多个相同索引对应的updates执行累加。

该算子仅支持TFLite格式和RISCV Micro目标,支持FP32和全量化INT8通路。

参数说明

表 1 ScatterND参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

indices

input

tensor (int32)

多维索引张量,最后一维保存索引元组。

必须为静态形状,rank为2~16;K必须大于0且不超过输出rank;仅支持非负索引。

updates

input

tensor (float32/int8)

写入或累加到目标位置的元素或切片。

必须为静态形状,shape等于indices.shape[:-1]+shape[K:];支持FP32和全量化INT8。

shape

input

tensor (int32)

指定输出张量形状。

必须是转换时可确定的常量1D张量,元素个数等于输出rank,且内容与推导出的输出形状一致。

output

output

tensor (float32/int8)

以全零张量为初值,按indices累加updates得到的结果。

数据类型与updates一致,必须为静态形状,rank为1~16。

说明: TFLite ScatterND没有data输入,输出以0初始化;重复索引按TFLite语义累加。索引小于0或超出对应输出维度范围时运行失败。INT8通路使用per-tensor量化参数。

LogSoftmax

功能描述

对输入张量最后一维的元素计算对数归一化概率。对于最后一维中的每个元素,计算公式为:Yi=Xi-log(Σjexp(Xj))。输出张量的形状和格式与输入相同。

参数说明

说明: 受TFLite算子规格限制,LogSoftmax仅支持在最后一维上进行计算。

表 1 LogSoftmax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为1D~5D;沿最后一维进行计算。

模型数据类型为float32;支持FP32和全量化INT8转换。

output

output

tensor

输出张量,形状和格式与输入相同。

模型输出数据类型与输入一致。

TransposeConv

功能描述

TFLite的转置卷积(反卷积)算子,用于上采样,数据布局为NHWC。输出空间维按TFLite规格计算:SAME模式下o=i×s,即输出尺寸等于输入尺寸乘以步长;VALID模式下o=(i-1)×s+k,即输出尺寸等于输入尺寸减1乘以步长再加核尺寸。其中o为该维度的输出尺寸,i为该维度的输入尺寸,s为步长(上采样因子),k为卷积核在该维度的大小。

参数说明

说明: 支持SAME和VALID两种padding、大于等于1的任意步长、2D空间卷积核(KH×KW,各维尺寸大于等于1,支持非方形核)以及带偏置的四输入形态;支持FP32和全量化INT8转换,权重按输出通道逐通道量化,int8模式下batch固定为1。TFLite规格本身不提供dilation、group和output_padding属性,需要这些功能时应改用ONNX格式。紧随其后的Mul(常量)会在转换期被吸收并改写权重;Relu不做融合,作为独立节点保留。

表 1 TransposeConv参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

output_shape

input

tensor (int32)

输出形状,为常量输入,由转换器消费。

规格约束:形状为[4],必需(TFLite规格要求)

input

input

tensor (float32)

数据输入张量。

规格约束:维度为4D,NHWC排布,静态shape,batch=1

filter

input

tensor (float32)

权重常量,布局为[输出通道, 核高, 核宽, 输入通道]。

规格约束:维度为4D,权重布局由转换器自动重排

bias

input

tensor (float32)

可选偏置输入,默认无。

规格约束:形状为[OC],存在时节点为四输入

output

output

tensor (float32/int8)

转置卷积输出张量。

规格约束:形状为[N, oH, oW, OC],NHWC排布,oH/oW按功能描述中的公式计算;支持FP32和全量化INT8转换

padding

attribute

enum

填充模式。

配置范围:SAME(自动补边)、VALID(不补边,以已计算为准);必需属性

stride_h/stride_w

attribute

int

高、宽方向的空间步长。

规格约束:每个大于等于1;必需属性

fused_activation_function

attribute

enum

融合激活函数。

本实现不启用

ONNX算子规格参考

Conv

功能描述

基于一个filter模板对3D或4D输入进行卷积计算。

参数说明

表 1 Conv参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为3D或4D,格式为NCW/NCHW。

-

W

input

tensor

权重张量,维度为3D或4D。

规格约束:权重为离线常量

B

input

tensor

偏置张量,维度为1D。

规格约束:偏置为离线常量

Y

output

tensor

输出张量,维度为3D或4D,格式为NCW/NCHW。

-

auto_pad

attribute

string

指定padding的类型。

规格约束:仅支持NOTSET

dilations

attribute

list(int)

每个轴上的扩张系数。

-

group

attribute

int

在输入输出channel上划分的分组个数。

规格约束:仅支持输入为1的情况

kernel_shape

attribute

list(int)

kernel沿各轴的大小。

-

pads

attribute

list(int)

各轴前后填充零的个数。

-

strides

attribute

list(int)

各个方向上kernel的移动步长。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

支持INT8输入/权重/输出、INT32 bias、rank为4、group为1、3x3卷积、无融合激活或融合ReLU;权重为OHWI格式,支持per-tensor或per-output-channel量化

FP32

支持

支持rank为4、batch为1、无bias、无融合激活、stride和dilation均为1的depthwise等价卷积;要求group=input_channel=output_channel,权重为OHWI格式且I=1

Conv3D

功能描述

基于5D权重对5D输入进行三维卷积计算。该算子为ONNX规格,支持RISCV Micro目标和x86目标,source entry为ONNX Conv;转换器按输入和权重rank自动识别为Conv3D。输入X布局为NCDHW,输出布局为NCDHW。

float32模型可通过全量化生成int8数据通路。原生int8/int32模型不作为该规格支持范围。

参数说明

表 1 Conv3D参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32/int8)

输入张量,维度为5D,格式为NCDHW。

支持float32模型;float32模型可通过全量化生成int8数据通路。

W

input

tensor (float32/int8)

权重张量,维度为5D。

规格约束:权重必须为initializer离线常量。

B

input

tensor (float32/int32)

偏置张量,维度为1D。

可选输入;偏置必须为initializer离线常量;无bias时按0处理。

Y

output

tensor (float32/int8)

输出张量,维度为5D,格式为NCDHW。

数据类型与执行通路一致。

auto_pad

attribute

string

指定padding的类型。

规格约束:仅支持NOTSET。

dilations

attribute

list(int)

每个空间轴上的扩张系数。

规格约束:仅支持[1, 1, 1]。

group

attribute

int

在输入输出channel上划分的分组个数。

规格约束:仅支持1。

kernel_shape

attribute

list(int)

kernel沿D/H/W轴的大小。

缺省时按权重空间维推导。

pads

attribute

list(int)

D/H/W三个空间轴前后填充零的个数。

支持对称与非对称pads;缺省为全0。

strides

attribute

list(int)

D/H/W三个方向上kernel的移动步长。

支持1或2;缺省为[1, 1, 1]。

说明: ONNX Conv3D通过ONNX Conv的5D输入和5D权重识别,不是独立的ONNX算子名。pads按ONNX格式[D_begin, H_begin, W_begin, D_end, H_end, W_end]解析,支持逐维前后填充不同。

不支持group大于1、dilations不等于[1, 1, 1]、auto_pad不等于NOTSET的场景,命中不支持规格时转换期报错,不生成模型。

关键场景分析

使用场景

什么时候会遇到

软件行为与限制

ONNX基本三维卷积

NCDHW模型常规导出

按strides/pads正向卷积,输出NCDHW。

ONNX缺省属性

节点未写kernel_shape、strides或pads

分别按权重空间维、[1, 1, 1]、全0推导。

ONNX非对称pads

前后填充不同,如[2, 1, 0, 0, 1, 2]

解析期重排为逐维前后填充,独立填充。

无bias两输入节点

Conv节点仅X/W输入

偏置按0处理。

全量化int8通路

float32模型 + FULL_QUANT

转换后使用int8数据通路执行,requant按乘法量化因子q=round(acc * mult) + zp计算。

不支持规格命中

group大于1、dilations不等于[1, 1, 1]、auto_pad不等于NOTSET

转换期报错,不生成模型。

MaxPool

功能描述

对3D或4D输入进行最大池化计算。

参数说明

说明: Maxpool双输出规格暂不支持。

表 1 MaxPool参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为3D或4D,格式为NCW/NCHW。

-

Y

output

tensor

输出张量,维度为3D或4D,格式为NCW/NCHW。

-

auto_pad

attribute

string

指定padding的类型。

配置范围:NOTSET、SAME_UPPER、SAME_LOWER、VALID

ceil_mode

attribute

int

输出形状的取整方式。

规格约束:仅支持floor

dilations

attribute

list(int)

每个轴上的扩张系数。

规格约束:仅支持1

kernel_shape

attribute

list(int)

kernel沿各轴的大小。

-

pads

attribute

list(int)

各轴前后填充零的个数。

-

storage_order

attribute

int

张量存储主序。

规格约束:仅支持0

strides

attribute

list(int)

各个方向上kernel的移动步长。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

仅支持MaxPool,输入和输出均为INT8 NHWC四维张量,且必须携带量化参数

FP32

不支持

-

Gemm

功能描述

对两个2D张量进行矩阵乘积运算。

参数说明

表 1 Gemm参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

输入张量,维度为2D,格式为ND。

-

B

input

tensor

权重张量,维度为2D。

规格约束:仅支持离线变量

C

input

tensor

偏置张量,维度为1D。

规格约束:仅支持离线变量

Y

output

tensor

输出张量,维度为2D,格式为ND。

-

alpha

attribute

float

A×B张量的缩放系数。

规格约束:仅支持1.0

beta

attribute

float

C的乘数。

规格约束:仅支持0.0

transA

attribute

int

决定输入A是否转置。

配置范围:0、1

transB

attribute

int

决定输入B是否转置。

配置范围:0、1

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化

FP32

支持

支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数

Matmul

功能描述

对两个2D/3D/4D张量进行矩阵乘积运算。

参数说明

说明: Matmul不支持广播场景。

表 1 Matmul参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

支持INT8输入/权重/输出,rank为2,A不转置、B转置、无融合激活;可选INT32 bias,权重支持per-tensor或per-output-channel量化

FP32

支持

支持rank为2、2个或3个输入、A不转置、B可转置;融合激活仅支持无融合激活或ReLU,bias元素数量必须等于输出通道数

Softmax

功能描述

计算指定维度的归一化Softmax概率分布。

参数说明

说明: 当Softmax维度较大时,int8量化损失较大,推荐使用fp32模式的算子,关闭cfg中的enable_all_ops选项(仅保留矩阵运算类算子的量化)。

表 1 Softmax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axis

attribute

int

Softmax的计算轴。

-rank(input)<=axis

Relu

功能描述

对输入张量做Relu激活函数运算。

参数说明

表 1 Relu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

Activation训练反向仅支持ReLU,输入和输出均为INT8且必须携带量化参数

FP32

支持

Activation训练反向仅支持ReLU

Tan

功能描述

对输入张量中的每个元素计算正切函数。输入数据按弧度解释,输出张量的Shape与输入张量相同。

正切函数公式为:tan(x) = sin(x) / cos(x),其中 cos(x) 不等于 0。

正切函数的极点位于 x = π/2 + kπ(k 为整数)。在极点处正切函数没有有限值,接近极点时输出变化剧烈,数值误差会被显著放大。

参数说明

表 1 Tan参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制,输入值按弧度解释。

FP32;全量化推理时为INT8,并且必须携带量化参数。

y

output

tensor

输出张量,Shape与输入相同,逐元素保存正切计算结果。

FP32输出为FP32;全量化推理时为INT8,重新量化后可能饱和到[-128, 127]。

推理支持规格

推理模式

支持情况

规格约束

FP32

支持

单输入、单输出,逐元素计算,输入和输出Shape一致;输入按弧度解释。

全量化 INT8

支持

输入范围应受控并远离所有极点,极点附近不保证高精度。

限制说明

  • Tan不包含可配置属性,仅支持单输入和单输出。

  • 当前实现不支持FP16、FP64和BF16数据类型。

  • 极点位置为 π/2 + kπ 。由于 tan'(x) = 1 / cos²(x) ,输入越接近极点,微小的输入误差越可能造成很大的输出误差。

  • 在全量化INT8路径中,输入量化误差可能将值推向或跨过极点,输出重新量化还可能发生饱和。因此,要求极点附近精度或输入范围未知时,建议使用FP32;INT8仅适合明确远离极点的受控输入范围。

Tanh

功能描述

对输入张量做Tanh激活函数运算。

参数说明

表 1 Tanh参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Sigmoid

功能描述

对输入张量做Sigmoid激活函数运算。

参数说明

表 1 Sigmoid参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Reshape

功能描述

改变Tensor的Shape,但不改变其排布。

参数说明

表 1 Reshape参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

shape

input

tensor (int64)

Shape张量,转换后的Shape。

所有元素之积与input包含的元素个数相等

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

allowzero

attribute

int

判断是否对目标形状做适配(默认0)。

仅支持0

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

Mul

功能描述

计算两个矩阵逐点相乘。

参数说明

说明: Mul支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Mul参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Add

功能描述

计算两个矩阵逐点相加。

参数说明

说明: Add支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Add参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Sub

功能描述

计算两个矩阵逐点相减。

参数说明

说明: Sub支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Sub参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

B

input

tensor

右输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

C

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

不支持广播,两个输入和输出的shape必须完全一致;融合激活仅支持无融合激活或ReLU

Gather

功能描述

根据指定索引,从输入张量的指定轴上提取元素,组合成新张量。

参数说明

表 1 Gather参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

index

input

tensor (int32)

索引张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

axis

attribute

int

输入张量被切分的轴。

-rank(data)<=axis

Split

功能描述

对张量分割按照某一轴平均或非平均切分成若干份。

参数说明

表 1 Split参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

outputs

output

varList(tensor)

输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

num_outputs

attribute

int

分割的数量。

(0, split_dim]

axis

attribute

int

被分割的轴。

维度索引

split

attribute

tensor

具体每一份分割的维度。

[n1, n2, ..., ni],∑ni = 轴的值,n > 0

Concat

功能描述

将多个张量拼接成某一个张量。

参数说明

表 1 Concat参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

inputs

input

varList(tensor)

输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

规格约束:列表中各张量在指定轴上元素个数相等

concat_result

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

-

axis

attribute

int

指定沿着哪个轴进行连接。

规格约束:-rank(data)≤axis

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

仅支持2个输入和1个输出;输入和输出rank必须相同且非空,非axis维度一致,axis维度等于两个输入对应维度之和

AveragePool

功能描述

对3D或4D输入进行平均池化计算。

参数说明

表 1 AveragePool参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为3D或4D,格式为NCW/NCHW。

-

Y

output

tensor

输出张量,维度为3D或4D,格式为NCW/NCHW。

-

auto_pad

attribute

string

指定padding的类型。

配置范围:NOTSET、SAME_UPPER、SAME_LOWER、VALID

ceil_mode

attribute

int

输出形状的取整方式。

仅支持floor

dilations

attribute

list(int)

每个轴上的扩张系数。

仅支持1

kernel_shape

attribute

list(int)

kernel沿各轴的大小。

-

pads

attribute

list(int)

各轴前后填充零的个数。

-

storage_order

attribute

int

张量存储主序。

仅支持0

strides

attribute

list(int)

各个方向上kernel的移动步长。

-

InstanceNormalization

功能描述

对3D输入张量做归一化计算。

参数说明

说明: 暂时只支持1D,仅支持float类型,暂不支持int8类型。

表 1 InstanceNormalization参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为3D,格式为NCW。

-

scale

input

tensor

输入张量的放缩系数,维度为1D。

-

B

input

tensor

偏置向量,维度为1D。

-

output

output

tensor

输出张量,维度为3D,格式为NCW。

-

epsilon

attribute

float

用于避免除零溢出(默认1e-5)。

-

LSTM

功能描述

一种循环神经网络,用于捕捉输入的时序数据长期依赖关系。

参数说明

说明: 仅支持float类型,暂不支持int8类型。

表 1 LSTM参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入时序数据,维度为3D,格式为NCW。

规格约束:作为在线变量

W

input

tensor

门的权重张量,维度为3D,格式为NCW。

规格约束:离线常量

R

input

tensor

循环权重张量,维度为3D,格式为NCW。

规格约束:离线常量

B

input

tensor

输入门偏置张量,维度为2D,格式为ND。

规格约束:离线常量

sequence_lens

input

tensor

确定每个批数据中时序长度。

暂不支持配置

initial_h

input

tensor

隐藏层初始值,维度为3D,格式为NCW。

规格约束:作为在线变量

initial_c

input

tensor

细胞层初始值,维度为3D,格式为NCW。

规格约束:作为在线变量

P

input

tensor

窥视孔权重向量。

暂不支持配置

Y

output

tensor

隐藏层所有中间输出值张量拼接后的向量,维度为4D,格式为NCHW。

规格约束:作为在线输出变量

Y_h

output

tensor

隐藏层输出向量,维度为3D,格式为NCW。

规格约束:作为在线输出变量

Y_c

output

tensor

细胞层输出向量,维度为3D,格式为NCW。

规格约束:作为在线输出变量

activation_alpha

attribute

list(float)

对LSTM激活函数结果做放缩(默认0.01)。

-

activation_beta

attribute

list(float)

对LSTM激活函数结果做偏置(默认0.01)。

-

activations

attribute

list(string)

LSTM激活函数类型。

暂不支持配置

clip

attribute

float

梯度裁剪阈值。

暂不支持配置

direction

attribute

string

指定LSTM处理输入数据的方式(默认'forward')。

暂不支持配置

hidden_size

attribute

int

隐藏层大小。

-

input_forget

attribute

int

是否对输入和遗忘门进行耦合(默认0)。

暂不支持配置

layout

attribute

int

确定输入数据的排布格式,取值范围0或1(默认0)。

暂不支持配置

Tile

功能描述

对2D/3D/4D输入沿指定维度做复制扩展。

参数说明

表 1 Tile参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

repeats

input

list(int)

指定每个维度复制次数。

规格约束:repeats为离线常量

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Pad

功能描述

对输入张量边界做填充。

参数说明

表 1 Pad参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

规格约束:mode=constant的int8量化场景仅支持4D张量输入

pads

input

list(int)

指定各输入维度填充范围。

规格约束:pads为离线常量,pads[i]

pads[i]非负

constant_value

input

int

自定义填充常量。

规格约束:constant_value为离线常量

axes

input

list(int)

指定需要填充的轴。

暂不支持配置

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

mode

attribute

string

指定填充模式。

配置范围:constant、reflect、edge

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

仅支持CONSTANT模式;rank为1~6,要求normalized paddings、非负padding和正静态shape,输出shape必须等于输入shape加padding

Resize

功能描述

对输入张量按照指定填充模式做缩放。

参数说明

表 1 Resize参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为4D,格式为NCHW。

-

roi

input

list(int)

指定每个维度复制次数。

暂不支持配置

scales

input

list(float)

自定义填充常量。

规格约束:离线常量,NC轴保持1.0。fp32仅支持out_dim为整数,int8不支持配置,scales为离线常量,与sizes必须配置且仅配置一个

sizes

input

list(int)

指定需要填充的轴。

规格约束:离线常量,NC轴同输入张量保持一致,sizes为离线常量

Y

output

tensor

输出张量,维度为4D,格式为NCHW。

-

antialias

attribute

int32

默认值:0。抗锯齿开关,用于平滑缩小图像边缘锯齿。

暂不支持配置

axes

attribute

list(int)

指定缩放的维度轴索引。

暂不支持配置

coordinate_transformation_mode

attribute

string

默认值:"half_pixel"。指定坐标转换模式,控制像素映射关系。

配置范围:

'half_pixel'、"align_corners"、"asymmetric"

cubic_coeff_a

attribute

float

默认值:"-0.75"。三次插值系数,影响插值平滑程度。

暂不支持配置

exclude_outside

attribute

int

默认值:"0"。边界处理开关,是否排除外部像素。

暂不支持配置

extrapolation_value

attribute

float

默认值:"0.0"。外推填充值,越界时使用的数值。

暂不支持配置

keep_aspect_ratio_policy

attribute

string

默认值:"stretch"。保持高宽比策略,缩放比例计算方式。

暂不支持配置

mode

attribute

string

默认值:"nearest"。指定缩放插值模式。

配置范围:

"nearest"、"linear"

nearest_mode

attribute

string

默认值:"round_prefer_floor"。

最近邻插值模式下取整函数。

配置范围:

"round_prefer_floor"、"round_prefer_ceil"、"floor"

Squeeze

功能描述

对输入张量进行shape压缩操作,被压缩维度的dim值必须为1。

参数说明

表 1 Squeeze参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度不限制。

-

squeezed

output

tensor

输出张量,维度不限制。

-

axes(可选)

attribute

list(int)

被压缩的轴列表。

-Rank(tensor) <= axis < Rank(tensor)

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

Unsqueeze

功能描述

对多维Tensor进行shape扩展。

参数说明

表 1 Unsqueeze参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度不限制。

-

expanded

output

tensor

输出张量,维度不限制。

-

axes(可选)

attribute

list(int)

被扩展的轴列表。

-Rank(expanded) <= axis < Rank(expanded)

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

Flatten

功能描述

对多维Tensor进行维度展平。

参数说明

表 1 Flatten参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度不限制。

-

flattened

output

tensor

输出张量,维度不限制。

-

axis

attribute

int

展平终止维度 (不包括),默认为1。

-Rank(tensor) <= axis <= Rank(tensor)

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

输入和输出元素数量必须一致,且输入和输出为INT8或INT32

FP32

支持

输入和输出元素数量必须一致,且为FP32静态非空张量

Abs

功能描述

对张量的每个元素做绝对值运算。

参数说明

表 1 Abs参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

要求使用FP32静态非空张量

Ceil

功能描述

对张量中的每个元素做向上取整操作。

参数说明

表 1 Ceil参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Cos

功能描述

对张量中的每个元素做余弦操作。

参数说明

表 1 Cos参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

[-1, 1]

Exp

功能描述

对张量中的每个元素做指数计算操作。

参数说明

表 1 Exp参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

(0, 正无穷)

Floor

功能描述

对张量中的每个元素做向下取整操作。

参数说明

表 1 Floor参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Log

功能描述

对张量中的每个元素做对数计算操作(底数值为e)。

参数说明

表 1 Log参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

(0, 正无穷)

y

output

tensor

输出张量,维度不限制。

-

Round

功能描述

对张量中的每个元素做四舍五入操作。

参数说明

表 1 Round参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

-

Sin

功能描述

对张量中的每个元素做正弦计算操作。

参数说明

表 1 Sin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

-

y

output

tensor

输出张量,维度不限制。

[-1, 1]

Sqrt

功能描述

对张量中的每个元素做平方根计算操作。

参数说明

表 1 Sqrt参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

输入张量,维度不限制。

[0, 正无穷)

y

output

tensor

输出张量,维度不限制。

[0, 正无穷)

BatchNormalization

功能描述

对输入张量做批归一化计算。

参数说明

表 1 BatchNormalization参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

scale

input

tensor

输入张量的放缩系数,维度为1D。

-

B

input

tensor

偏置向量,维度为1D。

-

input_mean

input

tensor

每个通道的全局均值,维度为1D。

-

input_var

input

tensor

每个通道的全局方差,维度为1D。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

epsilon

attribute

float

用于避免除零溢出(默认1e-5)。

-

LayerNormalization

功能描述

对输入张量做层归一化计算。

参数说明

表 1 LayerNormalization参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

scale

input

tensor

输入张量的放缩系数,维度为1D。

-

B

input

tensor

偏置向量,维度为1D。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

epsilon

attribute

float

用于避免除零溢出(默认1e-5)。

-

axis

attribute

int

用于指定归一化的维度(默认-1)。

规格约束:-Rank(input) <= axis < Rank(input)

LpNormalization

功能描述

沿指定轴,用 1 或 2 阶 Lp 范数对输入张量执行归一化计算。

参数说明

表 1 LpNormalization参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

p

attribute

int

用于指定 Lp 范数的阶数。

规格约束:只支持取值1或2

axis

attribute

int

用于指定归一化的维度(默认-1)。

规格约束:-Rank(input) <= axis < Rank(input)

Slice

功能描述

从输入张量中沿指定轴提取子张量。

参数说明

表 1 Slice参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

starts

input

tensor

维度为1D,对应 axes 中每个轴的起始索引。

规格约束:starts为离线常量

ends

input

tensor

维度为1D,对应 axes 中每个轴的结束索引。

规格约束:ends为离线常量

axes(可选)

input

tensor

维度为1D,指定要切片的轴(默认值为 [0,1,...,r-1])。

规格约束:axes为离线常量

steps(可选)

input

tensor

维度为1D,对应 axes 中每个轴的切片步长(默认值为[1,1…,1])。

规格约束:steps为离线常量

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持rank为1~8的FP32静态非空张量;要求full-rank归一化参数,不支持slice mask,step必须为正,不支持空切片

GlobalMaxPool

功能描述

对输入张量除通道轴以外进行最大池化操作。

参数说明

表 1 GlobalMaxpool参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为3D/4D,格式为NCW/NCHW。

规格约束:仅支持3D、4D

Y

output

tensor

输出张量,维度为3D/4D,格式为NCW/NCHW。

-

GlobalAveragePool

功能描述

对输入张量除通道轴以外进行平均池化操作。

参数说明

表 1 GlobalAveragePool参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为3D/4D,格式为NCW/NCHW。

规格约束:仅支持3D、4D

Y

output

tensor

输出张量,维度为3D/4D,格式为NCW/NCHW。

-

Transpose

功能描述

对输入张量进行转置。

参数说明

表 1 Transpose参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

perm

attribute

tensor

输入张量的维度重排顺序。

规格约束:不支持perm=[0,3,1,2]、[0,2,3,1]的Transpose单算子转换

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

支持

perm必须是合法的int32常量全排列;输入和输出为INT8或INT32,元素数量和rank必须一致

FP32

支持

perm必须是合法的int32常量全排列;输入和输出为FP32静态非空张量,rank为1~19

ArgMax

功能描述

在张量的指定维度上,计算并返回最大值对应的位置索引。

参数说明

说明: 仅支持float类型,不支持int8类型。

表 1 ArgMax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

reduced

output

tensor (int32)

输出张量,维度为1D/2D/3D/4D,格式为N/ND/NCW/NCHW,取决于参数配置。

-

axis

attribute

int

指定在张量中执行计算逻辑的维度。

规格约束:-rank(value)<=axis

keepdims

attribute

int

控制是否保留被降维的轴。

规格约束:只支持取值0或1。默认为1

select_last_index

attribute

int

控制最大值重复时的索引选择策略。为 0 时返回第一个最大值的索引;为 1 时返回最后一个最大值的索引。

规格约束:只支持取值0或1。默认为0

ArgMin

功能描述

在张量的指定维度上,计算并返回最小值对应的位置索引。

参数说明

说明: 仅支持float类型,不支持int8类型。

表 1 ArgMin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

reduced

output

tensor (int32)

输出张量,维度为1D/2D/3D/4D,格式为N/ND/NCW/NCHW,取决于参数配置。

-

axis

attribute

int

指定在张量中执行计算逻辑的维度。

规格约束:-rank(value)<=axis

keepdims

attribute

int

控制是否保留被降维的轴。

规格约束:只支持取值0或1。默认为1

select_last_index

attribute

int

控制最小值重复时的索引选择策略。为 0 时返回第一个最小值的索引;为 1 时返回最后一个最小值的索引。

规格约束:只支持取值0或1。默认为0

Div

功能描述

对两输入张量进行除法运算。

参数说明

表 1 Div参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持广播兼容shape,rank不超过10;不支持融合激活

Mod

功能描述

对两输入张量进行取模运算。

参数说明

说明: Mod算子不支持量化。

表 1 Mod参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

fmod

attribute

int

取模方式,0表示truncate模式,1表示floor模式。

配置范围:0/1

BitShift

功能描述

BitShift以X作为被移位数据、Y作为移位位数,逐元素执行无符号整数左移或右移运算,位移方向由direction属性指定。支持转换ONNX Opset 18及以上版本中的BitShift算子。

参数说明

说明: BitShift算子不支持量化,按uint8、uint16、uint32或uint64数据类型执行位移运算。

表 1 BitShift参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor(uint8/uint16/uint32/uint64)

被移位的输入张量。

必须为静态shape,rank小于16,数据类型必须与Y一致。shape必须与Y满足多方向广播规则。

Y

input

tensor(uint8/uint16/uint32/uint64)

移位位数输入张量,每个元素表示对应数据需要移动的位数。

必须为静态shape,rank小于16,数据类型必须与X一致。shape必须与X满足多方向广播规则。移位位数大于或等于数据类型位宽时,对应输出为0。

Z

output

tensor(uint8/uint16/uint32/uint64)

逐元素位移后的输出张量。

数据类型与X、Y一致,shape为X和Y广播后的shape。

direction

attribute

string

指定位移方向。

必选。LEFT表示左移,RIGHT表示右移。

Clip

功能描述

对张量进行最大最小值截断操作。

参数说明

表 1 Clip参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

min

input

tensor

输入张量,维度为标量。

-

max

input

tensor

输入张量,维度为标量。

-

Y

output

int

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

ReduceMax

功能描述

对指定维度的张量进行最大值归约计算。

参数说明

表 1 ReduceMax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

ReduceMin

功能描述

对指定维度的张量进行最小值归约计算。

参数说明

表 1 ReduceMin参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

ReduceSum

功能描述

对指定维度的张量进行求和归约计算。

参数说明

表 1 ReduceSum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持rank为1~8的FP32静态非空张量;axes必须为int32常量,允许为空表示全维归约,axes必须合法且唯一,输出shape必须匹配keep_dims

ReduceSumSquare

功能描述

ReduceSumSquare先对data中的元素逐元素平方,再沿axes指定的维度执行求和归约。支持转换ONNX Opset 18及以上版本中的ReduceSumSquare算子。

参数说明

说明: ReduceSumSquare算子支持非量化FP32推理和全量化INT8推理。

表 1 ReduceSumSquare参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor(float32)

参与平方和归约的输入张量。

必须为静态shape,rank不超过16。全量化INT8推理时,归约轴数量必须小于16。

axes

input

tensor(int64)

指定执行平方和归约的轴。

可选的第二个输入,必须为一维离线常量,各轴不能重复。支持单轴、多轴和负轴,每个元素的取值范围为[-rank(data), rank(data))。负轴表示从末维开始计数;缺省或为空时的行为由noop_with_empty_axes确定。

reduced

output

tensor(float32)

平方和归约后的输出张量。

输出shape由data、axes和keepdims共同确定。

keepdims

attribute

int

是否保留被归约的维度。

配置范围:0/1,默认值为1。值为0时删除被归约的维度,值为1时将被归约维度的长度保留为1。

noop_with_empty_axes

attribute

int

定义axes缺省或为空时的行为。

配置范围:0/1,默认值为0。值为0时对所有维度执行平方和归约;值为1时不执行运算,直接输出输入数据。

ReduceMean

功能描述

对指定维度的张量进行均值归约计算。

参数说明

表 1 ReduceMean参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

训练支持规格

训练模式

支持情况

规格约束

QAS INT8

不支持

-

FP32

支持

支持rank为1~8的FP32静态非空张量;axes必须为int32常量,允许为空表示全维归约,axes必须合法且唯一,输出shape必须匹配keep_dims

ReduceL1

功能描述

对指定维度的张量进行L1范数归约计算。

参数说明

表 1 ReduceL1参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input))

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

ReduceL2

功能描述

对指定维度的张量进行L2范数归约计算。

参数说明

表 1 ReduceL2参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input))

reduced

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

keepdims

attribute

int

是否需要保留归约轴的维度。

配置范围:0/1

noop_with_empty_axes

attribute

int

定义归约轴为空时的行为。

规格约束:不支持配置

Cast

功能描述

对输入张量进行数据类型的转换。

参数说明

说明: Cast算子不支持量化。

表 1 Cast参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

round_mode

attribute

string

转换为 FLOAT8E8M0 类型时的舍入模式配置。

规格约束:不支持配置

saturate

attribute

int

设定输入值超出目标类型取值范围时的转换行为,仅对float8类型转换有效。

规格约束:不支持配置

to

attribute

int

指定输入张量元素需要转换的目标数据类型。

规格约束:取值仅支持FLOAT、UINT8、INT8、INT32

PRelu

功能描述

对输入张量进行参数化 PRelu 激活处理。其在输入为非负值时保持原值,在输入为负值时根据斜率参数进行线性缩放。

参数说明

表 1 PRelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

待进行 PReLU 激活处理的数据,维度为1D / 2D / 3D / 4D。

数据类型仅支持 float32、int8;不限定具体数据格式。

slope

input

tensor

负半轴斜率参数,维度为0D / 1D / 2D / 3D / 4D。

数据类型仅支持 float32;不限定具体数据格式,但其形状需支持单向广播到 X 。

Y

output

tensor

输出张量,维度与 X 一致。

数据类型仅支持 float32、int8;维度与 X 一致。

说明: 在量化过程中,PReLU 算子的第二输入保留 FP32 格式,以保证负半轴计算精度。

CumSum

功能描述

对输入张量沿指定维度进行累加求和处理,输出结果为该维度上的前缀和。

参数说明

表 1 CumSum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor

待进行累加求和处理的输入张量,维度为 1D / 2D / 3D / 4D。

数据类型仅支持 float32、int8;不限定具体数据格式。

axis

input

tensor

进行累加求和的维度,维度为 0D。

数据类型仅支持 int32、int64;取值范围为 [-rank(input), rank(input)),当 axis 为负数时,表示从最后一个维度开始反向索引。

y

output

tensor

沿 axis 维度进行累加求和后的结果。

数据类型和维度与 x一致。

exclusive

attribute

int

是否采用排除当前元素的累加方式。

取值范围为 [0 , 1],默认值为0。

reverse

attribute

int

是否沿指定维度反向累加。

取值范围为 [0 , 1],默认值为0。

ReverseSequence

功能描述

对输入张量指定轴前N个数据进行反转。

参数说明

表 1 ReverseSequence参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

sequence_lens

input

tensor

输入张量,维度为1D。

数据类型仅支持int32,每个数据均满足0<=seq_len<=input_shape[time_axis]

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

batch_axis

attribute

int

批次轴的序号。

默认为1,可支持缺省配置,必须与time_axis不同。仅支持0,1配置。

time_axis

attribute

int

反转轴的序号。

默认为0,可支持缺省配置,必须与batch_axis不同。仅支持0,1配置。

Einsum

功能描述

对输入张量进行简约求和,支持多输入的矩阵乘,对角,旋转,规约等操作。

参数说明

说明: 详细规则请参考Einsum,不支持...操作。

表 1 Einsum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

inputs

input

varList(tensor)

输入张量列表,内部各张量维度为2D/3D/4D,格式分别为ND、NCW、NCHW。

数据类型仅支持float32、uint8、int8、int32

output

output

tensor

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、uint8、int8、int32

equation

attribute

string

转换规则

不支持...操作。

LeakyRelu

功能描述

对输入张量做LeakyRelu激活函数运算。在输入为非负值时保持原值,在输入为负值时根据缩放系数进行线性缩放。

参数说明

表 1 LeakyRelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

alpha

attribute

float

负半轴缩放系数

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

HardSwish

功能描述

对输入张量做HardSwish激活函数运算。公式为:Y = X * HardSigmoid(α=1/6, β=0.5, X)

参数说明

表 1 HardSwish参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Swish

功能描述

对输入张量做Swish激活函数运算。公式为:Y = X * sigmoid(alpha * X)

参数说明

表 1 Swish参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

alpha

attribute

float

缩放系数。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

说明: 在ONNX Opset24以上才支持构造Swish算子,对应ONNX版本为1.19.0以上。

And

功能描述

对两个输入张量执行逐元素“与”逻辑运算。

参数说明

img 说明: And支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。 And算子不支持量化。

表 1 And参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor(bool)

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor(bool)

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Equal

功能描述

对两个输入张量执行逐元素“等于”逻辑运算。

参数说明

说明: Equal支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Equal参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

GreaterOrEqual

功能描述

对两个输入张量执行逐元素“大于等于”逻辑运算。

参数说明

说明: GreaterOrEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 GreaterOrEqual参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Greater

功能描述

对两个输入张量执行逐元素“大于”逻辑运算。

参数说明

说明: Greater支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Greater参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

LessOrEqual

功能描述

对两个输入张量执行逐元素“小于等于”逻辑运算。

参数说明

说明: LessOrEqual支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 LessOrEqual参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Less

功能描述

对两个输入张量执行逐元素“小于”逻辑运算。

参数说明

说明: Less支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。

表 1 Less参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

B

input

tensor

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

数据类型仅支持float32、bool

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Not

功能描述

逐元素返回输入张量的取反值。

参数说明

img 说明: Not算子不支持量化。

表 1 Not参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor(bool)

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Y

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Or

功能描述

对两个输入张量执行逐元素“或”逻辑运算。

参数说明

img 说明: Or支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。 Or算子不支持量化。

表 1 Or参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor(bool)

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor(bool)

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Xor

功能描述

对两个输入张量执行逐元素“异或”逻辑运算。

参数说明

img 说明: Xor支持广播特性。双向广播需要在转换命令中明确配置inputDataFormat和outputDataFormat参数。 Xor算子不支持量化。

表 1 Xor参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor(bool)

左输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

B

input

tensor(bool)

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

C

output

tensor(bool)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

Dropout

功能描述

对输入张量进行 Dropout 处理。推理场景下,Dropout 等价于 Identity,输出张量与输入张量保持一致,不进行随机屏蔽和缩放处理。

参数说明

表 1 Dropout参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

待进行 Dropout 处理的输入数据。

维度为 0D / 1D / 2D / 3D / 4D;数据类型支持 float32、int8;不限定具体数据格式。

ratio

input

scalar / tensor

Dropout 屏蔽比例。

可选输入;数据类型通常为 float32;取值范围为 [0, 1)。推理场景下该参数不影响输出结果。

training_mode

input

scalar / tensor

是否处于训练模式。

可选输入;数据类型通常为 bool。为 false 或未配置时表示推理模式,Dropout 等价于 Identity。当前端侧推理场景通常按 false 处理。

Y

output

tensor

Dropout 输出结果。

维度与 X 一致;数据类型与 X 一致。推理场景下,输出数据与输入数据保持一致。

mask

output

tensor

Dropout 随机屏蔽掩码。

可选输出;数据类型通常为 bool;维度与 X 一致。推理场景下通常不使用该输出,若框架保留该输出,其值不参与后续推理计算。

说明: 暂不支持training_mode为true,暂不支持ratio或training_mode为运行时输入。

Identity

功能描述

对输入张量进行恒等映射处理。该算子不改变输入数据的数值、数据类型和维度信息,输出张量与输入张量保持一致。

参数说明

表 1 Identity参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量。

维度为 0D / 1D / 2D / 3D / 4D;数据类型支持 float32、int8;不限定具体数据格式。

Y

output

tensor

输出张量。

维度与 X 一致;数据类型与 X 一致;输出数据与输入数据保持一致。

GatherElements

功能描述

对目标张量的某个轴进行重新取索引,索引为一个与目标张量相同大小的整型张量。

参数说明

表 1 GatherElements参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor(float)

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

indices

input

tensor(int32)

右输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

大小必须与data相同

output

output

tensor(float)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axis

attribute

int

重新按照元素取索引的轴。

-rank(input) <= axis < rank(input)

ReduceLogSum

功能描述

对目标张量进行Reduce操作,Reduce操作为LogSum。

参数说明

表 1 ReduceLogSum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor(float)

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

reduced

output

tensor(float)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

ReduceLogSumExp

功能描述

对目标张量进行Reduce操作,Reduce操作为LogSumExp。

参数说明

表 1 GatherElements参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor(float)

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

reduced

output

tensor(float)

输出张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

-

axes

input

tensor

输入张量,维度为1D,指定归约的轴。

规格约束:离线常量,元素范围[-rank(input), rank(input)),不支持axis为空list

Expand

功能描述

对输入张量按目标形状进行扩展运算,扩展规则遵循广播机制。

参数说明

表 1 Expand参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

输入维度需满足广播规则。

shape

input

tensor

目标输出形状,一维张量。

shape中的维度值需大于0;目标形状需与输入张量形状满足广播规则。

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

输出形状由shape指定。

Elu

功能描述

对输入张量做Elu激活函数运算。公式为:Y= X if X >= 0 else alpha * (exp(X)-1)

参数说明

表 1 Elu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

alpha

attribute

float

负值区间饱和值缩放系数,默认值1.0。

-

DepthToSpace

功能描述

对输入张量维度的深度(通道)维度的数据重排到空间(高、宽)维度。

参数说明

表 1 DepthToSpace参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式分别为NCHW。

-

output

output

tensor

输出张量,维度为4D,格式分别为NCHW。

-

blocksize

attribute

int

从深度维度重组到空间维度的基础块尺寸。

规格约束:blocksize>=2, C%blocksize^2 == 0

mode

attribute

string

重排模式。

配置范围:DCR、CRD

SpaceToDepth

功能描述

对输入张量空间(高、宽)维度的数据重排到深度(通道)维度。

参数说明

表 1 SpaceToDepth参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为4D,格式分别为NCHW。

-

output

output

tensor

输出张量,维度为4D,格式分别为NCHW。

-

blocksize

attribute

int

从空间维度重组到深度维度的基础块尺寸。

规格约束:blocksize>=2, H%blocksize == 0,W%blocksize == 0

GRU

功能描述

一种循环神经网络,用于捕捉输入的时序数据长期依赖关系。

参数说明

说明: 仅支持float类型,暂不支持int8类型。

表 1 GRU参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入时序数据,维度为3D,格式为NCW。

规格约束:作为在线变量

W

input

tensor

门的权重张量,维度为3D,格式为NCW。

规格约束:离线常量

R

input

tensor

循环权重张量,维度为3D,格式为NCW。

规格约束:离线常量

B

input

tensor

输入门偏置张量,维度为2D,格式为ND。

规格约束:离线常量

sequence_lens

input

tensor

确定每个批数据中时序长度。

暂不支持配置

initial_h

input

tensor

隐藏层初始值,维度为3D,格式为NCW。

规格约束:作为在线变量

Y

output

tensor

隐藏层所有中间输出值张量拼接后的向量,维度为4D,格式为NCHW。

规格约束:作为在线输出变量

Y_h

output

tensor

隐藏层输出向量,维度为3D,格式为NCW。

规格约束:作为在线输出变量

activation_alpha

attribute

list(float)

对LSTM激活函数结果做放缩(默认0.01)。

暂不支持配置

activation_beta

attribute

list(float)

对LSTM激活函数结果做偏置(默认0.01)。

暂不支持配置

activations

attribute

list(string)

LSTM激活函数类型。

暂不支持配置

clip

attribute

float

梯度裁剪阈值。

暂不支持配置

direction

attribute

string

指定LSTM处理输入数据的方式(默认'forward')。

配置范围:forward/reverse/bidirectional

hidden_size

attribute

int

隐藏层大小。

-

layout

attribute

int

确定输入数据的排布格式,取值范围0或1。

暂不支持配置

linear_before_reset

attribute

int

区分GRU候选隐藏层状态计算范式:值为1代表先对隐藏层做线性变换再与重置门相乘否则咸鱼重置门相乘再做线性变换。

配置范围:0或1

Gelu

功能描述

对输入张量做Gelu激活函数运算。Gelu(Gaussian Error Linear Unit)基于正态分布累积概率,对输入乘以其概率分布的值实现连续非线性变换,相比传统激活函数在负值区域具有平滑的非零梯度。

参数说明

表 1 Gelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

approximate

attribute

string

Gelu近似计算模式,默认值"none"。

配置范围:只能配置为"none"或"tanh","none"使用erf精确形式计算,"tanh"使用tanh近似算法计算

Trilu

功能描述

Trilu(Triangular Upper / Lower)算子用于提取输入张量的三角矩阵部分,将保留区域之外的元素全部置为零。根据配置可提取上三角矩阵或下三角矩阵;对高维张量作用在最后两个维度组成的每一个二维矩阵上,批次维度保持不变。

参数说明

表 1 Trilu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

k

input

int64

对角线偏移量(Diagonal Offset),默认值0。

规格约束:离线常量

output

output

tensor

输出张量,维度与数据类型与输入严格保持一致。

-

upper

attribute

int

是否保留上三角区域,默认值1(true)。

配置范围:1(true,提取上三角矩阵,下三角置0)、0(false,提取下三角矩阵,上三角置0)

Shape

功能描述

获取输入张量的形状信息。

参数说明

表 1 Shape参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入张量,维度不限制。

-

shape

output

tensor (int64)

输出张量,维度为1D,元素为输入张量的各维度大小。

-

start

attribute

int

指定输出形状切片的起始维度索引(默认0)。

-

end

attribute

int

指定输出形状切片的结束维度索引(不含,默认输出全部)。

-

MatMulInteger

功能描述

对两个量化后的整数矩阵进行乘积运算,计算 Y = (A - a_zero_point) * (B - b_zero_point)。

参数说明

表 1 MatMulInteger参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

A

input

tensor (int8/uint8)

量化的左输入矩阵。

-

B

input

tensor (int8/uint8)

量化的右输入矩阵。

-

a_zero_point

input

tensor (int8/uint8)

输入A量化零点,可选输入,默认值为0。

-

b_zero_point

input

tensor (int8/uint8)

输入B量化零点,可选输入,默认值为0。

-

Y

output

tensor (int32)

去量化乘积结果输出矩阵。

-

QLinearMatMul

功能描述

对两个INT8量化张量执行矩阵乘法,并使用输出量化参数将INT32累加结果重新量化为INT8输出。计算过程如下:

acc = Σ((a - a_zero_point) × (b - b_zero_point))

y = saturate(round_to_nearest_even(acc × a_scale × b_scale / y_scale) + y_zero_point)

该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 10及以上版本。转换时复用MatMulFusion算子及其INT8 Micro实现。

参数说明

表 1 QLinearMatMul参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

a

input

tensor (int8)

左输入量化张量。

仅支持INT8和2D/3D/4D静态形状。

a_scale

input

tensor (float32)

输入a的量化缩放因子。

必须是有限正数和常量标量,仅支持per-tensor量化。

a_zero_point

input

tensor (int8)

输入a的量化零点。

必须是常量标量。

b

input

tensor (int8)

右输入量化张量。

仅支持INT8和2D/3D/4D静态形状;倒数第二维必须与a的最后一维匹配,不支持批次维广播。

b_scale

input

tensor (float32)

输入b的量化缩放因子。

必须是有限正数常量;支持标量per-tensor量化,或长度等于b最后一维的1D per-column量化。

b_zero_point

input

tensor (int8)

输入b的量化零点。

必须为常量,形状与b_scale一致。

y_scale

input

tensor (float32)

输出y的量化缩放因子。

必须是有限正数和常量标量,仅支持per-tensor量化。

y_zero_point

input

tensor (int8)

输出y的量化零点。

必须是常量标量。

y

output

tensor (int8)

重新量化后的矩阵乘法结果。

仅支持INT8和2D/3D/4D静态形状。

说明: a、b和y仅支持INT8,不支持UINT8。所有scale和zero point必须在模型转换时可确定,且每组scale和zero point的元素个数必须一致。输入a和输出y仅支持per-tensor量化;输入b支持per-tensor或按输出列per-column量化。

当模型使用QuantizeLinear和DequantizeLinear作为浮点网络与QLinearMatMul之间的边界时,边界算子仅支持常量标量float32 scale和常量标量int8 zero point,转换后分别作为FP32到INT8、INT8到FP32的QuantDTypeCast执行。

QLinearMatMul源图已经包含量化参数,转换时不能再次启用全量化,否则转换器会按重复量化处理并终止转换。

GatherND

功能描述

根据indices中的多维坐标,从data中收集元素或切片。设索引深度为D=indices.shape[-1],输出shape为indices.shape[:-1]+data.shape[D:],输出数据类型与data一致。

该算子仅支持ONNX格式和RISCV Micro目标,source entry为ONNX GatherND,转换后映射为GatherNd。支持FP32、INT32、BOOL数据通路;float32模型可通过全量化生成INT8数据通路。

参数说明

表 1 GatherND参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor (float32/int32/bool/int8)

被收集元素或切片的数据张量。

必须为静态形状,rank不超过16;float32模型支持非量化和全量化INT8通路。

indices

input

tensor (int32/int64)

多维索引张量,最后一维保存索引元组。

必须为静态形状;rank(indices)必须大于等于1且不超过16;D必须大于0且小于等于rank(data);坐标值必须大于等于0且小于data对应维度大小。

output

output

tensor

按索引元组收集得到的元素或切片,数据类型与data一致。

必须为静态形状;shape为indices.shape[:-1]+data.shape[D:];输出元素数、步长和偏移量必须在有符号32位整数范围内。

说明: GatherND无属性。indices仅用于定位数据,不参与量化;INT8通路来自float32模型的全量化转换,不支持将indices量化。

关键场景分析

使用场景

什么时候会遇到

软件行为与限制

ONNX基本GatherND

ONNX模型导出GatherND

按indices最后一维表示的多维坐标从data收集元素或切片。

收集标量元素

D等于rank(data)

输出shape为indices.shape[:-1]。

收集尾部切片

D小于rank(data)

输出shape为indices.shape[:-1]+data.shape[D:]。

全量化int8通路

float32模型 + FULL_QUANT

data/output使用INT8通路,indices保持INT32或INT64,不参与量化。

不支持规格命中

indices为负数、越界、D大于rank(data)、shape非静态或中间计算溢出INT32

转换期或运行期报错,不生成有效结果。

Scatter

功能描述

先复制data得到输出,再沿axis使用indices指定的位置,以updates中的对应值进行覆盖。该算子转换后复用ScatterElements及其Micro实现。

该算子仅支持ONNX格式和RISCV Micro目标,适用于ONNX Opset 9和10;ONNX从Opset 11起已废弃Scatter,建议新模型使用ScatterElements。支持FP32和全量化INT8通路。

参数说明

表 1 Scatter参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor (float32/int8)

提供输出初值的数据张量。

必须为静态形状,rank为1~16;支持FP32和全量化INT8。

indices

input

tensor (int32/int64)

指定axis维上的目标位置。

必须与data具有相同rank,并与updates形状完全一致;索引范围为[-data.shape[axis], data.shape[axis]-1]。

updates

input

tensor (float32/int8)

覆盖目标位置的新值。

数据类型通路与data一致,形状必须与indices一致;除axis外,各维大小不能超过data对应维度。

axis

attribute

int

指定执行离散更新的维度。

默认0,范围为[-rank(data), rank(data)-1]。

output

output

tensor (float32/int8)

完成覆盖更新后的结果。

形状与data一致。

说明: Scatter仅支持覆盖语义。负索引按对应维度从尾部计数;索引越界时运行失败。相同输出位置不应出现重复索引,否则最终覆盖值依赖更新顺序。

ScatterElements

功能描述

先复制data得到输出,再逐元素读取indices,在axis维替换当前坐标,并使用updates中的对应元素覆盖该输出位置。

该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 11及以上版本,支持FP32和全量化INT8通路。

参数说明

表 1 ScatterElements参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor (float32/int8)

提供输出初值的数据张量。

必须为静态形状,rank为1~16;支持FP32和全量化INT8。

indices

input

tensor (int32/int64)

逐元素指定axis维上的目标位置。

必须与data具有相同rank,并与updates形状完全一致;索引范围为[-data.shape[axis], data.shape[axis]-1]。

updates

input

tensor (float32/int8)

覆盖目标位置的新值。

数据类型通路与data一致,形状必须与indices一致;除axis外,各维大小不能超过data对应维度。

axis

attribute

int

指定执行离散更新的维度。

默认0,范围为[-rank(data), rank(data)-1]。

reduction

attribute

string

指定重复位置的归约方式。

仅支持none;不支持add、mul、max和min。

output

output

tensor (float32/int8)

完成覆盖更新后的结果。

形状与data一致。

说明: ScatterElements仅支持reduction=none。负索引按对应维度从尾部计数;索引越界时运行失败。reduction=none时相同输出位置不应出现重复索引。

ScatterND

功能描述

先复制data得到输出,再将indices最后一维表示的K维坐标作为目标位置,使用updates覆盖对应元素或完整尾部切片。updates.shape必须等于indices.shape[:-1]+data.shape[K:]。

该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 11及以上版本,支持FP32和全量化INT8通路。转换时映射为ScatterNdUpdate及其Micro实现。

参数说明

表 1 ScatterND参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor (float32/int8)

提供输出初值的数据张量。

必须为静态形状,rank为1~16;支持FP32和全量化INT8。

indices

input

tensor (int32/int64)

多维索引张量,最后一维保存K维坐标元组。

必须为静态形状,rank为1~16;K必须大于0且不超过data的rank;每维索引范围为[-data.shape[i], data.shape[i]-1]。

updates

input

tensor (float32/int8)

覆盖目标元素或尾部切片的新值。

数据类型通路与data一致,必须为静态形状,shape等于indices.shape[:-1]+data.shape[K:]。

reduction

attribute

string

指定重复位置的归约方式。

仅支持none;不支持add、mul、max和min。

output

output

tensor (float32/int8)

完成覆盖更新后的结果。

形状与data一致。

说明: ONNX ScatterND包含data、indices和updates三个输入,与TFLite ScatterND的indices、updates、shape输入形式不同。负索引按对应维度从尾部计数;索引越界时运行失败。reduction=none时不应使用重复索引。INT8通路仅支持per-tensor量化。

TopK

功能描述

获取输入张量中沿指定维度前K个最大值,并返回其值及对应的索引。

参数说明

表 1 TopK参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度不限制。

规格约束:不支持int64

K

input

tensor (int64)

需要获取的TopK个数,标量。

-

Values

output

tensor

TopK值张量,axis维度为K。

-

Indices

output

tensor (int64)

TopK值的索引张量,axis维度为K。

-

axis

attribute

int

指定选取TopK的维度(默认-1,即最后一维)。

-

largest

attribute

int

控制返回最大值(1)还是最小值(0)。

默认1

sorted

attribute

int

控制返回结果是否按序排列(1)或不排序(0)。

默认1

Erf

功能描述

对输入张量逐元素计算高斯误差函数值。

参数说明

表 1 Erf参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

output

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

HardSigmoid

功能描述

对输入张量做HardSigmoid激活函数运算。公式为:Y=max(0, min(1, α·X+β))

参数说明

表 1 HardSigmoid参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

alpha

attribute

float

激活曲线斜率调控系数,默认值0.2。

-

beta

attribute

float

激活曲线偏移调控系数,默认值0.5。

-

Celu

功能描述

对输入张量做Celu激活函数运算。公式为:Y=max(0, x)+min(0, α·(exp(x/α)-1))

参数说明

表 1 Celu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

Y

output

tensor

输出张量,维度为2D/3D/4D,格式分别为ND/NCW/NCHW。

-

alpha

attribute

float

Celu负值区间系数,默认值1.0。

规格约束:alpha>0。

Selu

功能描述

对输入张量逐元素执行缩放指数线性激活。计算公式如下:

y = gamma × x, x > 0

y = gamma × alpha × (exp(x) - 1), x <= 0

该算子仅支持ONNX格式,转换时复用Activation算子。支持FP32和全量化INT8通路;INT8通路使用256项查找表执行。

参数说明

表 1 Selu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32/int8)

待执行Selu激活的输入张量。

逐元素计算;支持FP32和全量化INT8通路。

alpha

attribute

float

控制负值区间的指数缩放。

可选,默认值为1.6732631921768188。

gamma

attribute

float

控制整体输出缩放。

可选,默认值为1.0507009873554805。

Y

output

tensor (float32/int8)

Selu激活结果。

数据类型和形状与对应执行通路的输入一致。

说明: 全量化INT8通路使用per-tensor输入和输出量化参数,在模型转换阶段生成覆盖全部INT8输入值的查找表。

Max

功能描述

对输入的多个张量在对应位置取最大值。

参数说明

表 1 Max参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data_0

input

varList(tensor)

输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。

输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐

max

output

tensor

输出张量,维度为广播后的最大维度。

-

Min

功能描述

对输入的多个张量在对应位置取最小值。

参数说明

表 1 Min参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data_0

input

varList(tensor)

输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。

输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐

min

output

tensor

输出张量,维度为广播后的最大维度。

-

Sum

功能描述

对输入的多个张量在对应位置逐元素求和。

参数说明

表 1 Sum参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data_0

input

tensor

输入张量列表(≥1),维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。

输入张量数量可变(1 至 N),维度可不一致,遵循多方向广播规则对齐;仅支持浮点类型

sum

output

tensor

输出张量,维度为广播后的最大维度。

-

Constant

功能描述

静态常量生成算子,输出一个由属性指定的常量张量,其值和形状在模型定义时确定,推理时不发生变化。该算子无输入,仅有一个输出,通过属性指定常量值。仅有ONNX规格。

参数说明

表 1 Constant参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

output

output

tensor

输出常量张量。

形状和数据类型由 value 属性完全确定

value

attribute

tensor

常量张量的值(通用形式)。

支持任意形状和数据类型的张量

value_float

attribute

float

标量 float32 常量值。

等价于 0D 张量

value_floats

attribute

float[]

1D float32 常量值列表。

等价于 1D 张量

value_int

attribute

int

标量 int64 常量值(lite支持int32)。

等价于 0D 张量

value_ints

attribute

int[]

1D int64 常量值列表。

等价于 1D 张量

说明: 必须且只能指定以上属性(value/value_float/value_floats/value_int/value_ints)中的一个来定义常量值。

ConstantOfShape

功能描述

常量填充算子,根据输入张量指定的目标形状,生成一个所有元素值均相同的常量张量。仅有ONNX规格。

参数说明

表 1 ConstantOfShape参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor(int64)

1D int64 张量,指定输出张量的各维度大小。

维度值均大于 0,维度数 1~8(lite支持1~4)

output

output

tensor

按目标形状生成的常量填充张量。

数据类型由 value 属性的 TensorProto 推断

value

attribute

tensor

填充常量值(TensorProto),默认值标量 0(float32)。

可选;省略时填充 0,类型为 float32

ReduceProd

功能描述

沿指定轴计算输入张量所有元素的乘积。

参数说明

表 1 ReduceProd参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

data

input

tensor

输入数据张量,维度为 2D/3D/4D,ND/NCW/NCHW 数据排布。

-

axes

input

tensor

1D 张量,指定归约轴列表,范围 [-r, r-1](r = rank(data))。

不提供或为空时,由 noop_with_empty_axes 控制行为

reduced

output

tensor

归约后的输出张量。

shape 取决于 axes、keepdims 和 noop_with_empty_axes

keepdims

attribute

int

是否保持归约轴维度(大小为 1),默认值 1(true)。

0:消除维度;1:保持维度

noop_with_empty_axes

attribute

int

空 axes 时的行为控制,默认值 0。

0:归约所有轴;1:不归约(恒等输出)

Hardmax

功能描述

沿指定维度选取第一个最大值所在位置,输出与输入同形状的one-hot张量:第一个最大值位置为1,其余位置为0。

参数说明

说明: Hardmax算子不支持量化。

表 1 Hardmax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度不限制。

-

axis

attribute

int

指定选取最大值的维度(默认-1,即最后一维)。

规格约束:-r<=axis<=r-1,r为输入张量的秩。默认为-1

Y

output

tensor

输出张量,与输入同形状:沿axis的第一个最大值位置为1,其余为0。

-

Where

功能描述

根据条件张量从两个输入张量中逐元素选择输出:条件为true时取X中对应元素,否则取Y中对应元素;condition、X、Y支持广播。

参数说明

表 1 Where参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

condition

input

tensor

条件张量,维度不限制。

规格约束:数据类型为bool

X

input

tensor

条件为true时选择的输入张量。

-

Y

input

tensor

条件为false时选择的输入张量。

-

output

output

tensor

输出张量,形状为三输入按广播规则对齐后的形状。

-

ConvInteger

功能描述

对量化后的整数输入张量和卷积核执行卷积运算,计算 Y = (X - x_zero_point) * (W - w_zero_point),输出int32类型的整数累加结果。

参数说明

表 1 ConvInteger参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (uint8)

量化的输入张量,格式为NCHW。

规格约束:维度为4D,仅支持uint8

W

input

tensor (uint8)

量化的卷积核。

规格约束:维度为4D,形状为[M, C/group, kH, kW],仅支持uint8

x_zero_point

input

tensor (uint8)

输入X的量化零点,可选输入,默认值为0。

规格约束:元素个数必须为1,不支持逐通道零点

w_zero_point

input

tensor (uint8)

卷积核W的量化零点,可选输入,默认值为0。

规格约束:元素个数必须为1,不支持逐通道零点

Y

output

tensor (int32)

整数累加卷积结果,格式为NCHW。

规格约束:维度为4D,形状为[N, M, H_out, W_out],仅支持int32

auto_pad

attribute

string

指定padding的类型。

配置范围:NOTSET、VALID、SAME_UPPER、SAME_LOWER;默认NOTSET;非NOTSET时不支持同时配置pads

dilations

attribute

list(int)

卷积核在各空间轴上的扩张系数。

规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]

group

attribute

int

在输入输出channel上划分的分组个数。

规格约束:必须大于等于1,并能整除输入和输出通道数;默认1

kernel_shape

attribute

list(int)

卷积核的空间尺寸。

规格约束:包含2个元素,配置时必须与W的空间维度一致;默认从W推导

pads

attribute

list(int)

输入空间维度各轴前后的填充量。

规格约束:包含4个非负元素[top, left, bottom, right],仅在auto_pad为NOTSET时生效;默认[0, 0, 0, 0]

strides

attribute

list(int)

卷积核在各空间轴上的移动步长。

规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]

QLinearConv

功能描述

对INT8量化输入和INT8量化权重执行二维卷积,并使用输出量化参数将INT32累加结果重新量化为INT8输出。计算过程如下:

acc = Σ((x - x_zero_point) × (w - w_zero_point)) + B

y = saturate(round_to_nearest_even(acc × x_scale × w_scale / y_scale) + y_zero_point)

该算子仅支持ONNX格式和RISCV Micro目标,支持ONNX Opset 10及以上版本。转换时复用Conv2DFusion算子及其INT8 Micro实现。

参数说明

表 1 QLinearConv参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

x

input

tensor (int8)

量化输入张量,格式为NCHW。

仅支持INT8和4D二维卷积输入。

x_scale

input

tensor (float32)

输入x的量化缩放因子。

必须是有限正数和常量标量,仅支持per-tensor量化。

x_zero_point

input

tensor (int8)

输入x的量化零点。

必须是常量标量。

w

input

tensor (int8)

量化卷积权重。

必须是常量4D张量,形状为[M, C, kH, kW];M为输出通道数。

w_scale

input

tensor (float32)

权重w的量化缩放因子。

必须是有限正数常量;支持标量per-tensor量化,或长度等于M的1D per-output-channel量化。

w_zero_point

input

tensor (int8)

权重w的量化零点。

必须为常量,形状与w_scale一致。

y_scale

input

tensor (float32)

输出y的量化缩放因子。

必须是有限正数和常量标量,仅支持per-tensor量化。

y_zero_point

input

tensor (int8)

输出y的量化零点。

必须是常量标量。

B

input

tensor (int32)

可选偏置。

必须是常量1D张量,元素个数等于M;省略时按全0偏置处理。偏置scale为x_scale与对应w_scale的乘积,zero point为0。

y

output

tensor (int8)

重新量化后的卷积结果,格式为NCHW。

仅支持INT8和4D输出。

auto_pad

attribute

string

指定padding类型。

仅支持NOTSET。

dilations

attribute

list(int)

卷积核在两个空间轴上的扩张系数。

包含2个元素,每个元素大于等于1;默认[1, 1]。

group

attribute

int

输入和输出通道的分组数。

仅支持1。

kernel_shape

attribute

list(int)

卷积核的空间尺寸。

包含2个元素,配置时必须与w的[kH, kW]一致;默认从w推导。

pads

attribute

list(int)

输入空间维度各轴前后的填充量。

包含4个非负元素[top, left, bottom, right];仅在auto_pad为NOTSET时生效,默认[0, 0, 0, 0]。

strides

attribute

list(int)

卷积核在两个空间轴上的移动步长。

包含2个元素,每个元素大于等于1;默认[1, 1]。

说明: x、w和y仅支持INT8,不支持UINT8。所有scale和zero point必须在模型转换时可确定,且每组scale和zero point的元素个数必须一致。输入x和输出y仅支持per-tensor量化;权重w支持per-tensor或按输出通道per-output-channel量化。

当模型使用QuantizeLinear和DequantizeLinear作为浮点网络与QLinearConv之间的边界时,边界算子仅支持常量标量float32 scale和常量标量int8 zero point,转换后分别作为FP32到INT8、INT8到FP32的QuantDTypeCast执行。

QLinearConv源图已经包含量化参数,转换时不能再次启用全量化,否则转换器会按重复量化处理并终止转换。

OneHot

功能描述

将整数类别索引张量展开为OneHot编码张量,在axis指定的位置插入深度维。该算子与布局无关,不进行NCHW/NHWC转换。

参数说明

表 1 OneHot参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

indices

input

tensor (int32)

待编码的类别索引张量。

维度不限制;[-depth, -1]范围内的负索引加depth后编码,其他越界索引对应的输出切片全部为off值

depth

input

tensor (int32)

OneHot编码深度。

规格约束:必须为标量

values

input

tensor (float32)

指定关闭值和开启值,顺序为[off_value, on_value]。

规格约束:必须包含2个元素

output

output

tensor (float32/int8)

OneHot编码结果。

输出秩为indices秩加1,axis维度大小为depth;非量化输出为float32,全量化输出为int8

axis

attribute

int

深度维的插入位置。

负值加rank(indices)+1进行归一化,归一化后的配置范围为[0, rank(indices)];默认-1

ThresholdedRelu

功能描述

对输入张量逐元素执行阈值过滤。当输入值严格大于alpha时保留原值,否则输出0;输入值等于alpha时输出0。该算子与布局无关,输出形状和格式与输入一致。

参数说明

表 1 ThresholdedRelu参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32/int8)

待执行阈值过滤的输入张量。

规格约束:维度为1D/2D/3D/4D;源模型仅支持float32,全量化通路为int8;不支持float16、float64、bfloat16

Y

output

tensor (float32/int8)

阈值过滤结果张量。

输出形状和数据类型与输入一致

alpha

attribute

float

阈值,仅严格大于该值的输入元素保留原值。

可选属性,默认1.0;支持0、负值和大于1的值

Unique

功能描述

对输入张量进行去重。省略axis时按行主序展平输入并比较标量元素;配置axis时沿指定轴比较完整子张量。

参数说明

说明: Unique算子支持float32/int8,不支持量化。

表 1 Unique参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32/int8/uint8)

待去重的输入张量。

规格约束:维度为1D/2D/3D/4D且形状必须静态,不支持动态秩、动态轴和逐通道量化;float64、int64源模型分别归一化为float32、int32运行

Y

output

tensor (与X相同)

唯一值或唯一子张量。

展平模式输出为1D;axis模式保持输入秩及非轴维度,所选轴收缩为唯一个数;变长输出,必须作为图的终端输出;全量化时继承X的量化参数

indices

output

tensor (int64语义)

每个唯一结果在输入中首次出现的位置,可选输出。

长度为唯一个数;运行时归一化为int32表示;变长输出,必须作为图的终端输出

inverse_indices

output

tensor (int64语义)

每个展平元素或轴位置到唯一结果下标的映射,可选输出。

长度为展平元素总数或所选轴长度;运行时归一化为int32表示

counts

output

tensor (int64语义)

每个唯一结果的出现次数,可选输出。

长度为唯一个数;运行时归一化为int32表示;变长输出,必须作为图的终端输出

axis

attribute

int

指定比较完整子张量的轴。

可选属性;省略时展平输入;配置范围为[-rank(X), rank(X)-1],负值按输入秩归一化

sorted

attribute

int

指定唯一结果的输出顺序。

配置范围:0、1;默认1。1表示按字典序升序输出,0表示保持首次出现顺序

Softsign

功能描述

对输入张量逐元素执行Softsign激活函数运算。公式为:Y=X/(1+|X|)。输出与输入形状相同,输出值范围为(-1, 1)。

参数说明

表 1 Softsign参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度不限制。

模型数据类型为float32;支持FP32和全量化INT8转换。

Y

output

tensor

输出张量,与输入形状相同。

输出数据类型与输入一致。

Softplus

功能描述

对输入张量逐元素执行Softplus激活函数运算。公式为:Y=ln(exp(X)+1)。输出与输入形状相同。

参数说明

表 1 Softplus参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor

输入张量,维度不限制。

模型数据类型为float32;支持FP32和全量化INT8转换。

Y

output

tensor

输出张量,与输入形状相同,每个元素为对应输入元素的Softplus计算结果。

输出数据类型与输入一致。

LogSoftmax

功能描述

沿axis指定的维度计算输入张量的对数归一化概率。对于该维度中的每个元素,计算公式为:Yi=Xi-log(Σjexp(Xj))。输出张量的形状和格式与输入相同。

参数说明

表 1 LogSoftmax参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

input

input

tensor

输入张量,维度为1D~5D。

模型数据类型为float32;支持FP32和全量化INT8转换。

output

output

tensor

输出张量,形状和格式与输入相同。

模型输出数据类型与输入一致。

axis

attribute

int

LogSoftmax的计算轴;负值从最后一维反向计数。

默认值为-1;-rank(input)<=axis<rank(input),rank为输入张量的秩。

ConvTranspose

功能描述

转置卷积(反卷积)算子,用于上采样。输出空间维按ONNX规格公式计算:output_shape[i]=stride[i]×(input_size[i]-1)+output_padding[i]+((kernel_shape[i]-1)×dilations[i]+1)-pads[start_i]-pads[end_i]。

参数说明

说明: 支持group=1的标准反卷积,包括任意对称或非对称pads、步长 ≥ 1、膨胀 ≥ 1、auto_pad、output_padding以及可选偏置;支持FP32和全量化INT8转换,权重按输出通道逐通道量化。不支持output_shape属性、group大于1、int8模式下batch大于1以及非4D输入。

表 1 ConvTranspose参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32)

数据输入张量。

规格约束:维度为4D,NCHW排布,静态shape,batch=1

W

input

tensor (float32)

权重initializer。

规格约束:形状为[C_in, C_out/group, kH, kW]

B

input

tensor (float32)

可选偏置输入,默认无。

规格约束:形状为[C_out],存在时节点为三输入

Y

output

tensor (float32/int8)

转置卷积输出张量。

规格约束:形状为[N, C_out, oH, oW],oH/oW按功能描述中的公式计算;支持FP32和全量化INT8转换

auto_pad

attribute

string

指定padding的类型。

配置范围:NOTSET、VALID、SAME_UPPER、SAME_LOWER;默认NOTSET;非NOTSET时不支持同时配置pads

dilations

attribute

list(int)

卷积核在各空间轴上的扩张系数。

规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]

group

attribute

int

在输入输出channel上划分的分组个数。

规格约束:默认1;group大于1(含深度反卷积)不支持

kernel_shape

attribute

list(int)

卷积核的空间尺寸。

规格约束:包含2个元素,配置时必须与W的空间维度一致;默认从W推导

output_padding

attribute

list(int)

输出附加尺寸,用于微调输出大小。

规格约束:包含2个元素,每个元素小于对应维度的stride;默认[0, 0]

output_shape

attribute

list(int)

显式输出形状。

规格约束:不支持,解析阶段直接报错;应改用显式pads导出模型

pads

attribute

list(int)

输入空间维度各轴前后的填充量。

规格约束:包含4个非负元素[top, left, bottom, right],支持任意对称或非对称补边;默认[0, 0, 0, 0]

strides

attribute

list(int)

卷积核在各空间轴上的移动步长。

规格约束:包含2个元素,每个元素大于等于1;默认[1, 1]

RNN

功能描述

循环神经网络算子,计算一层简单循环网络,对时间步t逐拍更新隐状态并输出:Ht=activation(Xt·WT+Ht-1·RT+Wb+Rb)。其中Xt为当前时间步输入,W为输入权重,R为循环权重,Wb/Rb为对应偏置(可省略,缺省为零);clip属性存在时在激活之前把括号内求和值裁剪到[-clip, +clip]。每个方向维护独立的权重与隐状态。

参数说明

说明: 模型数据类型仅支持float32,RISCV平台支持FP32与全量化INT8,x86平台仅支持FP32,不支持INT8量化。必须同时输出Y与Y_h。仅支持layout=0(时间步在前的布局),layout=1(批在前的布局)不支持。TFLite无对应builtin算子,不支持转换。

表 1 RNN参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor (float32)

输入序列张量。

规格约束:layout=0时形状为[seq, batch, input]

W

input

tensor (float32)

输入权重。

规格约束:形状为[direction, hidden, input],须为常量

R

input

tensor (float32)

循环权重。

规格约束:形状为[direction, hidden, hidden],须为常量

B

input

tensor (float32)

可选偏置输入,默认无;前hidden个元素为Wb,后hidden个元素为Rb。

规格约束:形状为[direction, 2*hidden],缺省为零

sequence_lens

input

tensor (int32)

可选输入,每个批次的有效时间步,默认无。

规格约束:形状为[batch],规格强制int32

initial_h

input

tensor (float32)

可选输入,初始隐状态,默认无。

规格约束:layout=0时形状为[direction, batch, hidden]

Y

output

tensor (float32)

每个有效时间步的隐状态。

规格约束:layout=0时形状为[seq, direction, batch, hidden];无效时间步为0

Y_h

output

tensor (float32)

每个批次最后一个有效时间步的隐状态。

规格约束:layout=0时形状为[direction, batch, hidden];零长度批次为0;必须与Y同时输出

direction

attribute

string

RNN的方向。

配置范围:forward(正向)、reverse(反向)、bidirectional(双向);默认forward。双向时两个方向各自使用独立的权重和隐状态,结果沿方向维拼接

hidden_size

attribute

int

隐状态维度。

规格约束:必需属性,须与W/R形状一致

layout

attribute

int

输入输出的布局。

配置范围:0(时间步主序)、1(批主序);默认0;仅支持0

clip

attribute

float

激活前的对称裁剪值。

规格约束:大于等于0时生效,默认不裁剪

activations

attribute

list(string)

每个方向的激活函数。

配置范围:Tanh、Relu、Sigmoid、Affine、LeakyRelu、ThresholdedRelu、ScaledTanh、HardSigmoid、Elu、Softsign、Softplus;默认Tanh

activation_alpha

attribute

list(float)

带参数激活函数的alpha,每方向一个。

用于Affine、LeakyRelu、ThresholdedRelu、ScaledTanh、Elu等;未显式给出时按ONNX各激活默认值补齐

activation_beta

attribute

list(float)

带参数激活函数的beta,每方向一个。

用于Affine、ScaledTanh、HardSigmoid;未显式给出时按ONNX各激活默认值补齐

Neg

功能描述

对张量的每个元素做取负运算(符号取反),即 y = -x。

参数说明

表 1 Neg参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor(fp32)

输入张量,维度为2D/3D/4D,格式为ND/NCW/NCHW。

规格约束:不支持fp16/int32类型(Micro coder 未注册);不支持 rank>4

Y

output

tensor(fp32)

输出张量,维度与输入 X 相同,每个元素为 X 对应元素的相反数。

-

Pow

功能描述

计算两个张量的逐元素幂运算,X 为底数张量,Y 为指数张量,输出 Z = X^Y。支持 NumPy 风格广播。

参数说明

说明:

  1. Pow 无原生属性,转换时 MSLite 内部 scale=1.0, shift=0.0 等价于标准幂运算。支持广播特性,双向广播需在转换命令中明确配置 inputDataFormat 和 outputDataFormat 参数。

  2. 推荐使用 X ≥ 0 的输入组合确保结果确定性;X < 0 且 Y 为非整数时实数域无定义,输出值取决于底层数学库。

  3. INT8 量化仅支持 X ≥ 0 的输入,X < 0 时负数值在 int8 对称量化中将被映射为 0。

表 1 Pow参数概览

参数名

参数/输入输出

数据类型

参数含义

配置范围及规格约束说明

X

input

tensor(fp32/int8)

底数张量,维度为 1D/2D/3D/4D,格式为 ND/NCW/NCHW。

规格约束:最大维度 4D;支持 NumPy 广播;不支持fp16/fp64/int32/int64类型;INT8 不支持 X<0 的输入

Y

input

tensor(fp32/int8)

指数张量,维度为 1D/2D/3D/4D,与 X 广播兼容。

规格约束:最大维度 4D;不支持fp16/fp64/int32/int64类型

Z

output

tensor(fp32/int8)

输出张量,维度为 X 与 Y 的广播结果,格式为 ND/NCW/NCHW。

规格约束:最大维度 4D;不支持fp16/fp64/int32/int64类型