6.3.3. 模型算子支持列表
6.3.3.1. 使用限制说明
本Caffe 和 ONNX 算子
术语
BPU加速 :X5处理器
可以 进行 加速 的 算子(一定 约束条件 下),如果 不 满足 约束条件,则 会 在CPU进行 计算 CPU计算 :当前
已经 在X5处理器ARM CPU上 进行 优化 的 算子,支持onnx opset10与opset11。 CPU计算※ :暂时
未 集成 的CPU算子。
其他
X5所有BPU上
运行 的 算子 均 遵守 一般 限制:1. 输入输出 维度 均 为4,对于 支持 非 四维 情况 的op,会 在 约束 中 显性 标识; 2. shape:H,W,C ∈ [1, 65536],N <= 4096;3. N x C x H x W <= 1G bytes。 支持
Caffe 1.0基础算子 以及 常用 扩展 算子,支持onnx opset10和opset11算子,对于无法 满足BPU加速 约束条件 的 算子 将会 退化 到ARM CPU进行 计算。 Cast,Constant,Dropout,Reshape,Squeeze,Unsqueeze,Shape这些算子(OP)无法 直接 运行 在BPU上,但 在 一些 情况 下(常量 折叠)算法 工具链 会 将 其 优化 掉 进而 实现 支持 的 效果。 标记
为PyTorch的 算子(OP)为 官方 的opset11不 包含 的 算子,X5算法 工具链 提供 了 导出 脚本 可以 将 其 从PyTorch导出 到X5处理器 自定义 的onnx OP中。 基于tensorlfow-onnx(https://github.com/onnx/tensorflow-onnx)转换
工具,支持 将 tensorlfow1.*版本的 算子 稳定 的 转换 到opset6-opset11版本 的ONNX模型 格式,但是 Tensroflow2.*当前支持 还 属于 实验 版本。 关于OP主动
量化 被动 量化 的 说明:一个 符合 本 章节 约束条件 的OP仍然 运行 在CPU的 主要 原因 是 该OP属于 被动 量化OP,算法 工具链 会 根据OP的 计算 特性 和BPU底层 逻辑 等 多方面 考虑 设计 量化 逻辑,当前 量化 逻辑 分为:主动 量化,被动 量化,手动 量化。量化 逻辑 更 多 信息 请 阅读:算法 工具链 章节。中 的 主动 量化 和 被动 量化 逻辑
6.3.3.2. X5支持的Caffe算子列表
| caffe算子 |
CPU计算/BPU加速 | X5 BPU支持 |
CPU支持 |
|---|---|---|---|
| Convolution | BPU加速 | 限制 |
支持conv1d、conv2d、conv3d。 type约束 auto_pad属性 pads属性 - conv1d: [Dstart,Dend],pads长度 - conv2d:[Hstart,Wstart,Hend,Wend],pads长度 - conv3d:[Dstart,Hstart,Wstart,Dend,Hend,Wend],pads长度 |
| Deconvolution | BPU加速 | 限制 |
shape约束:仅 type约束:仅 attribute约束: - 仅 - pads属性 |
| MaxUnpool | CPU计算 | --- | from_type支持: - X:type约束:仅 - I:Tensor(int64)。 to_type支持:type约束:仅 |
| Pooling | BPU加速 | 共有 - MaxPooling: 该 kernel <= 256; stride <= 256; padding <= 256。 MaxPooling不 - AveragePooling: 限制 - GlobalAveragePooling: 无 - GlobalMaxPooling: H, W ∈ [1, 256]。 |
无 |
| SPP | CPU计算 | 不 |
支持pyramid_height,2^n 次pooling, n<7; pooling kernel 小于 支持pool,配置 |
| InnerProduct | BPU加速 | InnerProduct将 不 |
无 |
| LRN | CPU计算 | 不 |
local_size 支持。 alpha支持。 beta 支持。 norm_region 支持,配置 k 支持。 |
| MVN | CPU计算 | 不 |
normalize_variance支持,配置 across_channels支持,配置 仅 |
| BatchNorm | BPU加速 | 无 |
无 |
| ELU | BPU加速 | 1. 该 2. 输入输出 |
无 |
| BNLL | CPU计算 | 不 |
无 |
| PReLU | BPU计算 | 1. 该 2. 输入输出 |
- type约束 - from_type:X和slope。 - to_type:Y。 - X的shape为data_shape,slope的 - data_shape == slope_shape 。 - slope_shape.ProdSize() == 1 。 - X和slope仅 - HxW 与1x1( slope_shape )。 - HxW与Hx1( slope_shape )。 - HxW与1xW( slope_shape ) 。 - X是4维度 && slope是3维度 && data_shape[1] == slope_shape [0] && slope_shape [1] == 1 && slope_shape [2] == 1。 |
| ReLU/LeakyRelu | BPU加速 | 1. 该 2. 输入输出 |
无 |
| Sigmoid | BPU加速 | 1. 该 2. 输入输出 |
无 |
| TanH | BPU加速 | 1. 该 2. 输入输出 |
无 |
| Eltwise | BPU加速 | 目前 1. 该 2. 输入 3. 支持 4. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 |
无 |
| Bias | BPU加速 | 参考Eltwise等于Add的 |
无 |
| Scale | BPU加速 | 参考Eltwise等于Mul的 |
无 |
| AbsVal | BPU加速 | 1. 该 2. 输入输出 |
无 |
| Exp | BPU加速 | 1. 该 2. 输入输出 |
无 |
| Log | BPU加速 | 1. 该 2. 输入输出 |
无 |
| Power | BPU加速 | 1. 该 2. 输入输出 3. 第二个 |
无 |
| Threshold | CPU计算 | 不 |
无 |
| Reduction | CPU计算 | 不 |
operation 支持 SUM、ASUM、 SUMSQ、MEAN、Max、LogSum、Min、Prod; axis 支持; 仅 |
| Softmax | BPU加速 | 1. 该 2. 默认 |
无 |
| ArgMax | BPU加速 | 1. 仅 2. 不 3. 该 |
无 |
| Concat | BPU加速 | 1. 该 2. 不 |
无 |
| Split | BPU加速 | 1. 该 2. 原始 3. 支持 4. split数应 5. 支持 |
无 |
| Slice | BPU加速 | 1. 该 2. 无 |
无 |
| Reshape | BPU加速 | 1. 该 2. 支持1-10维 |
shape 支持[1,4]个 shape_dim 配置 ; axis 支持[-4,3]范围 num_axes 支持[-1,3]范围 |
| Flatten | CPU计算 | 不 |
axis 取值 只 |
| Crop | CPU计算 | 不 |
无 |
| Dropout | BPU加速 | 无 |
无 |
| LSTM | BPU加速 | 仅 |
-- |
| Normalize | CPU计算 | 不 |
type约束:仅 |
| PassThrough | BPU加速 | 支持mode=DCR 和 mode=CRD。 仅 举例:NxCxHxW -> Nx(4C)x(H/2)x(W/2)。 |
type约束:仅 |
| CReLU | CPU计算 | 不 |
type约束:仅 |
| RReLU | CPU计算 | 不 |
无 |
| Permute | BPU加速 | 1. 支持 2. 除batch维度(第一 |
- 支持nhwc2nchw,perm:[0, 3, 1, 2]。 - 支持nchw2nhwc,perm:[0, 2, 3, 1]。 - 支持 |
| MatMul | BPU加速 | C = MatMul(A,B),对 - A和B均 - A和B的 - A和B的 注:HDMK vs HDKN,MK/KN即 - 支持 - A 跟B两个 - 此 - 此 - A除了 - 此 - 此 - B除了 - 此 - 此 注:需要 - 如果A和B在 - 如果A和B在 |
type约束:仅 |
| Upsample | BPU加速 | 输入featuremap需为 放大系数factor不能 |
无 |
| ROIPooling | CPU计算 | 不 |
无 |
| PSROIPooling | CPU计算 | 不 |
无 |
6.3.3.3. X5支持的ONNX算子列表
| ONNX算子 |
CPU计算/BPU加速 | X5 BPU支持 |
CPU支持 |
|---|---|---|---|
| Abs | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Acos | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Acosh | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Add | BPU加速 | 1. 该 2. 输入 3. 支持 4. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 5. 作为resnet中 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| And | CPU计算 | -- | - 支持 - 支持 - 支持broadcast计算,最大 |
| ArgMax | BPU加速 | 1. 输入 2. N ∈ [1, 4096],H,W ∈ [1, 65536] ,C ∈ [1, 8191]。 3. 该 4. 仅 |
type约束:仅 |
| ArgMin | BPU加速 | 1. 输入 2. N ∈ [1, 4096],H,W ∈ [1, 65536] ,C ∈ [1, 8191]。 3. 该 4. 仅 |
type约束:仅 |
| Asin | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Asinh | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Atan | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Atanh | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| AveragePool | BPU加速 | kernel: H,W ∈ [1, 256] H * W <= 8192 ,H * W > 1 stride: H,W ∈ [1, 256]< br/>padding: H,W ∈ [0, 255] |
输入 |
| BatchNormalization | BPU加速 | 无 |
type约束:仅 支持 |
| BitShift | CPU计算※ | -- | -- |
| Cast | CPU计算 | -- | from_type支持double, float, bool, int64, uint32, int32, uint16, int16, uint8, int8。 to_type支持double, float, bool, int64, uint32, int32, uint16, int16, uint8, int8。 |
| Ceil | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Clip | BPU加速 | 1. 该 2. 输入输出 |
opset6: min, max作为 opset11: min, max作为 |
| Compress | CPU计算※ | -- | -- |
| Concat | BPU加速 | 1. 该 2. 不 |
-- |
| ConcatFromSequence | CPU计算※ | -- | -- |
| Constant | BPU加速 | 会 |
目前 |
| ConstantOfShape | BPU加速 | 会 |
type约束 |
| Conv | BPU加速 | 支持 四维 Kernel shape范围:N,C ∈ [1, 8192]; H,W ∈ [1, 31]。C * H * W < = 32767。 输入输出Channel取值 stride取值 Dilation取值 padding取值 五维 输入 kernel大小NCDHW:N,C ∈ [1, 65536]; H,W ∈ [1, 31], D ∈ [1, 8191]。 padding大小DHW:H,W ∈ [0, 256], D ∈ [0, kernel_d/2]。 stride取值 group,dilation暂 Size: 1G bytes;当D * C > 4096时, H * alignCeil(W, 256) * D * C < 1G。 weight的D * 输入 |
支持conv1d、conv2d、conv3d。 type约束 auto_pad属性 pads属性 - conv1d: [Dstart,Dend],pads长度 - conv2d:[Hstart,Wstart,Hend,Wend],pads长度 - conv3d:[Dstart,Hstart,Wstart,Dend,Hend,Wend],pads长度 |
| ConvInteger | CPU计算※ | -- | -- |
| ConvTranspose | BPU加速 | 输入输出featuremap大小 N ∈ [1, 128]。 H,W ∈ [1, 65536]。 C ∈ [1, 2048] 。 Size: 1G bytes。 weight大小 N,C ∈ [1, 2048]。 H,W ∈ [1, 14]且HW不 Size: psh = padding.h % stride.h; psw = padding.w % stride.w; ksh = (kernel.h - 1 + psh) / stride.h +1 ksw = (kernel.w - 1 + psw) / stride.w + 1 group_num = fout.c / kernel.c ksc = fin.c / group_num kernel_size = ksh * ksw * ksc kernel_size ∈ [1, 32767] padding取值 stride为 stride为 out_pad取值 stride >= 1 && stride <=14 但 Dilation ∈ {(1, 1)}。 |
shape约束:仅 type约束:仅 attribute约束: - 仅 - pads属性 |
| Cos | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Cosh | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| CumSum | CPU计算 | -- | axis:type约束 |
| DepthToSpace | BPU加速 | 该 支持mode=DCR 和 mode=CRD。 仅 举例:NxCxHxW -> Nx(C/4)x(2H)x(2W) 输出 |
from_type支持: - type约束 - 仅 to_type支持: - type约束 - 仅 |
| DequantizeLinear | CPU计算 | -- | -- |
| Det | CPU计算※ | -- | -- |
| Div | BPU加速 | 对input shape的 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| Dropout | BPU加速 | 该 |
-- |
| Einsum | CPU计算※ | -- | -- |
| Elu | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Equal | BPU加速 | 1. 该 2. 支持 3. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 4. 默认 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| Erf | BPU加速 | 1. 该 2. 输入输出 |
type约束:支持float数据类型。 |
| Exp | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Expand | BPU加速 | 1. 该 2. 输入输出 3. 输入 |
-- |
| EyeLike | CPU计算 | -- | -- |
| Flatten | BPU加速 | 限制 |
-- |
| Floor | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| GRU | CPU计算 | -- | - direction属性 - type约束:仅 |
| Gather | BPU加速 | 1. input/output/indices 的rank都 2. indices支持: - indices是feature(其他op输出)时,type约束 - indices是weight(模型 |
from_type支持: - input:type约束 float,int64,int32,int8,uint64,uint32,uint8。 - indices:type约束 to_type支持:type约束 float,int64,int32,int8,uint64,uint32,uint8。 |
| GatherElements | BPU加速 | 1. 该 2. input/indices/output维度 3. 当 |
-- |
| GatherND | CPU计算 | -- | from_type支持: - input:type约束 - indices:tensor(int64)。 to_type支持:type约束 |
| Gemm | BPU加速 | Gemm将 |
type约束:仅 |
| GlobalAveragePool | BPU加速 | 无 |
- type约束:仅 - 仅 |
| GlobalLpPool | CPU计算 | -- | - type约束:支持float和double类型。 - 仅 |
| GlobalMaxPool | BPU加速 | H, W ∈ [1, 256]。 | - type约束 - 仅 |
| Greater | BPU加速 | 1. 该 2. 支持 3. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 4. 默认 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| HardSigmoid | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Hardmax | CPU计算※ | -- | -- |
| Identity | CPU计算 | -- | -- |
| If | CPU计算※ | -- | -- |
| InstanceNormalization | CPU计算 | -- | - type约束 - 支持 |
| IsInf | CPU计算※ | -- | -- |
| IsNaN | CPU计算※ | -- | -- |
| LRN | CPU计算 | -- | - type约束 - 仅 |
| LSTM | BPU加速 | 仅 |
- type约束 - 属性 - 输入 - 支持X、W、R输入 - 支持X、W、R、B输入 - 支持X、W、R、B、sequence_lens、initial_h、initial_c、P输入 |
| LeakyRelu | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Less | BPU加速 | 1. 该 2. 支持 3. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 4. 默认 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| LessOrEqual | BPU加速 | opset11 不 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| Log | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| LogSoftmax | CPU计算 | -- | type约束:仅 |
| Loop | CPU计算※ | -- | -- |
| LpNormalization | CPU计算 | -- | - p范数 - type约束 |
| LpPool | CPU计算 | -- | - auto_pad属性 - type约束 - 仅 |
| MatMulInteger | CPU计算※ | -- | -- |
| MatMul | BPU加速 | C = MatMul(A,B),对 - A和B均 - A和B的 - A和B的 注:HDMK vs HDKN,MK/KN即 - 支持 - A跟B两个 - 此 - 此 - A除了 - 此 - 此 - B除了 - 此 - 此 注:需要 - 如果A和B在 - 如果A和B在 |
type约束:仅 |
| Max | BPU加速 | 1.该 2.支持 3.输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 |
- 支持1-∞个 - 支持 - 支持 - 支持broadcast计算,最大 |
| MaxPool | BPU加速 | 该 kernel <= 256。 stride <= 256。 padding <= 256。 MaxPool不 |
1. dilation只 2. 只 3. auto_pad属性 4. storage_order属性 5. 输入 |
| MaxRoiPool | CPU计算 | -- | 无 |
| Mean | CPU计算※ | -- | -- |
| Min | BPU加速 | 1.该 2.支持 3.输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 4. 默认 |
- 支持1-∞个 - 支持 - 支持 - 支持broadcast计算,最大 |
| Mod | CPU计算 | -- | -- |
| Mul | BPU加速 | 1. 该 2.输入 3. 支持 4. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| Multinomial | CPU计算※ | -- | -- |
| Neg | CPU计算 | -- | -- |
| Not | CPU计算 | -- | -- |
| OneHot | CPU计算 | -- | -- |
| Or | CPU计算 | -- | - 支持 - 支持 - 支持broadcast计算,最大 |
| PRelu | BPU加速 | 1. 该 2. 输入输出 |
- type约束 - from_type:X和slope。 - to_type:Y。 - X的shape为data_shape,slope的 - data_shape == slope_shape。 - slope_shape.ProdSize() == 1。 - X和slope仅 - HxW 与1x1( slope_shape )。 - HxW与Hx1( slope_shape )。 - HxW与1xW( slope_shape )。 - X是4维度 && slope是3维度 && data_shape[1] == slope_shape [0] && slope_shape [1] == 1 && slope_shape [2] == 1。 |
| Pad | BPU加速 | 1. 该 2. 支持mode = Constant。 3. 支持 |
Pad-10: - type约束 - 仅 - 属性pads的 - len(pads) == 8 && pads[i] >=0 && pads[0] == 0 && pads[1] == 0 && pads[4] == 0 && pads[5] == 0。 Pad-11: - from_type支持: - data:type约束 - pads : tensor(int64)。 - constant_value (optional):type约束 - to_type支持:type约束 - 输入 - 输入 |
| Pow | BPU加速 | 1. 该 2. 输入输出 3. 第二个 |
- type约束 - 支持 - 支持 - 支持broadcast计算,最大 - 仅 |
| QLinearConv | CPU计算※ | -- | -- |
| QLinearMatMul | CPU计算※ | -- | -- |
| QuantizeLinear | CPU计算 | -- | -- |
| RNN | CPU计算 | -- | - type约束:仅 - 属性 - 输入 - 输出 |
| RandomNormal | CPU计算※ | -- | -- |
| RandomNormalLike | CPU计算※ | -- | -- |
| RandomUniform | CPU计算 | -- | -- |
| RandomUniformLike | CPU计算 | -- | -- |
| Range | CPU计算 | -- | type约束 |
| Reciprocal | BPU加速 | 1. 该 2. 输入输出 |
-- |
| ReduceL1 | CPU计算 | -- | -- |
| ReduceL2 | CPU计算 | -- | -- |
| ReduceLogSum | CPU计算 | -- | -- |
| ReduceLogSumExp | CPU计算 | -- | type约束 |
| ReduceMax | BPU加速 | 1. 该 2. 输入 3. reduce维度 4. 仅 |
axes支持0, 1或者 |
| ReduceMean | BPU加速 | 1. 该 2. 输入 3. 当reduce维度=2时,支持 4. 仅 |
axes支持0, 1或者 |
| ReduceMin | CPU计算 | -- | -- |
| ReduceProd | CPU计算 | -- | -- |
| ReduceSum | BPU加速 | 1. 该 2. 输入 |
axes支持0, 1或者 |
| ReduceSumSquare | CPU计算 | -- | axes支持0, 1或者 |
| Relu | BPU加速 | 无 |
type约束:仅 |
| Reshape | BPU加速 | 1. 该 2. 支持1-10维 |
-- |
| Resize | BPU加速 | 1. 输入featuremap需为 2. 属性mode支持nearest和linear两种 3. 支持 4. 对于mode=nearest,放大系数factor支持2的 5. 对于onnx opset=11,属性coordinate_transformation_mode支持half_pixel,pytorch_half_pixel, asymmetric,align_corners和tf_crop_and_resize,当coordinate_transformation_mode=tf_crop_and_resize时,需要 |
resize-10 - 输入 - 输入 resize-11 - 输入 - 输入 - coordinate_transformation_mode在nearest, linear模式 - extrapolation_value属性 |
| ReverseSequence | CPU计算 | -- | -- |
| RoiAlign | CPU计算 | -- | -- |
| Round | BPU加速 | 1. 该 2. 输入输出 |
-- |
| Scan | CPU计算※ | -- | -- |
| Scatter (deprecated) | CPU计算※ | -- | -- |
| ScatterElements | CPU计算 | -- | from_type支持: - data:type约束 - indices:type约束 - updates:type约束 to_type支持:type约束 |
| ScatterND | CPU计算 | -- | from_type支持: - data:type约束 - updates : type约束 to_type支持:type约束 |
| Selu | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| SequenceAt | CPU计算※ | -- | -- |
| SequenceConstruct | CPU计算※ | -- | -- |
| SequenceEmpty | CPU计算※ | -- | -- |
| SequenceErase | CPU计算※ | -- | -- |
| SequenceInsert | CPU计算※ | -- | -- |
| SequenceLength | CPU计算※ | -- | -- |
| Shape | BPU加速 | 会 |
-- |
| Shrink | CPU计算※ | -- | -- |
| Sigmoid | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Sign | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Sin | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Sinh | BPU加速 | 1. 该 2. 输入输出 |
type约束 |
| Size | BPU加速 | 会 |
-- |
| Slice | BPU加速 | 1. 该 2. 无 |
无 |
| Softmax | BPU加速 | - 该 - 默认 1. 对于onnx::softmax,当该op输入 2. 对于pytorch::softmax, 当该op输入 |
type约束:仅 |
| Softplus | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Softsign | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| SpaceToDepth | BPU加速 | 1. 该 2. 支持mode=DCR 和 mode=CRD。 仅 举例:NxCxHxW -> Nx(4C)x(H/2)x(W/2) |
type约束:仅 |
| Split | BPU加速 | 1. 该 2. 原始 3. 支持 4. split数应 5. 支持 |
type约束:仅 |
| SplitToSequence | CPU计算※ | -- | -- |
| Sqrt | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| Squeeze | BPU加速 | 该op会 |
-- |
| StringNormalizer | CPU计算※ | -- | -- |
| Sub | BPU加速 | 1. 该 2. 输入 3. 支持 4. 输入输出 (1)将 (2)相邻 (3)相邻 (4)广播 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| Sum | BPU加速 | 限制 |
type约束:仅 |
| Tan | BPU加速 | 1. 该 2. 输入输出 |
type约束:支持float类型。 |
| Tanh | BPU加速 | 1. 该 2. 输入输出 |
type约束:仅 |
| TfIdfVectorizer | CPU计算※ | -- | -- |
| ThresholdedRelu | CPU计算 | -- | type约束:仅 |
| Tile | BPU加速 | 1. 该 2. 输入 |
type约束:仅 |
| TopK | BPU加速 | 1. 该 2. input/indices/output维度 3. indices type约束 4. 参数sorted只 |
- type约束:仅 |
| Transpose | BPU加速 | 1. 该 2. 支持 |
- 支持nhwc2nchw,perm:[0, 3, 1, 2]。 - 支持nchw2nhwc,perm:[0, 2, 3, 1]。 - 支持 |
| Unique | CPU计算※ | -- | -- |
| Unsqueeze | BPU加速 | 该op会 |
-- |
| Upsample (resize替代) | BPU加速 | -- | Upsample-(resize-10) - 输入 - 输入 Upsample-(resize-11) - 输入 - 输入 - coordinate_transformation_mode在nearest, linear模式 - extrapolation_value属性 |
| Where | CPU计算 | -- | type约束 condition的shape为cond_shape,X的shape为x_shape,Y的shape为y_shape ,output的shape为o_shape,shape约束 - 仅 - x_shape == o_shape的broadcast。 - y_shape == o_shape的broadcast。 - 仅 - 1x1(cond_shape)与HxW (o_shape)。 - Hx1(cond_shape)与HxW(o_shape)。 - 1xW(cond_shape)与HxW(o_shape)。 |
| Xor | CPU计算※ | -- | -- |
| Function | CPU计算※ | -- | -- |
| Celu | CPU计算※ | -- | -- |
| DynamicQuantizeLinear | CPU计算※ | -- | -- |
| GreaterOrEqual | BPU加速 | opset11 不 |
- 支持 - 支持 - 支持broadcast计算,最大 |
| MeanVarianceNormalization | CPU计算※ | -- | -- |
| GridSample(PyTorch) | BPU加速 | 1. 输入 2. mode只 3. padding_mode只 4. 该 from horizon_nn.api import export_onnx ... export_onnx(...) |