ActiveRotatedFilter
|
√
|
√
|
- 参数feature要求shape为5维,[*, *, num_orientations, h, w],支持fp16/fp32,不支持inf/nan等异常值
- 参数indices要求shape为4维,[num_orientations, h, w, *],只支持int32,不支持inf/nan等异常值,取值生成方式请参考mmrotate/orconv.py
|
AssignScoreWithK
|
-
|
-
|
-
|
BallQuery
|
-
|
√
|
- xyz:输入3D Tensor,支持fp16/fp32,shape为[M, K, 3],不支持inf/nan等异常值
- center_xyz: 输入3D Tensor,支持fp16/fp32,shape为[ M, B, 3],不支持inf/nan等异常值
- max_radius:输入最大半径,float
- min_radius: 输入最小半径,float
- sample_num: 输入最大采样点数,int
- idx:输出3D Tensor,支持int32,shape为[M, B, sample_num],不支持inf/nan等异常值
- center_xyz和xyz的差值需要在147.0以内,否则在计算距离时将会发生溢出,导致计算结果不正确
- max_radius的取值需要大于等于0,sample_num的取值需要大于等于1
|
BBoxOverlaps
|
-
|
√
|
- bboxes1: Tensor,支持fp32,shape为[M, 4],格式为<x1, y1, x2, y2>, <x1, y1>为左下角坐标,<x2, y2>为右上角坐标,小于1e8,不支持inf/nan等异常值
- bboxes1: Tensor,支持fp32,shape为[N, 4],格式为<x1, y1, x2, y2>, <x1, y1>为左下角坐标,<x2, y2>为右上角坐标,小于1e8,不支持inf/nan等异常值
- M > 0,N > 0,M与N不必相同
- x1 < x2, y1 < y2
|
BorderAlign
|
-
|
-
|
-
|
BoxIouRotated
|
√
|
√
|
- 输入bboxes1(N, 5),支持fp32,框数N不建议过大,尾轴5表征(x_center, y_center, width, height, angle),其中angle旋转角度采用弧度制,不支持inf/nan等异常值
- 输入bboxes2(M, 5),要求同bboxes1
- mode属性支持iou,aligned属性支持False,clockwise属性支持True
- 算子实现涉及三角函数计算,小数位超4位或存在精度误差
|
BoxIouQuadri
|
√
|
-
|
-
|
CARAFE
|
-
|
-
|
-
|
ChamferDistance
|
-
|
√
|
- xyz1:支持fp16,fp32,shape为[B, N, 3],不支持inf/nan等异常值
- xyz2:支持fp16,fp32,shape和xyz1保持一致
- 反向具有相同约束
|
CrissCrossAttention
|
-
|
-
|
-
|
ContourExpand
|
√
|
-
|
-
|
ConvexIoU
|
-
|
-
|
-
|
CornerPool
|
-
|
-
|
-
|
Correlation
|
-
|
-
|
-
|
Deformable Convolution v1/v2
|
√
|
√
|
- input:支持fp32,shape为[N, out_channels, H_in, W_in],input中的值不支持inf、nan等异常值
- offset:支持fp32,shape为[N, deform_groups * 2 * kH * kW, H_out, W_out],值域为[-1, 1]。其中,H_out = ( H_in - ( kH + ( kH - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1,W_out = ( W_in - ( kW + ( kW - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1
- weight:支持fp32,shape为[out_channels, in_channels, kH, kW]
- 参数deform_groups只支持等于1
- 反向具有相同约束
|
Deformable RoIPool
|
-
|
√
|
- x:Tensor,支持fp32,shape为[N, C, H, W],不支持inf/nan等异常值
- rois:Tensor,支持fp32,shape为[num_rois, 5],不支持inf/nan等异常值
- offset:Tensor,shape为[num_rois, 2, pooled_height, pooled_width],仅支持None
- spatial_scale:float属性,值域范围[0, 1],默认值1.0
- pooled_height和pooled_width:int属性,值域范围[0, 50]
- sampling_ratio:int属性,值域范围[0, 20],默认值0
- gamma:float属性,值域范围[0, 1],默认值0.1
- 反向具有相同约束
|
DiffIoURotated
|
-
|
-
|
-
|
DynamicScatter
|
-
|
√
|
- feats(Tensor):点云特征张量[N, C],仅支持两维,数据类型为float32,特征向量C长度上限为2048,不支持inf/nan等异常值
- coors(Tensor):体素坐标映射张量[N, 3],仅支持两维,数据类型为int32,此处以x、y、z指代体素三维坐标,其取值范围为0 <= x, y <= 2048, 0 <= z <= 256
- reduce_type(str):压缩类型。可选值为'max', 'mean', 'sum'。默认值为'max'
|
FurthestPointSample
|
-
|
√
|
- points:仅支持fp32,shape为[B, N, 3],不支持inf/nan等异常值
- numPoints: int,表征需要采样的点的,个数严格小于N
- 第一个输入points_xyz的shape(batch, N, 3)的维度的总大小(batch x N x 3)不应该超过383166
|
FurthestPointSampleWithDist
|
-
|
√
|
- points:支持fp32,shape为[B, N, N],值需要满足points[b, i, i] = 0,points[b, i, j ] = points[b, j, i],不支持inf/nan等异常值
- 参数num_points:支持int32,代表采样点个数,需要小于N
|
GatherPoints
|
-
|
√
|
- features输入shape为[ B, C, N],不支持inf/nan等异常值
- indices输入shape为[B, M],取值不能超过N,不支持inf/nan等异常值
- features和indices的B需要相同
|
GroupPoints
|
-
|
√
|
- features:支持数据类型fp32,shape为[B, C, N],其中C小于等于1024,不支持inf、nan等异常值
- indices:数据类型为int32,shape为[B, npoints, nsample],值域[0, N)
- 反向具有相同约束
|
Iou3d
|
-
|
√
|
- boxes :Shape必须为两维,且第二维必须为7,(N, 7),N < 10000,7维分别为([x, y, z, dx, dy, dz, heading]),其中dx, dy, dz代表长宽高,必须大于0,不支持inf/nan等异常值
- scores :Shape必须为一维,且第一维必须和boxes第一维相等,(N),只支持fp32,值域范围[0, 1]
- iou_threshold :float类型的属性,值域范围[0, 1]
|
KNN
|
-
|
√
|
- xyz:仅支持fp32,shape为[B, N , 3]或[B, 3, N],由transposed控制,每个batch中的任意一个点到center_xyz对应batch中的任意一个点的距离必须在1e10f以内,不支持inf/nan等异常值
- center_xyz:仅支持fp32,shape为[B, npoint , 3]或[B, 3, npoint],由transposed控制
- transposed:bool,当transposed=True,xyz的shape为[B, 3, N],center_xyz的shape为[B, 3, npoint]
- k:int,返回最近邻的个数,必须小于xyz中的数据量的大小N,必须大于0且小于100
|
MaskedConv
|
-
|
√
|
- input:支持fp32,shape为[N, C, H, W],其中N仅支持等于1,不支持inf/nan等异常值
- mask:支持fp32,shape为[N, H, W],其中N仅支持等于1,不支持inf/nan等异常值
- weight:支持fp32,shape为[C, C, kernel_size, kernel_size],不支持inf/nan等异常值
- bias:支持fp32,shape为[C],不支持inf/nan等异常值
- 参数bias默认为True,暂时不建议使用bias=False的情况
- 参数stride仅支持等于1
- 若卷积输出shape为[N, C, H_out, W_out],卷积参数需要满足H_out = H且W_out = W。其中,H_out = ( H - ( kernel_size + ( kernel_size - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1,W_out = ( W - ( kernel_size + ( kernel_size - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1
|
MergeCells
|
-
|
-
|
-
|
MinAreaPolygon
|
-
|
-
|
-
|
ModulatedDeformConv2d
|
√
|
√
|
- input:支持fp32,shape为[N, out_channels, H_in, W_in],input中的值不支持inf、nan等异常值
- offset:支持fp32,shape为[N, deform_groups * 2 * kH* kW, H_out, W_out],值域为[-1, 1]。其中,H_out = ( H_in - ( kH + ( kH - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1,W_out = ( W_in - ( kW + ( kW - 1 ) * ( dilation - 1 ) ) + 2 * padding ) / stride + 1
- mask:支持fp32,shape为[N, deform_groups * kH * kW, H_out, W_out]
- weight:支持fp32,shape为[out_channels, in_channels, kH, kW]
- bias:支持fp32,shape为[out_channels]
- 参数deform_groups只支持等于1
- 反向具有相同约束
|
MultiScaleDeformableAttn
|
-
|
√
|
- 输入value(bs, num_keys, num_heads, embed_dims):支持数据类型fp16,fp32,不支持inf/nan等异常值,其中参数num_keys = sum((H * W).item() for H, W in value_spatial_shapes),参数num_heads当前支持取值范围在4~8,参数embed_dims当前支持取值范围在32~256,且为8的倍数
- 输入value_spatial_shapes(num_levels, 2):支持数据类型int32,int64,为特征图宽和高,取值需要为正
- 输入value_level_start_index(num_levels, ):支持数据类型int32,int64,其构造逻辑为:value_level_start_index = torch.cat((value_spatial_shapes .new_zeros((1, )), value_spatial_shapes .prod(1).cumsum(0)[:-1]))
- 输入sampling_locations(bs, num_queries, num_heads, num_points, 2):支持数据类型fp16,fp32,为缩放系数,合理取值为大于0小于1.0,参数num_points当前支持取值范围在4~8
- 输入attention_weights(bs, num_queries, num_heads, num_points):支持数据类型fp16,fp32,不支持inf/nan等异常值,为加权权重
|
NMS
|
√
|
√
|
- boxes:Shape必须为两维,第二维必须为4,(N, 4),N < 10000,只支持float32,不支持inf/nan等异常值,且4维(x1, y1, x2, y2)必须满足 x1<x2,y1<y2
- scores:Shape必须为一维,且第一维必须和boxes第一维相等,(N),只支持float32,不支持inf/nan等异常值,并且不包含重复值
- iou_threshold:float类型的属性,值域为[0, 1]
- offset:int类型的属性,只能是0或者1
- score_threshold:float类型的属性,值域为[0, 1]
- max_num:int类型的属性,大于等于0
|
NMSRotated
|
√
|
√
|
- boxes:Tensor,支持fp32,shape为[N, 5],不支持inf/nan等异常值
- scores:Tensor,支持fp32,shape为[N],不支持inf/nan等异常值
- labels:Tensor,支持fp32,shape为[N],默认None
- iou_threshold:float属性,值域范围[0, 1]
- 角度处理存在精度损耗,临界场景存在一定概率取框偏差
|
NMSQuadri
|
√
|
-
|
-
|
PixelGroup
|
√
|
-
|
-
|
PointsInBoxes
|
√
|
√
|
- boxes输入shape为[ B, M, 7],不支持inf/nan等异常值
- pts输入shape为[B, npoints, 3],不支持inf/nan等异常值
- 输入数据类型仅支持fp32,boxes参数的最后一维的第7个数据(索引从1开始)是旋转角,需要计算cos和sin,接口约束取值范围必须在(-65504,65504)之间,boxes和pts只支持batch=1,且boxes的个数在200以内
|
PointsInPolygons
|
-
|
√
|
- points:Tensor,支持fp32,shape为[N, 2],N不超过2800,值域范围[10^(-10), 10^10]
- polygons:Tensor,支持fp32,shape为[M, 8],值域范围[10^(-10), 10^10],保证输入的四个点数据顺序是顺时针或者逆时针排列
- 不支持inf、nan等异常值
|
PSAMask
|
√
|
√
|
- input:输入shape为4维[M, N, P, Q],数据类型为float32/float64,不支持inf/nan等异常值
- psa_type:值为collect/distribute
- mask_size:数据类型为tuple:(i, j),其中满足i * j == N
- 反向具有相同约束
|
RotatedFeatureAlign
|
√
|
√
|
- x输入shape为[N,C,H,W],输入数据类型仅支持fp32,不支持inf/nan等异常值
- bboxes输入shape为[N,H,W,5],5表征中心点坐标、旋转框宽高与旋转角,输入数据类型仅支持fp32,不支持inf/nan等异常值
- spatial_scale为0-1之间,points取值1或5,默认值为1
- 反向具有相同约束
|
RoIPointPool3d
|
-
|
√
|
- num_sampled_points:int属性,值域范围(0, N)
- points:Tensor,支持fp16/fp32,shape为[B, N, 3],值域范围[2^(-63), 2^64],不支持inf/nan等异常值
- point_features:Tensor,支持fp16/fp32,shape为[B, N, C],其中C等于3,值域范围[2^(-63), 2^64],不支持inf/nan等异常值
- boxes3d:Tensor,支持fp16/fp32,shape为[B, M, 7],第三维前六个取值范围[2^(-63), 2^64],第七个值取值范围[0, π],不支持inf/nan等异常值
- 数据类型为float32时,建议B小于100、N小于等于2640、M小于等于48、num_sampled_points小于等于48,个别shape值略微超过建议值无影响,但所有shape值均大于建议值时,算子执行会发生错误
- 数据类型为float16时,建议B小于100、N小于等于3360、M小于等于60、num_sampled_points小于等于60,个别shape值略微超过建议值无影响,但所有shape值均大于建议值时,算子执行会发生错误
- N/M的值越大,性能劣化越严重,建议N小于M的六百倍,否则性能可能会严重下降
|
RoIPool
|
-
|
√
|
- input输入shape为[N,C,H,W],aicore目前只支持C轴为16倍数的情况,其余情况走aicpu,不支持inf/nan等异常值
- roi输入为(batch_id, x1, y1, x2, y2),其中H>x2>x1,W>y2>y1,N>batch_id保证框是有效的,不支持inf/nan等异常值
- spatial_scale为0-1之间
- 输入数据类型仅支持fp32,反向具有相同约束。由于fp32只能表示小数点后6位,因此部分场景存在精度问题,且支持输入的feature_map内不存在相同值,如果输入的feature_map内存在相同值无法保证输出的最大值索引唯一
- 反向具有相同约束
|
RoIAlignRotated
|
√
|
-
|
-
|
RiRoIAlignRotated
|
-
|
-
|
-
|
RoIAlign
|
√
|
√
|
- input: Tensor,fp32,shape为[N, C, H, W],不支持inf/nan等异常值
- rois: Tensor,fp32,shape为[B, 5], 其中,每一行的5个值中的第一个为对input首轴的索引,因此在[0, N-1], 其余四个为<x1, y1, x2, y2>, <x1, y1>为左下角的值,<x2,y2>为右上角的值,因此x1 < x2,y1 < y2
- output_size: int32二元组,表示h,w,大于0
- spatial_scale: fp32 值,大于0,默认为1.0
- sampling_ratio: int32值,默认为0
|
RoIAwarePool3d
|
-
|
-
|
-
|
SAConv2d
|
-
|
-
|
-
|
SigmoidFocalLoss
|
-
|
√
|
- pred:Tensor,支持fp32,shape为[N, M],需要满足M>1,输入值域范围[0, 1],不支持inf/nan等异常值
- target:Tensor,支持int64,shape为[N, ],值域范围[0, M],不支持inf/nan等异常值
- weight:Tensor,可选输入,支持fp32,shape为[M, ],值域范围[-1, 1],默认为None
- reduction:str属性,可选输入none,mean或sum,默认为mean,不支持inf/nan等异常值
- alpha:float属性,值域范围[0, 1],默认为0.25
- gamma:float属性,值域范围[0, 5],默认为2.0
- 反向增加如下约束:pred的shape为(N,M),需要满足,当N>1时,reduction取值不能为None
|
SoftmaxFocalLoss
|
-
|
√
|
SoftNMS
|
-
|
-
|
-
|
Sparse Convolution
|
-
|
-
|
-
|
Synchronized BatchNorm
|
-
|
-
|
-
|
ThreeInterpolate
|
-
|
√
|
- features:支持fp16和fp32,shape为[B, C, M],不支持inf/nan等异常值
- indices:支持int32,shape为[B, N, 3],值域为[0, M)
- weight:支持fp16和fp32,shape为[B, N, 3],值域为[0, 1]
- features、indices、weight三个参数数据大小请勿超过2^24
|
ThreeNN
|
-
|
√
|
- source:支持fp32和fp16,shape为[B, N , 3],不支持inf/nan等异常值
- target:支持fp32和fp16, shape为[B, npoint , 3],不支持inf/nan等异常值
|
TINShift
|
-
|
-
|
-
|
Voxelization
|
√
|
√
|
- input: Tensor,fp32类型,代表KITTI Points,shape为[N, F],其中F>=3,前三个值代表点云的x、y、z坐标,不支持inf/nan等异常值
- voxel_size: fp32,体素大小,3元组,代表x、y、z轴的体素大小
- point_cloud_range,fp32,点云范围,6元组,[coor_x_min, coor_y_min, coor_z_min,oor_x_max, coor_y_max, coor_z_max],因此,coor_x_min < coor_x_max,coor_y_min < coor_y_max,coor_z_min < coor_z_max
- max_num_points: int32,为-1或正整数
- max_voxels: int32,为-1或正整数
- 注意(coor_x_max-coor_x_min)/voxel_size_x <= 2048, (coor_y_max-coor_y_min)/voxel_size_y <= 2048, (coor_z_max-coor_z_min)/voxel_size_z <= 256
- 极少数场景因芯片指令ULP差异而精度无法与竞品对齐
|
PrRoIPool
|
-
|
-
|
-
|
BezierAlign
|
√
|
-
|
-
|