Compare
Function Usage
Image processing algorithm, tensor comparison operation (Compare). The float16, float32, and uint8 data types are supported by input and output tensors. Asynchronous calling is supported. The inplace operation is not supported.
It is supported by the Atlas inference product and
For the
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.
- The input and output parameters cannot exceed four dimensions, and must match the tensor shapes and types.
- For the Atlas inference product, when the data type of the input tensor is float32 and the size is greater than 480p (640 x 480), or the data type is uint8 and the size is greater than 1080p (1920 x 1080), or the data type is float16 and the size is greater than 960 x 540, the compute performance of Compare is better than that of cv::compare on the CPU.
- For the
Atlas 200I/500 A2 inference product , when the input size is 720p (720 x 1280), the compute performance of Compare is better than that of cv::compare on the CPU.
Prototype
1 | APP_ERROR Compare(const Tensor &src1, const Tensor &src2, Tensor &dst, const CmpOp cmpOp = CmpOp::CMP_EQ, AscendStream& stream = AscendStream::DefaultStream()); |
Parameters
Parameters
Parameter |
Input/Output |
Description |
||
|---|---|---|---|---|
src1 |
Input |
Tensor class, input tensor, supporting the float16, float32, and uint8 data types. The data memory must be on the device or DVPP side. |
||
src2 |
Input |
Tensor class, input tensor, supporting the float16, float32, and uint8 data types. The data memory must be on the device or DVPP side. |
||
dst |
Output |
Tensor class, output tensor. When the comparison result is as expected, the tensor result is 255. Otherwise, the tensor result is 0. The float16, float32, and uint8 data types are supported. Empty tensors can be passed. If dst is not an empty tensor, call Tensor.Malloc() to allocate memory in advance. |
||
cmpOp |
Input |
Enumeration value, corresponding to the tensor comparison type. Only equal to, not equal to, less than, greater than, less than or equal to, and greater than or equal to are supported. For details, see CmpOp.
|
||
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. |