Reduce
Function Usage
Image processing algorithm, tensor reduce operation (Reduce). The float16, float32, and uint8 data types are supported. Asynchronous calling and preloading are supported. See Example of the Preloading File of the Initialization Operator.
It is supported by the Atlas inference product and
The following conditions must be met:
- The input and output tensors must be on the device or DVPP side, and the parameters (stream and data memory) must be on the same device.
- For synchronization, the device where the data memory is located must be the same as the initialized device.
- Handle the issue of out-of-range data type if any.
- The input supports HW, NHWC, and HWC, and the number of channels ranges from 1 to 4. The input and output parameters must match the tensor types and the number of channels.
- For the Atlas inference product, when the data type of the input tensor is float32 or float16 and the size is greater than 480p (640 x 480), the compute performance of Reduce is better than that of cv::reduce on the CPU.
- For the
Atlas 200I/500 A2 inference product , when the data type of the input tensor is float32 or float16 and the size is greater than 480p (640 x 480), the compute performance of Reduce is better than that of cv::reduce on the CPU.
Prototype
1 | APP_ERROR Reduce(const Tensor &src, Tensor &dst, const MxBase::ReduceDim &rDim, const MxBase::ReduceType &rType, AscendStream& stream = AscendStream::DefaultStream()); |
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
src |
Input |
Tensor of the float16, float32, or uint8 type. The HW, HWC, or NHWC dimension input is supported. The number of supported channels ranges from 1 to 4. |
dst |
Output |
Tensor class, output tensor, supporting float16, float32, and uint8 data types. An empty tensor can be passed. If dst is not an empty tensor, call Tensor.Malloc() to allocate memory in advance. The output shape is the result after the input shape eliminates the reduction axis. For example, if the input tensor is [2,32,16,3] and the reduction axis is H, the shape of the output tensor is [2,16,3], |
rDim |
Input |
ReduceDim enumeration type, which specifies the reduction axis. The height and width dimensions can be reduced. For details, see ReduceDim. |
rType |
Input |
ReduceType enumeration, which reduces the operations. Operations to get the sum, average, maximum, and minimum values are supported. For details, see ReduceType. |
stream |
Input |
AscendStream type. The default value is AscendStream::DefaultStream(). When the parameter value is the default value, the API calling is a synchronous operation. In other cases, the API calling is an asynchronous operation. |
Response Parameters
Data Structure |
Description |
|---|---|
APP_ERROR |
For details about the returned error codes, see APP_ERROR Description. |