Reduce
函数功能
图像处理类算法,张量规约算法Reduce,支持float16、float32、uint8。支持异步调用,支持预加载(示例请参见“初始化算子预加载文件实例”章节)。不支持inplace操作。
当前支持Atlas 推理系列产品和Atlas 200I/500 A2 推理产品。
使用时需满足以下条件:
- 接口中的输入输出Tensor必须在Device或DVPP侧且各参数(stream及数据内存)需位于同一Device中。
- 同步场景下,数据内存所在Device需与初始化的Device一致。
- 请注意处理数据类型越界问题。
- 各输入、输出参数对应Tensor的类型一致且通道数一致,输入支持HW、NHWC和HWC,支持的通道数1~4。
- 在Atlas 推理系列产品上,当输入Tensor数据类型为float32或float16,尺寸在480P(640*480)以上时,Reduce计算性能优于cv::reduce在CPU上的性能。
- 在Atlas 200I/500 A2 推理产品上,当输入Tensor数据类型为float32或float16,尺寸在480P(480*640)时,Reduce计算性能优于cv::reduce在CPU上的性能。
函数原型
APP_ERROR Reduce(const Tensor &src, Tensor &dst, const MxBase::ReduceDim &rDim, const MxBase::ReduceType &rType, AscendStream& stream = AscendStream::DefaultStream());
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
src |
输入 |
Tensor类,输入张量,支持float16、float32、uint8类型输入,支持HW、HWC和NHWC维度输入,支持通道数为1~4。 |
dst |
输出 |
Tensor类,输出张量,支持float16、float32、uint8类型输出,支持传入空Tensor,如果dst不为空Tensor,需要调用Tensor.Malloc()接口提前分配内存。输出形状为输入形状消除规约轴之后的结果。例如输入Tensor为[2,32,16,3],规约轴为H,输出Tensor形状为[2,16,3]。 |
rDim |
输入 |
ReduceDim枚举类型,规约轴,支持规约高或者宽维度。具体请参见ReduceDim。 |
rType |
输入 |
ReduceType枚举类型,规约操作,支持求和、求平均、求最大值和求最小值。具体请参见ReduceType。 |
stream |
输入 |
AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作;其他情况下,接口为异步操作。 |
返回参数说明
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: TensorOperations